From: Colin P. A. <co...@co...> - 2007-02-02 16:49:42
|
>>>>> "Eric" == Eric Bezault <er...@go...> writes: Eric> We drop VE completely. If it's not for INTEGER_64, it will Eric> be for Agents/Tuples. So let's drop it now. OK. There appears to be a problem with gec. I have the following tests, which se and ise (5.7) pass: test_is_integer_64 is -- Test feature `is_integer_64'. local uc_string: UC_UTF8_STRING do assert ("is_integer_64_1", STRING_.is_integer_64 ("1234")) assert ("is_integer_64_2", STRING_.is_integer_64 ("00078")) create uc_string.make_from_string ("4534") assert ("is_integer_64_3", STRING_.is_integer_64 (uc_string)) assert ("is_integer_64_4", STRING_.is_integer_64 ("9223372036854775807")) assert ("is_integer_64_5", STRING_.is_integer_64 ("00000000009223372036854775807")) assert ("not_is_integer_64_1", not STRING_.is_integer_64 ("9223372036854775808")) assert ("not_is_integer_64_2", not STRING_.is_integer_64 ("10223372036854775807")) assert ("not_is_integer_64_1", not STRING_.is_integer_64 ("00019223372136854775807")) end test_to_integer_64 is -- Test feature `to_integer_64'. local uc_string: UC_UTF8_STRING do assert_equal ("to_integer_64_1", (1234).to_integer_64, STRING_.to_integer_64 ("1234")) assert_equal ("to_integer_64_2", (78).to_integer_64, STRING_.to_integer_64 ("00078")) create uc_string.make_from_string ("4534") assert_equal ("to_integer_64_3", (4534).to_integer_64, STRING_.to_integer_64 (uc_string)) assert_equal ("to_integer_64_4", (9223372036854775807).to_integer_64, STRING_.to_integer_64 ("9223372036854775807")) assert_equal ("to_integer_64_5", (9223372036854775807).to_integer_64, STRING_.to_integer_64 ("00000000009223372036854775807")) end Gec fails one: Test Results: FAIL: [KL_TEST_STRING_ROUTINES.test_to_integer_64] to_integer_64_4 expected: -1 but got: 9223372036854775807 so it looks like GEC's built-in {INTEGER}.to_integer_64 is off by one on the edge case. -- Colin Adams Preston Lancashire |