1<run> 2 3<case> 4 <desc>PP - point contained in both A and B</desc> 5 <a> 6 POINT(100 100) 7 </a> 8 <b> 9 POINT(100 100) 10 </b> 11<test> 12 <op name="intersection" arg1="A" arg2="B"> 13 POINT(100 100) 14 </op> 15</test> 16</case> 17 18<case> 19 <desc>PP - A different from B</desc> 20 <a> 21 POINT(100 100) 22 </a> 23 <b> 24 POINT(200 200) 25 </b> 26<test> 27 <op name="intersection" arg1="A" arg2="B"> 28 POINT EMPTY 29 </op> 30</test> 31<test> 32 <op name="union" arg1="A" arg2="B"> 33 MULTIPOINT((100 100), (200 200)) 34 </op> 35</test> 36<test> 37 <op name="difference" arg1="A" arg2="B"> 38 POINT(100 100) 39 </op> 40</test> 41<test> 42 <op name="symdifference" arg1="A" arg2="B"> 43 MULTIPOINT((100 100), (200 200)) 44 </op> 45</test> 46</case> 47 48<case> 49 <desc>PmP - point in A contained in B</desc> 50 <a> 51 POINT(100 100) 52 </a> 53 <b> 54 MULTIPOINT((100 100), (200 200)) 55 </b> 56<test> 57 <op name="intersection" arg1="A" arg2="B"> 58 POINT(100 100) 59 </op> 60</test> 61<test> 62 <op name="union" arg1="A" arg2="B"> 63 MULTIPOINT((100 100), (200 200)) 64 </op> 65</test> 66<test> 67 <op name="difference" arg1="A" arg2="B"> 68 POINT EMPTY 69 </op> 70</test> 71<test> 72 <op name="symdifference" arg1="A" arg2="B"> 73 POINT(200 200) 74 </op> 75</test> 76</case> 77 78<case> 79 <desc>mPmP - points in A only, B only, and in both</desc> 80 <a> 81 MULTIPOINT((100 100), (200 200), (300 300), (500 500)) 82 </a> 83 <b> 84 MULTIPOINT((100 100), (200 200), (400 400), (600 600)) 85 </b> 86<test> 87 <op name="intersection" arg1="A" arg2="B"> 88 MULTIPOINT((100 100), (200 200)) 89 </op> 90</test> 91<test> 92 <op name="union" arg1="A" arg2="B"> 93 MULTIPOINT ((100 100), (200 200), (300 300), (400 400), (500 500), (600 600)) 94 </op> 95</test> 96<test> 97 <op name="difference" arg1="A" arg2="B"> 98 MULTIPOINT((300 300), (500 500)) 99 </op> 100</test> 101<test> 102 <op name="symdifference" arg1="A" arg2="B"> 103 MULTIPOINT((300 300), (400 400), (500 500), (600 600)) 104 </op> 105</test> 106</case> 107 108<case> 109 <desc>PP - point contained in both A and B</desc> 110 <a> 111 POINT(80 200) 112 </a> 113 <b> 114 POINT(80 200) 115 </b> 116<test> 117 <op name="intersection" arg1="A" arg2="B"> 118 POINT(80 200) 119 </op> 120</test> 121<test> 122 <op name="union" arg1="A" arg2="B"> 123 POINT(80 200) 124 </op> 125</test> 126<test> 127 <op name="difference" arg1="A" arg2="B"> 128 POINT EMPTY 129 </op> 130</test> 131<test> 132 <op name="symdifference" arg1="A" arg2="B"> 133 POINT EMPTY 134 </op> 135</test> 136</case> 137 138<case> 139 <desc>PP - A different from B</desc> 140 <a> 141 POINT(80 200) 142 </a> 143 <b> 144 POINT(260 80) 145 </b> 146<test> 147 <op name="intersection" arg1="A" arg2="B"> 148 POINT EMPTY 149 </op> 150</test> 151<test> 152 <op name="union" arg1="A" arg2="B"> 153 MULTIPOINT((80 200), (260 80)) 154 </op> 155</test> 156<test> 157 <op name="difference" arg1="A" arg2="B"> 158 POINT(80 200) 159 </op> 160</test> 161<test> 162 <op name="symdifference" arg1="A" arg2="B"> 163 MULTIPOINT((80 200), (260 80)) 164 </op> 165</test> 166</case> 167 168<case> 169 <desc>PP - A different from B, same y</desc> 170 <a> 171 POINT(60 260) 172 </a> 173 <b> 174 POINT(120 260) 175 </b> 176<test> 177 <op name="intersection" arg1="A" arg2="B"> 178 POINT EMPTY 179 </op> 180</test> 181<test> 182 <op name="union" arg1="A" arg2="B"> 183 MULTIPOINT((60 260), (120 260)) 184 </op> 185</test> 186<test> 187 <op name="difference" arg1="A" arg2="B"> 188 POINT(60 260) 189 </op> 190</test> 191<test> 192 <op name="symdifference" arg1="A" arg2="B"> 193 MULTIPOINT((60 260), (120 260)) 194 </op> 195</test> 196</case> 197 198<case> 199 <desc>PP - A different from B, same x</desc> 200 <a> 201 POINT(80 80) 202 </a> 203 <b> 204 POINT(80 280) 205 </b> 206<test> 207 <op name="intersection" arg1="A" arg2="B"> 208 POINT EMPTY 209 </op> 210</test> 211<test> 212 <op name="union" arg1="A" arg2="B"> 213 MULTIPOINT((80 80), (80 280)) 214 </op> 215</test> 216<test> 217 <op name="difference" arg1="A" arg2="B"> 218 POINT(80 80) 219 </op> 220</test> 221<test> 222 <op name="symdifference" arg1="A" arg2="B"> 223 MULTIPOINT((80 80), (80 280)) 224 </op> 225</test> 226</case> 227 228</run> 229