Skip to content

Commit

Permalink
Add more integer literal tests / fix neg test
Browse files Browse the repository at this point in the history
Addresses #322
  • Loading branch information
lefticus committed Feb 1, 2017
1 parent c82c9cc commit 3e04210
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 2 deletions.
2 changes: 1 addition & 1 deletion include/chaiscript/language/chaiscript_common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ namespace chaiscript
"Array_Call", "Dot_Access",
"Lambda", "Block", "Scopeless_Block", "Def", "While", "If", "For", "Ranged_For", "Inline_Array", "Inline_Map", "Return", "File", "Prefix", "Break", "Continue", "Map_Pair", "Value_Range",
"Inline_Range", "Try", "Catch", "Finally", "Method", "Attr_Decl",
"Logical_And", "Logical_Or", "Reference", "Switch", "Case", "Default", "Ternary Condition", "Noop", "Class", "Binary", "Arg", "Global_Decl", "Constant", "Compiled"};
"Logical_And", "Logical_Or", "Reference", "Switch", "Case", "Default", "Noop", "Class", "Binary", "Arg", "Global_Decl", "Constant", "Compiled"};

return ast_node_types[static_cast<int>(ast_node_type)];
}
Expand Down
53 changes: 53 additions & 0 deletions unittests/integer_literal_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ int main()
&& TEST_LITERAL(-177777777777777777)
&& TEST_LITERAL(-1777777777777777777)

// Test 8/16/24/32 bit boundaries for various types

&& TEST_LITERAL(255)
&& TEST_LITERAL(65535)
Expand All @@ -185,6 +186,58 @@ int main()
&& TEST_LITERAL(-65535)
&& TEST_LITERAL(-16777215)
&& TEST_LITERAL(-4294967295)

&& TEST_LITERAL(255u)
&& TEST_LITERAL(65535u)
&& TEST_LITERAL(16777215u)
&& TEST_LITERAL(4294967295u)

&& TEST_LITERAL(-255u)
&& TEST_LITERAL(-65535u)
&& TEST_LITERAL(-16777215u)
&& TEST_LITERAL(-4294967295u)

&& TEST_LITERAL(255l)
&& TEST_LITERAL(65535l)
&& TEST_LITERAL(16777215l)
&& TEST_LITERAL(4294967295l)

&& TEST_LITERAL(-255l)
&& TEST_LITERAL(-65535l)
&& TEST_LITERAL(-16777215l)
&& TEST_LITERAL(-4294967295l)

&& TEST_LITERAL(255ul)
&& TEST_LITERAL(65535ul)
&& TEST_LITERAL(16777215ul)
&& TEST_LITERAL(4294967295ul)

&& TEST_LITERAL(-255ul)
&& TEST_LITERAL(-65535ul)
&& TEST_LITERAL(-16777215ul)
&& TEST_LITERAL(-4294967295ul)

&& TEST_LITERAL(255ull)
&& TEST_LITERAL(65535ull)
&& TEST_LITERAL(16777215ull)
&& TEST_LITERAL(4294967295ull)

&& TEST_LITERAL(-255ull)
&& TEST_LITERAL(-65535ull)
&& TEST_LITERAL(-16777215ull)
&& TEST_LITERAL(-4294967295ull)

&& TEST_LITERAL(255ll)
&& TEST_LITERAL(65535ll)
&& TEST_LITERAL(16777215ll)
&& TEST_LITERAL(4294967295ll)

&& TEST_LITERAL(-255ll)
&& TEST_LITERAL(-65535ll)
&& TEST_LITERAL(-16777215ll)
&& TEST_LITERAL(-4294967295ll)


)
{
return EXIT_SUCCESS;
Expand Down
6 changes: 5 additions & 1 deletion unittests/negative_numbers.chai
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@ def numFunc(x)
}


assert_true(-5.numFunc() == 5);
// Note that unary prefix `-` has lower precedence than `.`
// this is why these values are correct, even if counterintuitive

assert_true(-5.numFunc() == -15);
assert_true((-5).numFunc() == 5);

0 comments on commit 3e04210

Please sign in to comment.