@@ -262,6 +262,10 @@ TEST_CASE("Parse OPL: integer") {
262262 REQUIRE (test_parse_int (" -1234567890123x" ) == -1234567890123 );
263263 REQUIRE (test_parse_int (" 999999999999999999x" ) == 999999999999999999 );
264264 REQUIRE (test_parse_int (" -999999999999999999x" ) == -999999999999999999 );
265+ REQUIRE (test_parse_int (" 1000000000000000000x" ) == 1000000000000000000 );
266+ REQUIRE (test_parse_int (" 9223372036854775807x" ) == 9223372036854775807 );
267+ REQUIRE (test_parse_int (" -9223372036854775807x" ) == -9223372036854775807 );
268+ REQUIRE (test_parse_int (" -9223372036854775808x" ) == -9223372036854775807 - 1 );
265269
266270 REQUIRE_THROWS_WITH (test_parse_int (" " ),
267271 " OPL error: expected integer" );
@@ -275,7 +279,25 @@ TEST_CASE("Parse OPL: integer") {
275279 REQUIRE_THROWS_WITH (test_parse_int (" x" ),
276280 " OPL error: expected integer" );
277281
278- REQUIRE_THROWS_WITH (test_parse_int (" 99999999999999999999999x" ),
282+ REQUIRE_THROWS_WITH (test_parse_int (" 9223372036854775808x" ),
283+ " OPL error: integer too long" );
284+
285+ REQUIRE_THROWS_WITH (test_parse_int (" 9223372036854775809x" ),
286+ " OPL error: integer too long" );
287+
288+ REQUIRE_THROWS_WITH (test_parse_int (" 9223372036854775810x" ),
289+ " OPL error: integer too long" );
290+
291+ REQUIRE_THROWS_WITH (test_parse_int (" -9223372036854775809x" ),
292+ " OPL error: integer too long" );
293+
294+ REQUIRE_THROWS_WITH (test_parse_int (" -9223372036854775810x" ),
295+ " OPL error: integer too long" );
296+
297+ REQUIRE_THROWS_WITH (test_parse_int (" 999999999999999999999x" ),
298+ " OPL error: integer too long" );
299+
300+ REQUIRE_THROWS_WITH (test_parse_int (" -999999999999999999999x" ),
279301 " OPL error: integer too long" );
280302}
281303
0 commit comments