Add tests for parsing of neg numbers
This commit is contained in:
parent
0a18f0a809
commit
e7a6b2306c
@ -8,110 +8,173 @@
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
bool test_literal(T val, const std::string &str)
|
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());
|
chaiscript::ChaiScript_Basic chai(create_chaiscript_stdlib(),create_chaiscript_parser());
|
||||||
T val2 = chai.eval<T>(str);
|
T val2 = chai.eval<T>(str);
|
||||||
std::cout << " " << val2 << '\n';
|
std::cout << "' chai '" << val2 << "'\n";
|
||||||
return val == val2;
|
return val == val2;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
if( TEST_LITERAL(0xF)
|
if(
|
||||||
&& TEST_LITERAL(0xFF)
|
TEST_LITERAL(0xF)
|
||||||
&& TEST_LITERAL(0xFFF)
|
&& TEST_LITERAL(0xFF)
|
||||||
&& TEST_LITERAL(0xFFFF)
|
&& TEST_LITERAL(0xFFF)
|
||||||
&& TEST_LITERAL(0xFFFFF)
|
&& TEST_LITERAL(0xFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFF)
|
&& TEST_LITERAL(0xFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFFFFFF)
|
&& TEST_LITERAL(0xFFFFFFFFFFFFFF)
|
||||||
&& TEST_LITERAL(0xFFFFFFFFFFFFFFFF)
|
&& 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)
|
|
||||||
|
|
||||||
&& test_literal(0xF, "0b1111")
|
&& TEST_LITERAL(01)
|
||||||
&& test_literal(0xFF, "0b11111111")
|
&& TEST_LITERAL(017)
|
||||||
&& test_literal(0xFFF, "0b111111111111")
|
&& TEST_LITERAL(0177)
|
||||||
&& test_literal(0xFFFF, "0b1111111111111111")
|
&& TEST_LITERAL(01777)
|
||||||
&& test_literal(0xFFFFF, "0b11111111111111111111")
|
&& TEST_LITERAL(017777)
|
||||||
&& test_literal(0xFFFFFF, "0b111111111111111111111111")
|
&& TEST_LITERAL(0177777)
|
||||||
&& test_literal(0xFFFFFFF, "0b1111111111111111111111111111")
|
&& TEST_LITERAL(01777777)
|
||||||
&& test_literal(0xFFFFFFFF, "0b11111111111111111111111111111111")
|
&& TEST_LITERAL(017777777)
|
||||||
&& test_literal(0xFFFFFFFFF, "0b111111111111111111111111111111111111")
|
&& TEST_LITERAL(0177777777)
|
||||||
&& test_literal(0xFFFFFFFFFF, "0b1111111111111111111111111111111111111111")
|
&& TEST_LITERAL(01777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(017777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(0177777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(01777777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(017777777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(0177777777777777)
|
||||||
&& test_literal(0xFFFFFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111111111111")
|
&& 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(1)
|
||||||
&& test_literal(0x7F, "0b1111111")
|
&& TEST_LITERAL(17)
|
||||||
&& test_literal(0x7FF, "0b11111111111")
|
&& TEST_LITERAL(177)
|
||||||
&& test_literal(0x7FFF, "0b111111111111111")
|
&& TEST_LITERAL(1777)
|
||||||
&& test_literal(0x7FFFF, "0b1111111111111111111")
|
&& TEST_LITERAL(17777)
|
||||||
&& test_literal(0x7FFFFF, "0b11111111111111111111111")
|
&& TEST_LITERAL(177777)
|
||||||
&& test_literal(0x7FFFFFF, "0b111111111111111111111111111")
|
&& TEST_LITERAL(1777777)
|
||||||
&& test_literal(0x7FFFFFFF, "0b1111111111111111111111111111111")
|
&& TEST_LITERAL(17777777)
|
||||||
&& test_literal(0x7FFFFFFFF, "0b11111111111111111111111111111111111")
|
&& TEST_LITERAL(177777777)
|
||||||
&& test_literal(0x7FFFFFFFFF, "0b111111111111111111111111111111111111111")
|
&& TEST_LITERAL(1777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFF, "0b1111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(17777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(177777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(1777777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFFFFF, "0b1111111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(17777777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFFFFFF, "0b11111111111111111111111111111111111111111111111111111111111")
|
&& TEST_LITERAL(177777777777777)
|
||||||
&& test_literal(0x7FFFFFFFFFFFFFFF, "0b111111111111111111111111111111111111111111111111111111111111111")
|
&& 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;
|
return EXIT_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
|
8
unittests/negative_numbers.chai
Normal file
8
unittests/negative_numbers.chai
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
def numFunc(x)
|
||||||
|
{
|
||||||
|
return x + 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
assert_true(-5.numFunc() == 5);
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user