diff --git a/src/test/data/script_tests.json b/src/test/data/script_tests.json --- a/src/test/data/script_tests.json +++ b/src/test/data/script_tests.json @@ -988,33 +988,62 @@ ["1 -1", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], ["-1 1", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], ["-1 -1", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["2 2", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["2 -2", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["-2 2", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["-2 -2", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["0 1", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["1 0", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "DIV_BY_ZERO", "DIV, divide by zero"], -["3 2", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], -["3 -2", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], +["28 21", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], +["12 -7", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], +["-32 29", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], +["-42 -27", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Round towards zero"], +["0 123", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["511 0", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "DIV_BY_ZERO", "DIV, divide by zero"], ["1 1", "DIV DEPTH 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Stack depth correct"], ["1", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "INVALID_STACK_OPERATION", "Not enough operands"], ["0", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "INVALID_STACK_OPERATION", "Not enough operands"], -["1 1", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["2147483647 1", "DIV 2147483647 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["1 2147483647", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 2147483647", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 1", "DIV -2147483647 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-1 2147483647", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 2147483647", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 -1", "DIV -2147483647 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["1 -2147483647", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 -2147483647", "DIV -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 -1", "DIV 2147483647 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-1 -2147483647", "DIV 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 -2147483647", "DIV 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], ["2147483648 1", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], ["1 2147483648", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], +["-2147483648 1", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], +["1 -2147483648", "DIV", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], ["MOD"], ["1 1", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["7 -3", "MOD 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["-7 3", "MOD -1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], -["10 3", "MOD 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["-1 1", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["1 -1", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["-1 -1", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["82 23", "MOD 13 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["8 -3", "MOD 2 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["-71 13", "MOD -6 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], +["-110 -31", "MOD -17 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], ["0 1", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], ["1 0", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "MOD_BY_ZERO", "MOD, modulo by zero"], ["1 1", "MOD DEPTH 1 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Stack depth correct"], ["1", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "INVALID_STACK_OPERATION", "Not enough operands"], ["0", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "INVALID_STACK_OPERATION", "Not enough operands"], +["2147483647 123", "MOD 79 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["123 2147483647", "MOD 123 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 2147483647", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 123", "MOD -79 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-123 2147483647", "MOD -123 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 2147483647", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 -123", "MOD 79 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["123 -2147483647", "MOD 123 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["2147483647 -2147483647", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 -123", "MOD -79 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-123 -2147483647", "MOD -123 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], +["-2147483647 -2147483647", "MOD 0 EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK", "Check boundary condition"], ["2147483648 1", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], ["1 2147483648", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], +["-2147483648 1", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], +["1 -2147483648", "MOD", "P2SH,STRICTENC,MONOLITH_OPCODES", "UNKNOWN_ERROR", "We cannot do math on 5-byte integers"], ["EQUAL"], ["", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are no stack items"],