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