# Unit tests for operators bbox, inst, val, deftime and present. ############################################################################### create database mratest; open database mratest; ############################################################################### let ur1 = [ const uregion value ((0.0 10.0 TRUE TRUE) ((((2.0 1.0 1.0 4.0) (2.0 3.0 1.0 7.0) (2.0 3.0 3.0 6.0) (6.0 3.0 5.0 6.0) (6.0 3.0 7.0 6.0) (6.0 1.0 7.0 4.0) (6.0 1.0 5.0 6.0) (2.0 1.0 3.0 6.0))))) ]; let mr1 = [ const movingregion value (((0.0 10.0 TRUE TRUE) ((((1.0 3.5 1.5 1.5) (2.0 5.5 3.0 4.5) (3.0 6.5 3.5 5.0) (4.0 6.5 5.5 5.0) (4.0 5.5 5.5 4.5) (5.0 4.5 7.5 2.5) (5.0 2.5 7.5 1.0) (4.0 1.5 7.0 0.5) (3.0 1.5 2.5 0.5)) ((2.0 3.0 3.0 2.0) (2.0 4.0 3.0 3.0) (3.0 4.0 4.0 3.0) (3.0 3.0 4.0 2.0)))))) ]; let mr2 = [ const movingregion value (((0.0 10.0 TRUE FALSE) ((((0.0 0.0 1.0 1.0) (2.0 0.0 3.0 1.0) (1.0 2.0 2.0 3.0))))) ((10.0 20.0 TRUE FALSE) ((((1.0 1.0 2.0 2.0) (3.0 1.0 4.0 2.0) (2.0 3.0 3.0 4.0))))) ((20.0 30.0 FALSE FALSE) ((((2.0 2.0 3.0 3.0) (4.0 2.0 5.0 3.0) (3.0 4.0 4.0 5.0)))))) ]; let r1 = [ const region value ((((200.0 100.0) (100.0 100.0) (100.0 200.0) (200.0 200.0)) ((175.0 125.0) (125.0 125.0) (125.0 175.0) (175.0 175.0)))) ]; let r2 = [ const region value ((((200.0 100.0) (200.0 200.0) (100.0 200.0) (100.0 100.0)) ((175.0 125.0) (175.0 175.0) (125.0 175.0) (125.0 125.0)))) ]; let mp1 = [ const mpoint value (((0.0 10.0 TRUE FALSE) (0.0 0.0 10.0 10.0))) ]; ############################################################################### #testcase "1 - bbox" #yields (rect3 (1.0 7.0 1.0 7.0 0.0 10.0)) query bbox(ur1); #testcase "2 - inst" #yields (instant "2000-01-03") query inst(initial(mr1)); #testcase "3 - val" #yields (region ((((3.0 1.5) (1.0 3.5) (2.0 5.5) (3.0 6.5) (4.0 6.5) (4.0 5.5) (5.0 4.5) (5.0 2.5) (4.0 1.5))) (((3.0 3.0) (2.0 3.0) (2.0 4.0) (3.0 4.0))))) query val(initial(mr1)); #testcase "4 - deftime" #yields (periods (("2000-01-03" "2000-01-23" TRUE FALSE) ("2000-01-23" "2000-02-02" FALSE FALSE))) query deftime(mr2); #testcase "5 - present" #yields (bool TRUE) query mr2 present [const periods value ((5.0 6.0 TRUE TRUE) (15.0 16.0 TRUE TRUE) (25.0 26.0 TRUE TRUE))]; #testcase "6 - present" #yields (bool TRUE) query mr2 present [const periods value ((5.0 15.0 TRUE TRUE))]; #testcase "7 - present" #yields (bool FALSE) query mr2 present [const periods value ((30.0 35.0 TRUE TRUE))]; #testcase "8 - present" #yields (bool TRUE) query mr2 present [const instant value 5.0]; #testcase "9 - present" #yields (bool TRUE) query mr2 present [const instant value 10.0]; #testcase "10 - present" #yields (bool FALSE) query mr2 present [const instant value 30.0]; #testcase "11 - present" #yields (bool FALSE) query mr2 present [const instant value 35.0]; #testcase "12 - move" #yields (movingregion ((("2000-01-03" "2000-01-13" TRUE FALSE) ((((200.0 100.0 210.0 110.0) (100.0 100.0 110.0 110.0) (100.0 200.0 110.0 210.0) (200.0 200.0 210.0 210.0)) ((175.0 125.0 185.0 135.0) (125.0 125.0 135.0 135.0) (125.0 175.0 135.0 185.0) (175.0 175.0 185.0 185.0))))))) query move(mp1, r1); #testcase "13 - move" #yields (movingregion ((("2000-01-03" "2000-01-13" TRUE FALSE) ((((200.0 100.0 210.0 110.0) (200.0 200.0 210.0 210.0) (100.0 200.0 110.0 210.0) (100.0 100.0 110.0 110.0)) ((175.0 125.0 185.0 135.0) (175.0 175.0 185.0 185.0) (125.0 175.0 135.0 185.0) (125.0 125.0 135.0 135.0))))))) query move(mp1, r2); ############################################################################### #teardown close database; delete database mratest;