; the format for these test cases are:
; expression => expected result | expected-cost

i ( ) => FAIL
i ( 1 ) => FAIL
i => FAIL
i 1 => FAIL
i 1 1 => FAIL
i 1 1 1 1 => FAIL
i 1 "true" "false" => "true" | 33
i 0 "true" "false" => "false" | 33
i "" "true" "false" => "false" | 33
i 10 "true" "false" => "true" | 33
i -1 "true" "false" => "true" | 33
i (1 2) "true" "false" => "true" | 33
i (1) "true" "false" => "true" | 33
i () "true" "false" => "false" | 33

; tests ported from clvm
i 100 200 300 => 200 | 33
i ( ) 200 300 => 300 | 33
i 1 200 300 => 200 | 33

c => FAIL
c 1 => FAIL
c 1 ( 2 ) "garbage" => FAIL
c 100 ( ) => ( 100 ) | 50
c 1 ( 2 ) => ( 1 2 ) | 50
c 0 ( 2 ) => ( 0 2 ) | 50
c 1 2 => ( 1 . 2 ) | 50
c 1 ( 2 3 4 ) => ( 1 2 3 4 ) | 50
c ( 1 2 3 ) ( 4 5 6 ) => ( ( 1 2 3 ) 4 5 6 ) | 50
c 100 ( ( 500 ( 200 300 400 ) ) ) => ( 100 ( 500 ( 200 300 400 ) ) ) | 50

f 0 => FAIL
f 1 => FAIL
f ( ) => FAIL
f ( 1 2 3 ) 1 => FAIL
f ( 1 2 3 ) => 1 | 30
f ( ( 1 2 ) 3 ) => ( 1 2 ) | 30
f ( 100 ) => 100 | 30

r 1 => FAIL
r => FAIL
r ( 1 2 3 ) 12 => FAIL
r 0 => FAIL
r ( 1 2 3 ) => ( 2 3 ) | 30
r ( 1 . 2 ) => 2 | 30

; tests ported from clvm
r ( 100 ) => ( ) | 30
r ( 100 200 300 ) => ( 200 300 ) | 30
r ( ) => FAIL

l => FAIL
l ( 1 2 ) 1 => FAIL
l ( 1 2 3 ) => 1 | 19
l 1 => 0 | 19
l 0 => 0 | 19
l ( 0 . 0 ) => 1 | 19
l ( 1 . 2 ) => 1 | 19

; tests ported from clvm
l 100 =>  ( ) | 19
l ( 100 ) => 1 | 19
l => FAIL
l 100 200 => FAIL
l 50 => ( ) | 19

x => FAIL
x ( "msg" ) => FAIL
x "error_message" => FAIL

= => FAIL
= 0x00 => FAIL
= 0x00 0x00 0x00 => FAIL
= ( "foo" ) "foo" => FAIL
= "foo" ( "foo" ) => FAIL
= 0 ( 0 ) => FAIL
= ( 0 ) 0 => FAIL
= 10 => FAIL

= 0 0 => 1 | 117
= 1 1 => 1 | 119
= 0 0 => 1 | 117
= 0 0x00 => 0 | 118
= 0x00 0 => 0 | 118
= 0xff 0xffff => 0 | 120
= -1 -1 => 1 | 119
= 1 1 => 1 | 119
= 10 10 => 1 | 119
= 2 3 => 0 | 119
= 256 256 => 1 | 121
= 255 -1 => 0 | 120
= 65535 -1 => 0 | 121
= 65535 65535 => 1 | 123
= 65536 65536 => 1 | 123
= 4294967295 4294967295 => 1 | 127
= 4294967296 4294967296 => 1 | 127
= 2147483647 2147483647 => 1 | 125
= 2147483648 2147483648 => 1 | 127
= 0x00000000000000000000000000000000000000000000000000000010 0x00000000000000000000000000000000000000000000000000000010 => 1 | 173
= 0x00000000000000000000000000000000000000000000000000000010 0x00000000000000000000000000000000000000000000000000000020 => 0 | 173
= 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 => 1 | 807
