diff --git a/unittests/integer_literal_test.cpp b/unittests/integer_literal_test.cpp index 0cb41c3..e5cfbfd 100644 --- a/unittests/integer_literal_test.cpp +++ b/unittests/integer_literal_test.cpp @@ -8,110 +8,173 @@ template bool test_literal(T val, const std::string &str) { - std::cout << "Comparing : " << val; + std::cout << '(' << str << ") Comparing : C++ '" << val; chaiscript::ChaiScript_Basic chai(create_chaiscript_stdlib(),create_chaiscript_parser()); T val2 = chai.eval(str); - std::cout << " " << val2 << '\n'; + std::cout << "' chai '" << val2 << "'\n"; return val == val2; } int main() { - if( TEST_LITERAL(0xF) - && TEST_LITERAL(0xFF) - && TEST_LITERAL(0xFFF) - && TEST_LITERAL(0xFFFF) - && TEST_LITERAL(0xFFFFF) - && TEST_LITERAL(0xFFFFFF) - && TEST_LITERAL(0xFFFFFFF) - && TEST_LITERAL(0xFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFFFFFF) - && TEST_LITERAL(0xFFFFFFFFFFFFFFFF) - - - && TEST_LITERAL(01) - && TEST_LITERAL(017) - && TEST_LITERAL(0177) - && TEST_LITERAL(01777) - && TEST_LITERAL(017777) - && TEST_LITERAL(0177777) - && TEST_LITERAL(01777777) - && TEST_LITERAL(017777777) - && TEST_LITERAL(0177777777) - && TEST_LITERAL(01777777777) - && TEST_LITERAL(017777777777) - && TEST_LITERAL(0177777777777) - && TEST_LITERAL(01777777777777) - && TEST_LITERAL(017777777777777) - && TEST_LITERAL(0177777777777777) - && TEST_LITERAL(01777777777777777) - && TEST_LITERAL(017777777777777777) - && TEST_LITERAL(0177777777777777777) - && TEST_LITERAL(01777777777777777777) - && TEST_LITERAL(017777777777777777777) - && TEST_LITERAL(0177777777777777777777) - && TEST_LITERAL(01777777777777777777777) + if( + TEST_LITERAL(0xF) + && TEST_LITERAL(0xFF) + && TEST_LITERAL(0xFFF) + && TEST_LITERAL(0xFFFF) + && TEST_LITERAL(0xFFFFF) + && TEST_LITERAL(0xFFFFFF) + && TEST_LITERAL(0xFFFFFFF) + && TEST_LITERAL(0xFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFFFFFF) + && TEST_LITERAL(0xFFFFFFFFFFFFFFFF) - && TEST_LITERAL(1) - && TEST_LITERAL(17) - && TEST_LITERAL(177) - && TEST_LITERAL(1777) - && TEST_LITERAL(17777) - && TEST_LITERAL(177777) - && TEST_LITERAL(1777777) - && TEST_LITERAL(17777777) - && TEST_LITERAL(177777777) - && TEST_LITERAL(1777777777) - && TEST_LITERAL(17777777777) - && TEST_LITERAL(177777777777) - && TEST_LITERAL(1777777777777) - && TEST_LITERAL(17777777777777) - && TEST_LITERAL(177777777777777) - && TEST_LITERAL(1777777777777777) - && TEST_LITERAL(17777777777777777) - && TEST_LITERAL(177777777777777777) - && TEST_LITERAL(1777777777777777777) - && test_literal(0xF, "0b1111") - && test_literal(0xFF, "0b11111111") - && test_literal(0xFFF, "0b111111111111") - && test_literal(0xFFFF, "0b1111111111111111") - && test_literal(0xFFFFF, "0b11111111111111111111") - && test_literal(0xFFFFFF, "0b111111111111111111111111") - && test_literal(0xFFFFFFF, "0b1111111111111111111111111111") - && test_literal(0xFFFFFFFF, "0b11111111111111111111111111111111") - && test_literal(0xFFFFFFFFF, "0b111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFF, "0b1111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111") - && test_literal(0xFFFFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111111111111") + && TEST_LITERAL(01) + && TEST_LITERAL(017) + && TEST_LITERAL(0177) + && TEST_LITERAL(01777) + && TEST_LITERAL(017777) + && TEST_LITERAL(0177777) + && TEST_LITERAL(01777777) + && TEST_LITERAL(017777777) + && TEST_LITERAL(0177777777) + && TEST_LITERAL(01777777777) + && TEST_LITERAL(017777777777) + && TEST_LITERAL(0177777777777) + && TEST_LITERAL(01777777777777) + && TEST_LITERAL(017777777777777) + && TEST_LITERAL(0177777777777777) + && TEST_LITERAL(01777777777777777) + && TEST_LITERAL(017777777777777777) + && TEST_LITERAL(0177777777777777777) + && TEST_LITERAL(01777777777777777777) + && TEST_LITERAL(017777777777777777777) + && TEST_LITERAL(0177777777777777777777) + && TEST_LITERAL(01777777777777777777777) - && test_literal(0x7, "0b111") - && test_literal(0x7F, "0b1111111") - && test_literal(0x7FF, "0b11111111111") - && test_literal(0x7FFF, "0b111111111111111") - && test_literal(0x7FFFF, "0b1111111111111111111") - && test_literal(0x7FFFFF, "0b11111111111111111111111") - && test_literal(0x7FFFFFF, "0b111111111111111111111111111") - && test_literal(0x7FFFFFFF, "0b1111111111111111111111111111111") - && test_literal(0x7FFFFFFFF, "0b11111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFF, "0b111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFF, "0b1111111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111111") - && test_literal(0x7FFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111111") -) + && TEST_LITERAL(1) + && TEST_LITERAL(17) + && TEST_LITERAL(177) + && TEST_LITERAL(1777) + && TEST_LITERAL(17777) + && TEST_LITERAL(177777) + && TEST_LITERAL(1777777) + && TEST_LITERAL(17777777) + && TEST_LITERAL(177777777) + && TEST_LITERAL(1777777777) + && TEST_LITERAL(17777777777) + && TEST_LITERAL(177777777777) + && TEST_LITERAL(1777777777777) + && TEST_LITERAL(17777777777777) + && TEST_LITERAL(177777777777777) + && TEST_LITERAL(1777777777777777) + && TEST_LITERAL(17777777777777777) + && TEST_LITERAL(177777777777777777) + && TEST_LITERAL(1777777777777777777) + + && test_literal(0xF, "0b1111") + && test_literal(0xFF, "0b11111111") + && test_literal(0xFFF, "0b111111111111") + && test_literal(0xFFFF, "0b1111111111111111") + && test_literal(0xFFFFF, "0b11111111111111111111") + && test_literal(0xFFFFFF, "0b111111111111111111111111") + && test_literal(0xFFFFFFF, "0b1111111111111111111111111111") + && test_literal(0xFFFFFFFF, "0b11111111111111111111111111111111") + && test_literal(0xFFFFFFFFF, "0b111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFF, "0b1111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111") + && test_literal(0xFFFFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111111111111") + + && test_literal(0x7, "0b111") + && test_literal(0x7F, "0b1111111") + && test_literal(0x7FF, "0b11111111111") + && test_literal(0x7FFF, "0b111111111111111") + && test_literal(0x7FFFF, "0b1111111111111111111") + && test_literal(0x7FFFFF, "0b11111111111111111111111") + && test_literal(0x7FFFFFF, "0b111111111111111111111111111") + && test_literal(0x7FFFFFFF, "0b1111111111111111111111111111111") + && test_literal(0x7FFFFFFFF, "0b11111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFF, "0b111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFF, "0b1111111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111111") + && test_literal(0x7FFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111111") + + + && TEST_LITERAL(-0xF) + && TEST_LITERAL(-0xFF) + && TEST_LITERAL(-0xFFF) + && TEST_LITERAL(-0xFFFF) + && TEST_LITERAL(-0xFFFFF) + && TEST_LITERAL(-0xFFFFFF) + && TEST_LITERAL(-0xFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFFFFFF) + && TEST_LITERAL(-0xFFFFFFFFFFFFFFFF) + + + && TEST_LITERAL(-01) + && TEST_LITERAL(-017) + && TEST_LITERAL(-0177) + && TEST_LITERAL(-01777) + && TEST_LITERAL(-017777) + && TEST_LITERAL(-0177777) + && TEST_LITERAL(-01777777) + && TEST_LITERAL(-017777777) + && TEST_LITERAL(-0177777777) + && TEST_LITERAL(-01777777777) + && TEST_LITERAL(-017777777777) + && TEST_LITERAL(-0177777777777) + && TEST_LITERAL(-01777777777777) + && TEST_LITERAL(-017777777777777) + && TEST_LITERAL(-0177777777777777) + && TEST_LITERAL(-01777777777777777) + && TEST_LITERAL(-017777777777777777) + && TEST_LITERAL(-0177777777777777777) + && TEST_LITERAL(-01777777777777777777) + && TEST_LITERAL(-017777777777777777777) + && TEST_LITERAL(-0177777777777777777777) + && TEST_LITERAL(-01777777777777777777777) + + && TEST_LITERAL(-1) + && TEST_LITERAL(-17) + && TEST_LITERAL(-177) + && TEST_LITERAL(-1777) + && TEST_LITERAL(-17777) + && TEST_LITERAL(-177777) + && TEST_LITERAL(-1777777) + && TEST_LITERAL(-17777777) + && TEST_LITERAL(-177777777) + && TEST_LITERAL(-1777777777) + && TEST_LITERAL(-17777777777) + && TEST_LITERAL(-177777777777) + && TEST_LITERAL(-1777777777777) + && TEST_LITERAL(-17777777777777) + && TEST_LITERAL(-177777777777777) + && TEST_LITERAL(-1777777777777777) + && TEST_LITERAL(-17777777777777777) + && TEST_LITERAL(-177777777777777777) + && TEST_LITERAL(-1777777777777777777) + ) { return EXIT_SUCCESS; } else { diff --git a/unittests/negative_numbers.chai b/unittests/negative_numbers.chai new file mode 100644 index 0000000..5fdb1db --- /dev/null +++ b/unittests/negative_numbers.chai @@ -0,0 +1,8 @@ +def numFunc(x) +{ + return x + 10; +} + + +assert_true(-5.numFunc() == 5); +