#This file is part of SECONDO. # #Copyright (C) 2004, University in Hagen, Department of Computer Science, #Database Systems for New Applications. # #SECONDO is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation; either version 2 of the License, or #(at your option) any later version. # #SECONDO is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with SECONDO; if not, write to the Free Software #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # a test for the range algebra # run with : TestRunner -c MyConfig.config < rangetest # (TestRunner can be found in directory UserInterfaces) # clean up what may be left over from e.g. a segfault delete database rangetest; #setup create database rangetest; open database rangetest; (create rangerel : (rel(tuple((No int)(R rint))))); (update rangerel := ((rel(tuple((No int)(R rint)))) ( (1 ( ( 5 8 FALSE FALSE) ( 13 14 TRUE FALSE) ) ) (2 ( ( 3 5 FALSE FALSE) ( 6 14 FALSE TRUE) ) ) ) )); (create rint1 : rint); (update rint1 := ( rint ( ( 5 8 FALSE FALSE) ( 13 14 TRUE FALSE) ) ) ); (create rint2 : rint); (update rint2 := ( rint ( ( 3 5 FALSE FALSE) ( 6 14 FALSE TRUE) ) ) ); (create rreal1 : rreal); (update rreal1 := ( rreal ( ( 5.0 8.1 FALSE FALSE) ( 13.0 14.1 TRUE FALSE) ) ) ); (create rreal2 : rreal); (update rreal2 := ( rreal ( ( 3.0 5.3 FALSE FALSE) ( 6.8 14.2 FALSE TRUE) ) ) ); (create r1 : rint); (update r1 := ( rint ( ( 5 8 FALSE FALSE) ( 13 14 TRUE FALSE) ( 16 21 TRUE FALSE) ( 23 28 FALSE FALSE) ( 32 39 TRUE FALSE) ( 41 42 TRUE FALSE) ( 44 47 TRUE TRUE) ( 52 54 FALSE FALSE) ( 58 60 FALSE FALSE) ( 63 72 TRUE FALSE) ( 75 82 TRUE FALSE) ( 84 87 FALSE FALSE) ( 88 97 FALSE TRUE) ( 99 104 FALSE TRUE) ( 106 106 TRUE TRUE) ( 109 109 TRUE TRUE) ( 111 120 FALSE FALSE) ( 122 127 TRUE FALSE) ( 130 136 FALSE TRUE) ( 139 148 FALSE FALSE) ( 150 157 FALSE TRUE) ( 161 162 TRUE FALSE) ( 167 170 TRUE FALSE) ( 172 178 FALSE FALSE) ( 182 190 TRUE FALSE) ( 192 200 FALSE FALSE) ) ) ); (create r2 : rint); (update r2 := ( rint ( ( 3 5 FALSE FALSE) ( 6 14 FALSE TRUE) ( 18 20 FALSE TRUE) ( 23 25 TRUE TRUE) ( 28 32 TRUE FALSE) ( 34 34 TRUE TRUE) ( 39 48 FALSE TRUE) ( 52 55 TRUE TRUE) ( 58 60 TRUE FALSE) ( 62 68 TRUE FALSE) ( 70 78 TRUE FALSE) ( 79 81 FALSE FALSE) ( 85 94 FALSE FALSE) ( 95 96 FALSE TRUE) ( 98 99 TRUE FALSE) ( 102 109 TRUE TRUE) ( 114 116 FALSE TRUE) ( 121 121 TRUE TRUE) ( 126 126 TRUE TRUE) ( 128 136 FALSE TRUE) ( 138 140 FALSE FALSE) ( 142 147 FALSE TRUE) ( 151 151 TRUE TRUE) ( 154 161 TRUE FALSE) ( 164 172 FALSE FALSE) ( 173 180 FALSE FALSE) ( 185 193 FALSE FALSE) ( 198 207 FALSE TRUE) ) ) ); (create r3 : rint); (update r3 := ( rint ( ( 1 9 FALSE TRUE) ( 13 15 FALSE TRUE) ( 19 22 TRUE TRUE) ( 24 29 TRUE FALSE) ( 32 41 TRUE FALSE) ( 45 46 TRUE FALSE) ( 51 55 TRUE FALSE) ( 58 58 TRUE TRUE) ( 60 65 FALSE TRUE) ( 69 73 TRUE TRUE) ( 77 78 FALSE TRUE) ( 81 87 FALSE FALSE) ( 89 90 FALSE TRUE) ( 92 99 TRUE FALSE) ( 103 109 TRUE FALSE) ( 110 112 FALSE FALSE) ( 114 114 TRUE TRUE) ( 117 123 TRUE FALSE) ( 125 128 TRUE FALSE) ( 130 137 TRUE TRUE) ( 140 149 FALSE FALSE) ( 153 154 FALSE TRUE) ( 158 167 FALSE FALSE) ( 169 176 FALSE TRUE) ( 181 190 FALSE TRUE) ( 193 194 TRUE FALSE) ( 197 201 FALSE TRUE) ) ) ); (create r4 : rint); (update r4 := ( rint ( ( 2 3 TRUE FALSE) ( 7 11 FALSE FALSE) ( 13 14 TRUE TRUE) ( 16 18 TRUE FALSE) ( 23 29 FALSE FALSE) ( 32 35 TRUE FALSE) ( 39 41 TRUE TRUE) ( 43 48 TRUE TRUE) ( 50 50 TRUE TRUE) ( 53 62 FALSE TRUE) ( 66 73 TRUE TRUE) ( 78 84 FALSE TRUE) ( 87 91 FALSE TRUE) ( 93 96 FALSE FALSE) ( 101 104 FALSE TRUE) ( 107 107 TRUE TRUE) ( 111 118 TRUE TRUE) ( 123 130 TRUE TRUE) ( 135 142 TRUE TRUE) ( 147 147 TRUE TRUE) ( 149 151 TRUE FALSE) ( 156 157 TRUE TRUE) ( 160 167 FALSE TRUE) ( 169 173 FALSE FALSE) ( 176 179 TRUE FALSE) ( 182 183 FALSE TRUE) ( 186 188 FALSE TRUE) ( 190 198 TRUE TRUE) ( 200 208 TRUE TRUE) ) ) ); (create r5 : rint); (update r5 := ( rint ( ( 5 8 FALSE FALSE) ( 9 11 FALSE FALSE) ( 16 19 TRUE TRUE) ( 23 24 FALSE TRUE) ( 26 30 TRUE TRUE) ( 32 35 FALSE TRUE) ( 38 38 TRUE TRUE) ( 40 43 TRUE FALSE) ( 45 51 FALSE FALSE) ( 55 63 FALSE TRUE) ( 67 67 TRUE TRUE) ( 70 78 FALSE FALSE) ( 81 85 TRUE FALSE) ( 90 96 TRUE TRUE) ( 98 103 TRUE FALSE) ( 107 112 TRUE TRUE) ( 114 116 FALSE FALSE) ( 117 120 FALSE FALSE) ( 124 127 FALSE TRUE) ( 129 133 FALSE FALSE) ( 138 139 TRUE FALSE) ( 144 149 FALSE FALSE) ( 151 160 FALSE FALSE) ( 163 168 FALSE FALSE) ( 173 178 FALSE FALSE) ( 183 186 FALSE FALSE) ( 190 197 FALSE FALSE) ( 199 205 TRUE TRUE) ) ) ); (create r6 : rint); (update r6 := ( rint ( ( 4 12 FALSE FALSE) ( 15 21 FALSE FALSE) ( 24 25 FALSE TRUE) ( 29 34 FALSE FALSE) ( 35 39 FALSE TRUE) ( 44 47 FALSE TRUE) ( 49 52 TRUE TRUE) ( 54 60 FALSE FALSE) ( 63 67 TRUE FALSE) ( 69 69 TRUE TRUE) ( 73 78 TRUE TRUE) ( 82 91 FALSE TRUE) ( 94 102 FALSE FALSE) ( 107 114 TRUE FALSE) ( 116 120 FALSE TRUE) ( 125 134 TRUE TRUE) ( 138 145 FALSE TRUE) ( 149 158 TRUE TRUE) ( 161 166 FALSE TRUE) ( 169 172 FALSE FALSE) ( 174 180 FALSE TRUE) ( 182 183 FALSE TRUE) ( 186 186 TRUE TRUE) ( 189 194 TRUE TRUE) ( 196 196 TRUE TRUE) ( 201 207 FALSE FALSE) ) ) ); (create r7 : rint); (update r7 := ( rint ( ( 5 6 TRUE TRUE) ( 10 16 FALSE TRUE) ( 18 26 TRUE FALSE) ( 30 34 TRUE FALSE) ( 35 43 FALSE FALSE) ( 48 49 TRUE TRUE) ( 51 57 TRUE TRUE) ( 59 68 TRUE TRUE) ( 70 73 FALSE FALSE) ( 75 80 TRUE TRUE) ( 83 87 TRUE TRUE) ( 92 97 TRUE TRUE) ( 100 108 FALSE TRUE) ( 113 113 TRUE TRUE) ( 116 118 FALSE FALSE) ( 120 128 FALSE TRUE) ( 130 136 FALSE FALSE) ( 140 149 TRUE FALSE) ( 151 159 TRUE FALSE) ( 161 161 TRUE TRUE) ( 163 167 TRUE FALSE) ( 172 172 TRUE TRUE) ( 177 181 TRUE FALSE) ( 183 187 TRUE FALSE) ( 192 197 FALSE FALSE) ( 199 201 FALSE FALSE) ) ) ); (create r8 : rint); (update r8 := ( rint ( ( 1 10 TRUE TRUE) ( 13 17 TRUE FALSE) ( 21 25 TRUE FALSE) ( 27 29 FALSE TRUE) ( 33 33 TRUE TRUE) ( 38 46 FALSE TRUE) ( 50 55 FALSE TRUE) ( 57 57 TRUE TRUE) ( 60 68 FALSE FALSE) ( 73 82 FALSE TRUE) ( 84 84 TRUE TRUE) ( 86 86 TRUE TRUE) ( 89 91 FALSE FALSE) ( 94 98 TRUE TRUE) ( 101 110 TRUE TRUE) ( 112 119 FALSE TRUE) ( 124 132 TRUE TRUE) ( 136 143 TRUE FALSE) ( 147 154 FALSE TRUE) ( 158 167 TRUE TRUE) ( 169 177 TRUE FALSE) ( 179 180 TRUE FALSE) ( 185 193 TRUE FALSE) ( 196 200 FALSE TRUE) ) ) ); (create r9 : rint); (update r9 := ( rint ( ( 4 5 TRUE TRUE) ( 7 12 TRUE FALSE) ( 15 17 FALSE FALSE) ( 19 28 FALSE TRUE) ( 30 34 TRUE TRUE) ( 37 38 TRUE TRUE) ( 40 45 TRUE TRUE) ( 47 53 FALSE FALSE) ( 58 66 TRUE TRUE) ( 69 70 FALSE TRUE) ( 72 77 FALSE FALSE) ( 80 84 FALSE FALSE) ( 89 91 FALSE TRUE) ( 93 93 TRUE TRUE) ( 98 101 FALSE FALSE) ( 106 114 FALSE FALSE) ( 117 123 FALSE FALSE) ( 127 127 TRUE TRUE) ( 131 136 TRUE TRUE) ( 138 144 FALSE FALSE) ( 146 151 TRUE TRUE) ( 156 157 TRUE TRUE) ( 159 160 TRUE FALSE) ( 163 170 FALSE TRUE) ( 172 177 FALSE FALSE) ( 179 185 FALSE FALSE) ( 190 197 TRUE FALSE) ( 201 208 FALSE TRUE) ) ) ); (create r10 : rint); (update r10 := ( rint ( ( 1 9 TRUE TRUE) ( 11 15 TRUE FALSE) ( 16 19 FALSE FALSE) ( 20 28 FALSE TRUE) ( 30 33 TRUE FALSE) ( 35 43 TRUE FALSE) ( 47 51 TRUE TRUE) ( 53 55 FALSE TRUE) ( 57 63 TRUE TRUE) ( 65 72 TRUE TRUE) ( 74 74 TRUE TRUE) ( 79 81 FALSE FALSE) ( 85 86 TRUE FALSE) ( 90 91 FALSE TRUE) ( 96 101 FALSE TRUE) ( 106 114 FALSE TRUE) ( 116 123 TRUE FALSE) ( 125 128 FALSE TRUE) ( 132 139 TRUE FALSE) ( 141 142 TRUE FALSE) ( 145 147 FALSE TRUE) ( 149 154 TRUE TRUE) ( 156 156 TRUE TRUE) ( 161 169 FALSE FALSE) ( 171 172 TRUE TRUE) ( 177 183 FALSE TRUE) ( 185 188 TRUE FALSE) ( 193 194 FALSE TRUE) ( 199 202 TRUE TRUE) ) ) ); #testcase RangeTest000001 #yields (bool TRUE) (query (= (union (intersection r1 r1) (minus r1 r1)) r1)); #testcase RangeTest000002 #yields (bool TRUE) (query (= (union (intersection r1 r1) (minus r1 r1)) r1)); #testcase RangeTest000003 #yields (bool TRUE) (query (= (union (intersection r1 r2) (minus r1 r2)) r1)); #testcase RangeTest000004 #yields (bool TRUE) (query (= (union (intersection r2 r1) (minus r2 r1)) r2)); #testcase RangeTest000005 #yields (bool TRUE) (query (= (union (intersection r1 r3) (minus r1 r3)) r1)); #testcase RangeTest000006 #yields (bool TRUE) (query (= (union (intersection r3 r1) (minus r3 r1)) r3)); #testcase RangeTest000007 #yields (bool TRUE) (query (= (union (intersection r1 r4) (minus r1 r4)) r1)); #testcase RangeTest000008 #yields (bool TRUE) (query (= (union (intersection r4 r1) (minus r4 r1)) r4)); #testcase RangeTest000009 #yields (bool TRUE) (query (= (union (intersection r1 r5) (minus r1 r5)) r1)); #testcase RangeTest000010 #yields (bool TRUE) (query (= (union (intersection r5 r1) (minus r5 r1)) r5)); #testcase RangeTest000011 #yields (bool TRUE) (query (= (union (intersection r1 r6) (minus r1 r6)) r1)); #testcase RangeTest000012 #yields (bool TRUE) (query (= (union (intersection r6 r1) (minus r6 r1)) r6)); #testcase RangeTest000013 #yields (bool TRUE) (query (= (union (intersection r1 r7) (minus r1 r7)) r1)); #testcase RangeTest000014 #yields (bool TRUE) (query (= (union (intersection r7 r1) (minus r7 r1)) r7)); #testcase RangeTest000015 #yields (bool TRUE) (query (= (union (intersection r1 r8) (minus r1 r8)) r1)); #testcase RangeTest000016 #yields (bool TRUE) (query (= (union (intersection r8 r1) (minus r8 r1)) r8)); #testcase RangeTest000017 #yields (bool TRUE) (query (= (union (intersection r1 r9) (minus r1 r9)) r1)); #testcase RangeTest000018 #yields (bool TRUE) (query (= (union (intersection r9 r1) (minus r9 r1)) r9)); #testcase RangeTest000019 #yields (bool TRUE) (query (= (union (intersection r1 r10) (minus r1 r10)) r1)); #testcase RangeTest000020 #yields (bool TRUE) (query (= (union (intersection r10 r1) (minus r10 r1)) r10)); #teardown close database; delete database rangetest;