|
START_MARKER |
|
dnl - Val.Timestamp |
|
test_do([[ |
string detimezone(object o) |
{ |
return Regexp("^((-|)([^ ]+ |)[0-9][^-+]+)([-+][0-9:]+|)$") |
->split((string)o)[0] |
} |
add_constant("dtz",detimezone) |
]]) |
|
test_equal( dtz(Val.Timestamp(1920,6,19,2,3,4,12000)), |
"1920-06-19 02:03:04.000012") |
test_equal( dtz(Val.Timestamp(1970,1,1,2,3,4,12000)), |
"1970-01-01 02:03:04.000012") |
test_equal( dtz(Val.Timestamp(2000,1,1,2,3,4,12000)), |
"2000-01-01 02:03:04.000012") |
test_equal( dtz(Val.Timestamp(2000,2,29,2,3,4,12000)), |
"2000-02-29 02:03:04.000012") |
test_equal( dtz(Val.Timestamp(2000,6,17,2,3,4,12000)), |
"2000-06-17 02:03:04.000012") |
test_equal( dtz(Val.Timestamp(2000,11,17,2,3,4,12000)), |
"2000-11-17 02:03:04.000012") |
test_equal( (int)Val.Timestamp(-2), -2) |
test_equal( (int)Val.Timestamp(-1), -1) |
test_equal( (int)Val.Timestamp(0), 0) |
test_equal( (int)Val.Timestamp(1), 1) |
test_equal( (int)(Val.Timestamp(1) + 4), 5) |
test_equal( (int)Val.Timestamp(1234567890), 1234567890) |
|
dnl - Val.Time |
|
test_equal( (string)Val.Time(3,4), "03:04") |
test_equal( (string)Val.Time(23,44), "23:44") |
test_equal( (string)Val.Time(23,44,12), "23:44:12") |
test_equal( (string)Val.Time(23), "00:00:23") |
test_equal( (string)Val.Time(23,44,12, 12000), "23:44:12.000012") |
test_equal( (string)(Val.Time(14,03,33,12000)+Val.Interval(123)), |
"14:05:36.000012") |
|
dnl - Val.TimeTZ |
|
test_equal( dtz(Val.TimeTZ(23,44,12, 12000)), "23:44:12.000012") |
test_equal( lambda() { Val.TimeTZ ttz = Val.TimeTZ(23,44) |
ttz->timezone = 3600 |
return (string)ttz |
"23:44-01") |
test_equal( dtz(Val.TimeTZ(14,03,33,12000)+Val.Interval(123)), |
"14:05:36.000012") |
|
dnl - Val.Date |
|
test_equal( (string)Val.Date(2000,1,18), "2000-01-18") |
test_equal( (string)Val.Date(2000,6,18), "2000-06-18") |
test_equal( (string)Val.Date(1970,1,1), "1970-01-01") |
test_equal( (string)Val.Date(1970,1,2), "1970-01-02") |
test_equal( (string)Val.Date(1969,12,31), "1969-12-31") |
test_equal( (string)Val.Date(1920,12,31), "1920-12-31") |
test_equal( (string)Val.Date(1920,12,32), "1921-01-01") |
test_equal( (string)Val.Date(1920,13,27), "1921-01-27") |
test_equal( (string)Val.Date(1920,14,27), "1921-02-27") |
test_equal( (string)(Val.Date(1920,14,27) + 1), "1921-02-28") |
test_equal( (string)Val.Date(1234567890), "2009-02-13") |
|
test_equal( (int)(Val.Date(2017,7,14)+Val.Time(12,03,33,12000)), |
1500033813) |
test_equal( dtz(Val.Date(2017,7,14) |
+ Val.TimeTZ(2017,7,14,12,03,33,12000)), |
"2017-07-14 12:03:33.000012") |
|
dnl - Val.Interval |
|
test_equal( (string)Val.Interval(3,1,12,12000), "03:01:12.000012") |
test_equal( (string)Val.Interval(3,1,12,12000), "03:01:12.000012") |
test_equal( (string)Val.Interval(133,1,12,12000), "133:01:12.000012") |
test_equal( (string)Val.Interval(-133,1,12,12000), "-132:58:47.999988") |
test_equal( (string)Val.Interval(-133,-1,-12,-12000), "-133:01:12.000012") |
test_equal( (string)Val.Interval(-133,1), "-132:59") |
test_equal( (string)Val.Interval(-133,-1), "-133:01") |
test_equal( (string)Val.Interval(100), "00:01:40") |
test_equal( (string)Val.Interval(-100), "-00:01:40") |
|
test_equal(dtz(Val.Timestamp(2001,2,3)+Val.Interval(24,4,5)), |
"2001-02-04 00:04:05") |
test_equal(dtz(Val.Timestamp(2001,2,3)-Val.Interval(24,4,5)), |
"2001-02-01 23:55:55") |
test_equal(dtz(Val.Timestamp(2001,2,3)+Val.Interval(24,4,5)*2), |
"2001-02-05 00:08:10") |
|
test_equal( (string)(Val.Date(2017,12,2) - Val.Date(2017,12,5)), "-3 DAY") |
test_equal( (string)(Val.Date(2017,12,5) - Val.Date(2017,12,2)), "3 DAY") |
test_equal( (string)(Val.Timestamp(2017,12,5) - Val.Timestamp(2017,12,2)), |
"72:00") |
test_equal( (string)(Val.Timestamp(2017,12,5) - Val.Date(2017,12,2)), "72:00") |
test_equal( (string)(Val.Date(2017,12,5) - Val.Timestamp(2017,12,2)), "72:00") |
|
dnl - Val.Range |
|
test_equal( (string)Val.Range(2,5), "[2..5]" ) |
test_equal( (string)Val.Range(2,7), "[2..7]" ) |
test_equal( (string)Val.Range(2,Math.inf), "[2..]" ) |
test_equal( !Val.Range(2,2), 1 ) |
test_equal( !Val.Range(3,2), 1 ) |
test_equal( !!Val.Range(3,2), 0 ) |
test_equal( Val.Range(3,2)->isempty(), 1 ) |
test_equal( (string)Val.Range(2,2), "[]" ) |
test_equal( (string)Val.Range(0,0), "[]" ) |
test_equal( (string)Val.Range(), "[]" ) |
test_equal( (string)Val.Range(-Math.inf,2), "[..2]" ) |
test_equal( (string)Val.Range(-Math.inf,Math.inf), "[..]" ) |
|
test_equal( Val.Range(2,7)->contains(Val.Range(2,7)), 1 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(2,6)), 1 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(3,6)), 1 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(1,6)), 0 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(1,7)), 0 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(1,8)), 0 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(2,8)), 0 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(3,8)), 0 ) |
test_equal( Val.Range(2,7)->contains(Val.Range(3,7)), 1 ) |
test_equal( Val.Range(2,7)->contains(6), 1 ) |
test_equal( Val.Range(2,7)->contains(7), 0 ) |
test_equal( Val.Range(2,7)->contains(2), 1 ) |
test_equal( Val.Range(2,7)->contains(1), 0 ) |
|
test_equal( Val.Range(2,7) << Val.Range(2,7), 0 ) |
test_equal( Val.Range(2,7) << Val.Range(5,9), 0 ) |
test_equal( Val.Range(2,7) << Val.Range(7,9), 1 ) |
test_equal( Val.Range(2,7) << Val.Range(8,9), 1 ) |
test_equal( Val.Range(2,7) >> Val.Range(2,7), 0 ) |
test_equal( Val.Range(5,9) >> Val.Range(2,7), 0 ) |
test_equal( Val.Range(7,9) >> Val.Range(2,7), 1 ) |
test_equal( Val.Range(8,9) >> Val.Range(2,7), 1 ) |
|
test_equal( (string)(Val.Range(2,4)->merge(Val.Range(7,10))), "[2..10]" ) |
test_equal( (string)(Val.Range(3,10)->merge(Val.Range(2,9))), "[2..10]" ) |
test_equal( (string)(Val.Range(2,10)->merge(Val.Range(4,9))), "[2..10]" ) |
test_equal( (string)(Val.Range(2,7) + Val.Range(4,10)), "[2..10]" ) |
test_equal( (string)(Val.Range(2,7) - Val.Range(4,10)), "[2..4]" ) |
test_equal( (string)(Val.Range(2,7) * Val.Range(4,10)), "[4..7]" ) |
|
test_equal( (string)Val.Range(Val.Date(2017,1,1), Val.Date(2017,1,2)), |
"[2017-01-01..2017-01-02]" ) |
test_equal( (string)Val.Range(Val.Date(2017,1,3), Val.Date(2017,1,2)), "[]" ) |
test_equal( (string)Val.Range(-Math.inf, Val.Date(2017,1,2)), "[..2017-01-02]" ) |
|
test_equal( (string)Val.Range(Val.Inet("1.2.3.2"), Val.Inet("1.2.3.4")), |
"[1.2.3.2..1.2.3.4]" ) |
test_equal( (string)Val.Range(Val.Inet("1.2.3.7"), Val.Inet("1.2.3.4")), |
"[]" ) |
test_equal( (string)Val.Range(-Math.inf, Val.Inet("1.2.3.4")), "[..1.2.3.4]" ) |
|
test_equal( (string)Val.Range(Val.Date(2017,12,2), |
Val.Date(2017,12,5))->interval(), "3 DAY") |
|
dnl - Val.Inet |
|
test_equal( (string)Val.Inet("255.255.255.255"), "255.255.255.255") |
test_equal( (int)Val.Inet("255.255.255.255"), 0xffffffff) |
test_equal( (string)Val.Inet("255.255.255.255/20"), "255.255.255.255/20") |
test_equal( (int)Val.Inet("255.255.255.255/20"), 0xffffffff) |
test_equal( (string)Val.Inet("fffe::"), "fffe::") |
test_equal( (string)Val.Inet("fffe::/24"), "fffe::/24") |
test_equal( (string)Val.Inet("::1.2.3.4/100"), "1.2.3.4/4") |
test_equal( (string)Val.Inet("1.2.3.4/4"), "1.2.3.4/4") |
test_equal( (int)Val.Inet("1.2.3.4/4"), 0x01020304) |
test_equal( (string)Val.Inet(0x01020304, 128 - 8), "1.2.3.4/24") |
test_equal( (int)Val.Inet("fffe::"), 0xfffe0000000000000000000000000000) |
|
test_false(!Val.true) |
test_true(!Val.false) |
test_eq((int) Val.true, 1) |
test_eq((int) Val.false, 0) |
test_eq((string) Val.true, "1") |
test_eq((string) Val.false, "0") |
test_false(Val.true == 0) |
test_false(Val.true == 1) |
test_false(Val.false == 0) |
test_false(Val.false == 1) |
test_false(Val.true == Val.false) |
test_true(Val.true == Val.true) |
test_true(Val.false == Val.false) |
|
test_true(!Val.null) |
test_eval_error((int) Val.null) |
test_eval_error((string) Val.null) |
test_false(Val.null == 0) |
test_false(Val.null == 1) |
test_false(Val.null == Val.true) |
test_false(Val.null == Val.false) |
test_true(Val.null == Val.null) |
|
test_true(decode_value (encode_value (Val.null)) == Val.null) |
test_true(decode_value (encode_value (Val.true)) == Val.true) |
test_true(decode_value (encode_value (Val.false)) == Val.false) |
test_true(decode_value ("\266ke0#\6\5rVal.null") == Val.null) |
test_true(decode_value ("\266ke0#\6\5rVal.true") == Val.true) |
test_true(decode_value ("\266ke0#\6\6rVal.false") == Val.false) |
|
test_true(([Val.null: 1])[Val.null]) |
test_false(([Val.false: 1])[Val.null]) |
test_false(([0: 1])[Val.null]) |
test_true(([Val.true: 1])[Val.true]) |
test_false(([Val.true: 1])[Val.false]) |
test_true(([Val.false: 1])[Val.false]) |
test_false(([Val.true: 1])[Val.false]) |
|
test_do(add_constant("dtz")) |
|
END_MARKER |
|
|