Skip to content

Commit

Permalink
txscript: add/group numeric related opcode tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
dnldd committed Jul 18, 2018
1 parent 6a968b5 commit 7724eeb
Showing 1 changed file with 198 additions and 79 deletions.
277 changes: 198 additions & 79 deletions txscript/data/script_tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -918,23 +918,79 @@
["2147483648 1", "ROTL 1 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "ROTL must fail with input value >4 bytes"],
["1 2147483648", "ROTL TRUE", "NONE", "ERR_OUT_OF_RANGE", "ROTL must fail with rotation count >4 bytes"],

["NUMERIC opcode tests"],

["0x52", "0x5f ADD 0x60 EQUAL", "NONE", "ERR_EVAL_FALSE", "0x51 through 0x60 push 1 through 16 onto stack"],
["1ADD test coverage"],
["1 1ADD", "2 EQUAL", "NONE", "OK"],
["1ADD", "1 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "1ADD requires an input parameter"],
["2147483648 1ADD", "1", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["1 2 0 IF AND ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["1 2 0 IF OR ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["1 2 0 IF XOR ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF MUL ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF DIV ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF MOD ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["1SUB test coverage"],
["111 1SUB", "110 EQUAL", "NONE", "OK"],

["1SUB", "-1 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "1SUB requires an input parameter"],
["2147483648 1SUB", "1", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["2MUL test coverage"],
["2", "2MUL 1", "NONE", "OK", "2MUL is NOP"],

["2DIV test coverage"],
["2", "2DIV 1", "NONE", "OK", "2DIV is NOP"],

["NEGATE test coverage"],
["2", "NEGATE -2 EQUAL", "NONE", "OK"],
["", "NEGATE -2 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "NEGATE requires an input parameter"],
["2147483648", "NEGATE -2147483648 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["ABS test coverage"],
["0 ABS", "0 EQUAL", "NONE", "OK"],
["16 ABS", "16 EQUAL", "NONE", "OK"],
["-16 ABS", "-16 NEGATE EQUAL", "NONE", "OK"],
["", " ABS 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "ABS requires an input parameter"],
["2147483648 ABS", "2147483648 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["NOT test coverage"],
["0 NOT", "NOP", "NONE", "OK"],
["1 NOT", "0 EQUAL", "NONE", "OK"],
["11 NOT", "0 EQUAL", "NONE", "OK"],
["-11 NOT", "0 EQUAL", "NONE", "OK"],
["", "NOT 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "NOT requires an input parameter"],
["2147483648", "NOT 0 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["0NOTEQUAL test coverage"],
["0 0NOTEQUAL", "0 EQUAL", "NONE", "OK"],
["1 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["111 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["-111 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["", "0NOTEQUAL 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "0NOTEQUAL requires an input parameter"],
["2147483648", "0NOTEQUAL 0 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["ADD test coverage"],
["2 -2 ADD", "0 EQUAL", "NONE", "OK"],
["2147483647 -2147483647 ADD", "0 EQUAL", "NONE", "OK"],
["-1 -1 ADD", "-2 EQUAL", "NONE", "OK"],
["", "ADD 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "ADD requires an two input parameters"],
["0", "ADD 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "ADD requires an two input parameters"],
["2147483648 1", "ADD 2147483649 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["SUB test coverage"],
["2 -2 SUB", "4 EQUAL", "NONE", "OK"],
["2147483647 2147483647 SUB", "0 EQUAL", "NONE", "OK"],
["2147483647 2147483647 SUB", "0 EQUAL", "NONE", "OK"],
["111 1 ADD 12 SUB", "100 EQUAL", "NONE", "OK"],
["-1 1 SUB", "-2 EQUAL", "NONE", "OK"],
["", "SUB 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "SUB requires an two input parameters"],
["0", "SUB 0 EQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "SUB requires an two input parameters"],
["2147483648 1", "SUB 2147483647 EQUAL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["MUL test coverage"],
["2 DUP MUL", "4 EQUAL", "NONE", "OK"],
["2 0 MUL", "0 EQUAL", "NONE", "OK"],
["", "MUL", "NONE", "ERR_INVALID_STACK_OPERATION", "MUL requires two input parameters"],
["2", "MUL", "NONE", "ERR_INVALID_STACK_OPERATION", "MUL requires two input parameters"],
["2147483648 2", "MUL", "NONE", "ERR_OUT_OF_RANGE", "Exceed 4 bytes parameter limit"],

["Division related test coverage"],
["DIV test coverage"],
["7 3", "DIV 2 EQUAL", "NONE", "OK", "DIV must perform integer division (7 / 3)"],
["8 3", "DIV 2 EQUAL", "NONE", "OK", "DIV must perform integer division (8 / 3)"],
["6 3", "DIV 2 EQUAL", "NONE", "OK", "DIV must support a positive dividend and divisor"],
Expand All @@ -951,7 +1007,7 @@
["2147483648 1073741824", "DIV TRUE", "NONE", "ERR_OUT_OF_RANGE", "DIV must fail with dividend >4 bytes"],
["1 2147483648", "DIV TRUE", "NONE", "ERR_OUT_OF_RANGE", "DIV must fail with divisor >4 bytes"],

["Modular division related test coverage"],
["MOD test coverage"],
["7 3", "MOD 1 EQUAL", "NONE", "OK", "MOD must produce expected result (7%3)"],
["8 3", "MOD 2 EQUAL", "NONE", "OK", "MOD must produce expected result (8%3)"],
["6 3", "MOD 0 EQUAL", "NONE", "OK", "MOD must support a positive dividend and divisor"],
Expand All @@ -967,7 +1023,7 @@
["2147483648 1073741824", "MOD TRUE", "NONE", "ERR_OUT_OF_RANGE", "MOD must fail with dividend >4 bytes"],
["1 2147483648", "MOD TRUE", "NONE", "ERR_OUT_OF_RANGE", "MOD must fail with divisor >4 bytes"],

["Left bit shift related test coverage"],
["LSHIFT test coverage"],
["1 1", "LSHIFT 2 EQUAL", "NONE", "OK", "LSHIFT 0x1 << 1"],
["1 2", "LSHIFT 4 EQUAL", "NONE", "OK", "LSHIFT 0x1 << 2"],
["1 3", "LSHIFT 8 EQUAL", "NONE", "OK", "LSHIFT 0x1 << 3"],
Expand Down Expand Up @@ -1011,7 +1067,7 @@
["2147483648 1", "LSHIFT TRUE", "NONE", "ERR_OUT_OF_RANGE", "LSHIFT must fail with input value >4 bytes"],
["1 2147483648", "LSHIFT TRUE", "NONE", "ERR_OUT_OF_RANGE", "LSHIFT must fail with shift count >4 bytes"],

["Right bit shift related test coverage"],
["RSHIFT test coverage"],
["1073741825 1", "RSHIFT 536870912 EQUAL", "NONE", "OK", "RSHIFT 0x40000001 >> 1"],
["1073741825 2", "RSHIFT 268435456 EQUAL", "NONE", "OK", "RSHIFT 0x40000001 >> 2"],
["1073741825 3", "RSHIFT 134217728 EQUAL", "NONE", "OK", "RSHIFT 0x40000001 >> 3"],
Expand Down Expand Up @@ -1059,118 +1115,181 @@
["2147483648 1", "RSHIFT TRUE", "NONE", "ERR_OUT_OF_RANGE", "RSHIFT must fail with input value >4 bytes"],
["1 2147483648", "RSHIFT TRUE", "NONE", "ERR_OUT_OF_RANGE", "RSHIFT must fail with shift count >4 bytes"],

["0x4f 1000 ADD","999 EQUAL", "NONE", "OK"],
["0", "IF 0x50 ENDIF 1", "NONE", "OK", "0x50 is reserved (ok if not executed)"],
["0x51", "0x5f ADD 0x60 EQUAL", "NONE", "OK", "0x51 through 0x60 push 1 through 16 onto stack"],
["1","NOP", "NONE", "OK"],
["0", "IF VER ELSE 1 ENDIF", "NONE", "OK", "VER non-functional (ok if not executed)"],
["0", "IF RESERVED ELSE 1 ENDIF", "NONE", "OK", "RESERVED ok in un-executed IF"],


["0 IFDUP", "DEPTH 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["1 IFDUP", "DEPTH 2 EQUALVERIFY 1 EQUALVERIFY 1 EQUAL", "NONE", "OK"],
["0x05 0x0100000000 IFDUP", "DEPTH 2 EQUALVERIFY 0x05 0x0100000000 EQUAL", "NONE", "OK", "IFDUP dups non ints"],
["0 DROP", "DEPTH 0 EQUAL", "NONE", "OK"],
["0", "DUP 1 ADD 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["0 1", "NIP", "NONE", "OK"],
["1 0", "OVER DEPTH 3 EQUALVERIFY", "NONE", "OK"],
["22 21 20", "0 PICK 20 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "1 PICK 21 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "2 PICK 22 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "0 ROLL 20 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "1 ROLL 21 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "2 ROLL 22 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "ROT 22 EQUAL", "NONE", "OK"],
["22 21 20", "ROT DROP 20 EQUAL", "NONE", "OK"],
["22 21 20", "ROT DROP DROP 21 EQUAL", "NONE", "OK"],
["22 21 20", "ROT ROT 21 EQUAL", "NONE", "OK"],
["22 21 20", "ROT ROT ROT 20 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 24 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT DROP 25 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 20 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP DROP 21 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 2DROP 22 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 2DROP DROP 23 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2ROT 22 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2ROT 2ROT 20 EQUAL", "NONE", "OK"],
["1 0", "SWAP 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["0 1", "TUCK DEPTH 3 EQUALVERIFY SWAP 2DROP", "NONE", "OK"],
["13 14", "2DUP ROT EQUALVERIFY EQUAL", "NONE", "OK"],
["-1 0 1 2", "3DUP DEPTH 7 EQUALVERIFY ADD ADD 3 EQUALVERIFY 2DROP 0 EQUALVERIFY", "NONE", "OK"],
["1 2 3 5", "2OVER ADD ADD 8 EQUALVERIFY ADD ADD 6 EQUAL", "NONE", "OK"],
["1 3 5 7", "2SWAP ADD 4 EQUALVERIFY ADD 12 EQUAL", "NONE", "OK"],


["2 -2 ADD", "0 EQUAL", "NONE", "OK"],
["2147483647 -2147483647 ADD", "0 EQUAL", "NONE", "OK"],
["-1 -1 ADD", "-2 EQUAL", "NONE", "OK"],

["0 0","EQUAL", "NONE", "OK"],
["1 1 ADD", "2 EQUAL", "NONE", "OK"],
["1 1ADD", "2 EQUAL", "NONE", "OK"],
["111 1SUB", "110 EQUAL", "NONE", "OK"],
["111 1 ADD 12 SUB", "100 EQUAL", "NONE", "OK"],
["0 ABS", "0 EQUAL", "NONE", "OK"],
["16 ABS", "16 EQUAL", "NONE", "OK"],
["-16 ABS", "-16 NEGATE EQUAL", "NONE", "OK"],
["0 NOT", "NOP", "NONE", "OK"],
["1 NOT", "0 EQUAL", "NONE", "OK"],
["11 NOT", "0 EQUAL", "NONE", "OK"],
["0 0NOTEQUAL", "0 EQUAL", "NONE", "OK"],
["1 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["111 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["-111 0NOTEQUAL", "1 EQUAL", "NONE", "OK"],
["BOOLAND test coverage"],
["1 1 BOOLAND", "NOP", "NONE", "OK"],
["1 0 BOOLAND", "NOT", "NONE", "OK"],
["0 1 BOOLAND", "NOT", "NONE", "OK"],
["0 0 BOOLAND", "NOT", "NONE", "OK"],
["16 17 BOOLAND", "NOP", "NONE", "OK"],
["0 BOOLAND", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "BOOLAND requires two input values"],
["BOOLAND", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "BOOLAND requires two input values"],
["1 2147483648 BOOLAND", "NOT", "NONE", "ERR_OUT_OF_RANGE", "BOOLAND must fail with input value >4 bytes"],

["BOOLOR test coverage"],
["1 1 BOOLOR", "NOP", "NONE", "OK"],
["1 0 BOOLOR", "NOP", "NONE", "OK"],
["0 1 BOOLOR", "NOP", "NONE", "OK"],
["0 0 BOOLOR", "NOT", "NONE", "OK"],
["16 17 BOOLOR", "NOP", "NONE", "OK"],
["0 BOOLOR", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "BOOLOR requires two input values"],
["BOOLOR", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "BOOLOR requires two input values"],
["1 2147483648 BOOLOR", "NOT", "NONE", "ERR_OUT_OF_RANGE", "BOOLOR must fail with input value >4 bytes"],


["NUMEQUAL test coverage"],
["11 10 1 ADD", "NUMEQUAL", "NONE", "OK"],
["-1 -1", "NUMEQUAL", "NONE", "OK"],
["0 NUMEQUAL", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMEQUAL requires two input values"],
["NUMEQUAL", "NOT", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMEQUAL requires two input values"],
["1 2147483648 NUMEQUAL", "NOT", "NONE", "ERR_OUT_OF_RANGE", "NUMEQUAL must fail with input value >4 bytes"],

["NUMEQUALVERIFY test coverage"],
["11 10 1 ADD", "NUMEQUALVERIFY 1", "NONE", "OK"],
["-1 -1", "NUMEQUALVERIFY 1", "NONE", "OK"],
["0 NUMEQUALVERIFY", "1", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMEQUALVERIFY requires two input values"],
["NUMEQUALVERIFY", "1", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMEQUALVERIFY requires two input values"],
["1 2147483648", "NUMEQUALVERIFY 1", "NONE", "ERR_OUT_OF_RANGE", "NUMEQUALVERIFY must fail with input value >4 bytes"],

["NUMNOTEQUAL test coverage"],
["11 10 1 ADD", "NUMNOTEQUAL NOT", "NONE", "OK"],
["111 10 1 ADD", "NUMNOTEQUAL", "NONE", "OK"],
["1 -1", "NUMNOTEQUAL", "NONE", "OK"],
["0", "NUMNOTEQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMNOTEQUAL requires two input values"],
["", "NUMNOTEQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "NUMNOTEQUAL requires two input values"],
["1 2147483648", "NUMNOTEQUAL", "NONE", "ERR_OUT_OF_RANGE", "NUMNOTEQUAL must fail with input value >4 bytes"],

["LESSTHAN test coverage"],
["11 10", "LESSTHAN NOT", "NONE", "OK"],
["4 4", "LESSTHAN NOT", "NONE", "OK"],
["10 11", "LESSTHAN", "NONE", "OK"],
["-11 11", "LESSTHAN", "NONE", "OK"],
["-11 -10", "LESSTHAN", "NONE", "OK"],
["0", "LESSTHAN", "NONE", "ERR_INVALID_STACK_OPERATION", "LESSTHAN requires two input values"],
["", "LESSTHAN", "NONE", "ERR_INVALID_STACK_OPERATION", "LESSTHAN requires two input values"],
["1 2147483648", "LESSTHAN", "NONE", "ERR_OUT_OF_RANGE", "LESSTHAN must fail with input value >4 bytes"],

["GREATERTHAN test coverage"],
["11 10", "GREATERTHAN", "NONE", "OK"],
["4 4", "GREATERTHAN NOT", "NONE", "OK"],
["10 11", "GREATERTHAN NOT", "NONE", "OK"],
["-11 11", "GREATERTHAN NOT", "NONE", "OK"],
["-11 -10", "GREATERTHAN NOT", "NONE", "OK"],
["0", "GREATERTHAN", "NONE", "ERR_INVALID_STACK_OPERATION", "GREATERTHAN requires two input values"],
["", "GREATERTHAN", "NONE", "ERR_INVALID_STACK_OPERATION", "GREATERTHAN requires two input values"],
["1 2147483648", "GREATERTHAN", "NONE", "ERR_OUT_OF_RANGE", "GREATERTHAN must fail with input value >4 bytes"],


["LESSTHANOREQUAL test coverage"],
["11 10", "LESSTHANOREQUAL NOT", "NONE", "OK"],
["4 4", "LESSTHANOREQUAL", "NONE", "OK"],
["10 11", "LESSTHANOREQUAL", "NONE", "OK"],
["-11 11", "LESSTHANOREQUAL", "NONE", "OK"],
["-11 -10", "LESSTHANOREQUAL", "NONE", "OK"],
["0", "LESSTHANOREQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "LESSTHANOREQUAL requires two input values"],
["", "LESSTHANOREQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "LESSTHANOREQUAL requires two input values"],
["1 2147483648", "LESSTHANOREQUAL", "NONE", "ERR_OUT_OF_RANGE", "LESSTHANOREQUAL must fail with input value >4 bytes"],

["GREATERTHANOREQUAL test coverage"],
["11 10", "GREATERTHANOREQUAL", "NONE", "OK"],
["4 4", "GREATERTHANOREQUAL", "NONE", "OK"],
["10 11", "GREATERTHANOREQUAL NOT", "NONE", "OK"],
["-11 11", "GREATERTHANOREQUAL NOT", "NONE", "OK"],
["-11 -10", "GREATERTHANOREQUAL NOT", "NONE", "OK"],
["0", "GREATERTHANOREQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "GREATERTHANOREQUAL requires two input values"],
["", "GREATERTHANOREQUAL", "NONE", "ERR_INVALID_STACK_OPERATION", "GREATERTHANOREQUAL requires two input values"],
["1 2147483648", "GREATERTHANOREQUAL", "NONE", "ERR_OUT_OF_RANGE", "GREATERTHANOREQUAL must fail with input value >4 bytes"],

["MIN test coverage"],
["1 0 MIN", "0 NUMEQUAL", "NONE", "OK"],
["0 1 MIN", "0 NUMEQUAL", "NONE", "OK"],
["-1 0 MIN", "-1 NUMEQUAL", "NONE", "OK"],
["0 -2147483647 MIN", "-2147483647 NUMEQUAL", "NONE", "OK"],
["0", "MIN", "NONE", "ERR_INVALID_STACK_OPERATION", "MIN requires two input values"],
["", "MIN", "NONE", "ERR_INVALID_STACK_OPERATION", "MIN requires two input values"],
["1 2147483648", "MIN", "NONE", "ERR_OUT_OF_RANGE", "MIN must fail with input value >4 bytes"],

["MAX test coverage"],
["2147483647 0 MAX", "2147483647 NUMEQUAL", "NONE", "OK"],
["0 100 MAX", "100 NUMEQUAL", "NONE", "OK"],
["-100 0 MAX", "0 NUMEQUAL", "NONE", "OK"],
["0 -2147483647 MAX", "0 NUMEQUAL", "NONE", "OK"],
["0", "MAX", "NONE", "ERR_INVALID_STACK_OPERATION", "MAX requires two input values"],
["", "MAX", "NONE", "ERR_INVALID_STACK_OPERATION", "MAX requires two input values"],
["1 2147483648", "MAX", "NONE", "ERR_OUT_OF_RANGE", "MAX must fail with input value >4 bytes"],

["WITHIN test coverage"],
["0 0 1", "WITHIN", "NONE", "OK"],
["1 0 1", "WITHIN NOT", "NONE", "OK"],
["0 -2147483647 2147483647", "WITHIN", "NONE", "OK"],
["-1 -100 100", "WITHIN", "NONE", "OK"],
["11 -100 100", "WITHIN", "NONE", "OK"],
["-2147483647 -100 100", "WITHIN NOT", "NONE", "OK"],
["2147483647 -100 100", "WITHIN NOT", "NONE", "OK"],
["0", "WITHIN", "NONE", "ERR_INVALID_STACK_OPERATION", "WITHIN requires three input values"],
["0 1", "WITHIN", "NONE", "ERR_INVALID_STACK_OPERATION", "WITHIN requires three input values"],
["", "WITHIN", "NONE", "ERR_INVALID_STACK_OPERATION", "WITHIN requires two input values"],
["1 0 2147483648", "WITHIN", "NONE", "ERR_OUT_OF_RANGE", "WITHIN must fail with input value >4 bytes"],

["0x52", "0x5f ADD 0x60 EQUAL", "NONE", "ERR_EVAL_FALSE", "0x51 through 0x60 push 1 through 16 onto stack"],

["1 2 0 IF AND ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["1 2 0 IF OR ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["1 2 0 IF XOR ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF MUL ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF DIV ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF MOD ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "NONE", "OK"],
["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "NONE", "OK"],

["0x4f 1000 ADD","999 EQUAL", "NONE", "OK"],
["0", "IF 0x50 ENDIF 1", "NONE", "OK", "0x50 is reserved (ok if not executed)"],
["0x51", "0x5f ADD 0x60 EQUAL", "NONE", "OK", "0x51 through 0x60 push 1 through 16 onto stack"],
["1","NOP", "NONE", "OK"],
["0", "IF VER ELSE 1 ENDIF", "NONE", "OK", "VER non-functional (ok if not executed)"],
["0", "IF RESERVED ELSE 1 ENDIF", "NONE", "OK", "RESERVED ok in un-executed IF"],


["0 IFDUP", "DEPTH 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["1 IFDUP", "DEPTH 2 EQUALVERIFY 1 EQUALVERIFY 1 EQUAL", "NONE", "OK"],
["0x05 0x0100000000 IFDUP", "DEPTH 2 EQUALVERIFY 0x05 0x0100000000 EQUAL", "NONE", "OK", "IFDUP dups non ints"],
["0 DROP", "DEPTH 0 EQUAL", "NONE", "OK"],
["0", "DUP 1 ADD 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["0 1", "NIP", "NONE", "OK"],
["1 0", "OVER DEPTH 3 EQUALVERIFY", "NONE", "OK"],
["22 21 20", "0 PICK 20 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "1 PICK 21 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "2 PICK 22 EQUALVERIFY DEPTH 3 EQUAL", "NONE", "OK"],
["22 21 20", "0 ROLL 20 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "1 ROLL 21 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "2 ROLL 22 EQUALVERIFY DEPTH 2 EQUAL", "NONE", "OK"],
["22 21 20", "ROT 22 EQUAL", "NONE", "OK"],
["22 21 20", "ROT DROP 20 EQUAL", "NONE", "OK"],
["22 21 20", "ROT DROP DROP 21 EQUAL", "NONE", "OK"],
["22 21 20", "ROT ROT 21 EQUAL", "NONE", "OK"],
["22 21 20", "ROT ROT ROT 20 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 24 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT DROP 25 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 20 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP DROP 21 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 2DROP 22 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2DROP 2DROP DROP 23 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2ROT 22 EQUAL", "NONE", "OK"],
["25 24 23 22 21 20", "2ROT 2ROT 2ROT 20 EQUAL", "NONE", "OK"],
["1 0", "SWAP 1 EQUALVERIFY 0 EQUAL", "NONE", "OK"],
["0 1", "TUCK DEPTH 3 EQUALVERIFY SWAP 2DROP", "NONE", "OK"],
["13 14", "2DUP ROT EQUALVERIFY EQUAL", "NONE", "OK"],
["-1 0 1 2", "3DUP DEPTH 7 EQUALVERIFY ADD ADD 3 EQUALVERIFY 2DROP 0 EQUALVERIFY", "NONE", "OK"],
["1 2 3 5", "2OVER ADD ADD 8 EQUALVERIFY ADD ADD 6 EQUAL", "NONE", "OK"],
["1 3 5 7", "2SWAP ADD 4 EQUALVERIFY ADD 12 EQUAL", "NONE", "OK"],




["0 0","EQUAL", "NONE", "OK"],
["1 1 ADD", "2 EQUAL", "NONE", "OK"],



["2147483647 2147483647 SUB", "0 EQUAL", "NONE", "OK"],
["2147483647 DUP ADD", "4294967294 EQUAL", "NONE", "OK", ">32 bit EQUAL is valid"],
["2147483647 NEGATE DUP ADD", "-4294967294 EQUAL", "NONE", "OK"],

Expand Down

0 comments on commit 7724eeb

Please sign in to comment.