Revision 47432 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/test/java/org/gvsig/fmap/geom/jts/operation/towkb/TestOGCWKBEncoder.java

View differences:

TestOGCWKBEncoder.java
23 23
 */
24 24
package org.gvsig.fmap.geom.jts.operation.towkb;
25 25

  
26
import static junit.framework.Assert.assertEquals;
27 26
import org.gvsig.fmap.geom.Geometry;
28 27
import org.gvsig.fmap.geom.GeometryLocator;
29 28
import org.gvsig.fmap.geom.GeometryManager;
......
66 65
        GeometryManager manager = GeometryLocator.getGeometryManager();
67 66
        Data[] allData = new Data[] {
68 67
            new Data(
69
                    "POINT (30 10)",
70
                    "0x01010000000000000000003E400000000000002440",
71
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
72
                    false
68
                "POINT (30 10)",
69
                "0x01010000000000000000003E400000000000002440",
70
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
71
                false
73 72
            ),
74 73
            new Data(
75
                    "LINESTRING (30 10, 10 30, 40 40)",
76
                    "0x0102000000030000000000000000003E40000000000000244000000000000024400000000000003E4000000000000044400000000000004440",
77
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
78
                    false
74
                "LINESTRING (30 10, 10 30, 40 40)",
75
                "0x0102000000030000000000000000003E40000000000000244000000000000024400000000000003E4000000000000044400000000000004440",
76
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
77
                false
79 78
            ),
80 79
            new Data(
81
                    "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))",
82
                    "0x010300000001000000050000000000000000003E4000000000000024400000000000004440000000000000444000000000000034400000000000004440000000000000244000000000000034400000000000003E400000000000002440",
83
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
84
                    false
80
                "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))",
81
                "0x010300000001000000050000000000000000003E4000000000000024400000000000004440000000000000444000000000000034400000000000004440000000000000244000000000000034400000000000003E400000000000002440",
82
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
83
                false
85 84
            ),
86 85
            new Data(
87
                    "POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))",
88
                    "0x0103000000020000000500000000000000008041400000000000002440000000000080464000000000008046400000000000002E40000000000000444000000000000024400000000000003440000000000080414000000000000024400400000000000000000034400000000000003E40000000000080414000000000008041400000000000003E40000000000000344000000000000034400000000000003E40",
89
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
90
                    false
86
                "POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))",
87
                "0x0103000000020000000500000000000000008041400000000000002440000000000080464000000000008046400000000000002E40000000000000444000000000000024400000000000003440000000000080414000000000000024400400000000000000000034400000000000003E40000000000080414000000000008041400000000000003E40000000000000344000000000000034400000000000003E40",
88
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
89
                false
91 90
            ),
92 91
            new Data(
93
                    "MULTIPOINT ((10 40), (40 30), (20 20), (30 10))",
94
                    "0x010400000004000000010100000000000000000024400000000000004440010100000000000000000044400000000000003E4001010000000000000000003440000000000000344001010000000000000000003E400000000000002440",
95
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
96
                    true
92
                "MULTIPOINT ((10 40), (40 30), (20 20), (30 10))",
93
                "0x010400000004000000010100000000000000000024400000000000004440010100000000000000000044400000000000003E4001010000000000000000003440000000000000344001010000000000000000003E400000000000002440",
94
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
95
                false
97 96
            ),
98 97
            new Data(
99
                    "MULTIPOINT (10 40, 40 30, 20 20, 30 10)",
100
                    "0x010400000004000000010100000000000000000024400000000000004440010100000000000000000044400000000000003E4001010000000000000000003440000000000000344001010000000000000000003E400000000000002440",
101
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
102
                    true
98
                "MULTIPOINT (10 40, 40 30, 20 20, 30 10)",
99
                "0x010400000004000000010100000000000000000024400000000000004440010100000000000000000044400000000000003E4001010000000000000000003440000000000000344001010000000000000000003E400000000000002440",
100
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
101
                false
103 102
            ),
104 103
            new Data(
105
                    "MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",
106
                    "0x010500000002000000010200000003000000000000000000244000000000000024400000000000003440000000000000344000000000000024400000000000004440010200000004000000000000000000444000000000000044400000000000003E400000000000003E40000000000000444000000000000034400000000000003E400000000000002440",
107
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
108
                    false
104
                "MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",
105
                "0x010500000002000000010200000003000000000000000000244000000000000024400000000000003440000000000000344000000000000024400000000000004440010200000004000000000000000000444000000000000044400000000000003E400000000000003E40000000000000444000000000000034400000000000003E400000000000002440",
106
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
107
                false
109 108
            ),
110 109
            new Data(
111
                    "MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))",
112
                    "0x010600000002000000010300000001000000040000000000000000003E40000000000000344000000000008046400000000000004440000000000000244000000000000044400000000000003E400000000000003440010300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440",
113
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
114
                    false
110
                "MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))",
111
                "0x010600000002000000010300000001000000040000000000000000003E40000000000000344000000000008046400000000000004440000000000000244000000000000044400000000000003E400000000000003440010300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440",
112
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
113
                false
115 114
            ),
116 115
            new Data(
117
                    "MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))",
118
                    "0x01060000000200000001030000000100000004000000000000000000444000000000000044400000000000003440000000000080464000000000008046400000000000003E4000000000000044400000000000004440010300000002000000060000000000000000003440000000000080414000000000000024400000000000003E40000000000000244000000000000024400000000000003E4000000000000014400000000000804640000000000000344000000000000034400000000000804140040000000000000000003E40000000000000344000000000000034400000000000002E40000000000000344000000000000039400000000000003E400000000000003440",
119
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
120
                    false
116
                "MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))",
117
                "0x01060000000200000001030000000100000004000000000000000000444000000000000044400000000000003440000000000080464000000000008046400000000000003E4000000000000044400000000000004440010300000002000000060000000000000000003440000000000080414000000000000024400000000000003E40000000000000244000000000000024400000000000003E4000000000000014400000000000804640000000000000344000000000000034400000000000804140040000000000000000003E40000000000000344000000000000034400000000000002E40000000000000344000000000000039400000000000003E400000000000003440",
118
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
119
                false
121 120
            ),
122 121
            new Data(
123
                    "POLYGON ((710847.97223687172 4368973.1207255824, 720362.03232662566 4368973.1207255824, 720362.03232662566 4373121.8750170888, 710847.97223687172 4373121.8750170888, 710847.97223687172 4368973.1207255824))",
124
                    "0x010300000001000000050000000008C9F17FB12541CBF7B94793AA5041901D8D10D4FB2541CBF7B94793AA5041901D8D10D4FB2541AD470078A0AE50410008C9F17FB12541AD470078A0AE50410008C9F17FB12541CBF7B94793AA5041",
125
                    OGCWKBEncoder.wkbByteOrder.wkbNDR,
126
                    false
127
            ),        };
122
                "POLYGON ((710847.97223687172 4368973.1207255824, 720362.03232662566 4368973.1207255824, 720362.03232662566 4373121.8750170888, 710847.97223687172 4373121.8750170888, 710847.97223687172 4368973.1207255824))",
123
                "0x010300000001000000050000000008C9F17FB12541CBF7B94793AA5041901D8D10D4FB2541CBF7B94793AA5041901D8D10D4FB2541AD470078A0AE50410008C9F17FB12541AD470078A0AE50410008C9F17FB12541CBF7B94793AA5041",
124
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
125
                false
126
            ),        
127
        
128
            new Data(
129
                "POINT Z (30 10 20)",
130
                "0x01e90300000000000000003e4000000000000024400000000000003440",
131
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
132
                false
133
            ),
134

  
135
            new Data(
136
                "POINT M (30 10 30)",
137
                "0x01d10700000000000000003e4000000000000024400000000000003e40",
138
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
139
                false
140
            ),
141

  
142
            new Data(
143
                "POINT ZM (30 10 20 30)",
144
                "0x01b90b00000000000000003e40000000000000244000000000000034400000000000003e40",
145
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
146
                false
147
            ),
148
            
149
            new Data(
150
                "POLYGON Z ((30 10 10, 40 40 10, 20 40 10, 10 20 10, 30 10 10))",
151
                "0x01eb03000001000000050000000000000000003e40000000000000244000000000000024400000000000004440000000000000444000000000000024400000000000003440000000000000444000000000000024400000000000002440000000000000344000000000000024400000000000003e4000000000000024400000000000002440",
152
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
153
                false
154
            ),
155

  
156
            new Data(
157
                "POLYGON M ((30 10 100, 40 40 200, 20 40 300, 10 20 400, 30 10 500))",
158
                "0x01d307000001000000050000000000000000003e4000000000000024400000000000005940000000000000444000000000000044400000000000006940000000000000344000000000000044400000000000c072400000000000002440000000000000344000000000000079400000000000003e4000000000000024400000000000407f40",
159
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
160
                false
161
            ),
162

  
163
            new Data(
164
                "POLYGON ZM ((30 10 10 100, 40 40 10 200, 20 40 10 300, 10 20 10 400, 30 10 10 500))",
165
                "0x01bb0b000001000000050000000000000000003e4000000000000024400000000000002440000000000000594000000000000044400000000000004440000000000000244000000000000069400000000000003440000000000000444000000000000024400000000000c0724000000000000024400000000000003440000000000000244000000000000079400000000000003e40000000000000244000000000000024400000000000407f40",
166
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
167
                false
168
            ),
169

  
170
            new Data(
171
                "MULTIPOINT Z ((10 40 10), (40 30 10), (20 20 10), (30 10 10))",
172
                "0x01ec0300000400000001e903000000000000000024400000000000004440000000000000244001e903000000000000000044400000000000003e40000000000000244001e903000000000000000034400000000000003440000000000000244001e90300000000000000003e4000000000000024400000000000002440",
173
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
174
                false
175
            ),
176

  
177
            new Data(
178
                "MULTIPOINT M ((10 40 100), (40 30 200), (20 20 300), (30 10 400))",
179
                "0x01d40700000400000001d107000000000000000024400000000000004440000000000000594001d107000000000000000044400000000000003e40000000000000694001d1070000000000000000344000000000000034400000000000c0724001d10700000000000000003e4000000000000024400000000000007940",
180
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
181
                false
182
            ),
183

  
184
            new Data(
185
                "MULTIPOINT ZM ((10 40 10 100), (40 30 10 200), (20 20 10 300), (30 10 10 400))",
186
                "0x01bc0b00000400000001b90b0000000000000000244000000000000044400000000000002440000000000000594001b90b000000000000000044400000000000003e400000000000002440000000000000694001b90b00000000000000003440000000000000344000000000000024400000000000c0724001b90b00000000000000003e40000000000000244000000000000024400000000000007940",
187
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
188
                false
189
            ),
190
            
191
            new Data(
192
                "MULTIPOINT Z (10 40 10, 40 30 10, 20 20 10, 30 10 10)",
193
                "0x01ec0300000400000001e903000000000000000024400000000000004440000000000000244001e903000000000000000044400000000000003e40000000000000244001e903000000000000000034400000000000003440000000000000244001e90300000000000000003e4000000000000024400000000000002440",
194
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
195
                false
196
            ),
197

  
198
            new Data(
199
                "MULTIPOINT M (10 40 100, 40 30 200, 20 20 300, 30 10 400)",
200
                "0x01d40700000400000001d107000000000000000024400000000000004440000000000000594001d107000000000000000044400000000000003e40000000000000694001d1070000000000000000344000000000000034400000000000c0724001d10700000000000000003e4000000000000024400000000000007940",
201
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
202
                false
203
            ),
204

  
205
            new Data(
206
                "MULTIPOINT ZM (10 40 10 100, 40 30 10 200, 20 20 10 300, 30 10 10 400)",
207
                "0x01bc0b00000400000001b90b0000000000000000244000000000000044400000000000002440000000000000594001b90b000000000000000044400000000000003e400000000000002440000000000000694001b90b00000000000000003440000000000000344000000000000024400000000000c0724001b90b00000000000000003e40000000000000244000000000000024400000000000007940",
208
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
209
                false
210
            ),
211
            
212
            new Data(
213
                "MULTIPOLYGON Z (((30 20 10, 45 40 10, 10 40 10, 30 20 10)),((15 5 10, 40 10 10, 10 20 10, 5 10 10, 15 5 10)))",
214
                "0x01ee0300000200000001eb03000001000000040000000000000000003e40000000000000344000000000000024400000000000804640000000000000444000000000000024400000000000002440000000000000444000000000000024400000000000003e400000000000003440000000000000244001eb03000001000000050000000000000000002e40000000000000144000000000000024400000000000004440000000000000244000000000000024400000000000002440000000000000344000000000000024400000000000001440000000000000244000000000000024400000000000002e4000000000000014400000000000002440",
215
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
216
                false
217
            ),
218
            
219
            new Data(
220
                "MULTIPOLYGON M (((30 20 100, 45 40 200, 10 40 300, 30 20 400)),((15 5 20, 40 10 500, 10 20 600, 5 10 700, 15 5 800)))",
221
                "0x01d60700000200000001d307000001000000040000000000000000003e4000000000000034400000000000005940000000000080464000000000000044400000000000006940000000000000244000000000000044400000000000c072400000000000003e400000000000003440000000000000794001d307000001000000050000000000000000002e4000000000000014400000000000003440000000000000444000000000000024400000000000407f40000000000000244000000000000034400000000000c08240000000000000144000000000000024400000000000e085400000000000002e4000000000000014400000000000008940",
222
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
223
                false
224
            ),
225
            
226
            new Data(
227
                "MULTIPOLYGON ZM (((30 20 10 100, 45 40 10 200, 10 40 10 300, 30 20 10 400)),((15 5 10 500, 40 10 10 600, 10 20 10 700, 5 10 10 800, 15 5 10 900)))",
228
                "0x01be0b00000200000001bb0b000001000000040000000000000000003e4000000000000034400000000000002440000000000000594000000000008046400000000000004440000000000000244000000000000069400000000000002440000000000000444000000000000024400000000000c072400000000000003e4000000000000034400000000000002440000000000000794001bb0b000001000000050000000000000000002e40000000000000144000000000000024400000000000407f400000000000004440000000000000244000000000000024400000000000c082400000000000002440000000000000344000000000000024400000000000e0854000000000000014400000000000002440000000000000244000000000000089400000000000002e40000000000000144000000000000024400000000000208c40",
229
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
230
                false
231
            ),
232

  
233
            new Data(
234
                "LINESTRING M (30 10 100, 10 30  200, 40 40 300)",
235
                "0x01d2070000030000000000000000003e400000000000002440000000000000594000000000000024400000000000003e400000000000006940000000000000444000000000000044400000000000c07240",
236
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
237
                false
238
            ),
239
            
240
            new Data(
241
                "LINESTRING ZM (30 10 20 100, 10 30 20 200, 40 40 20 300)",
242
                "0x01ba0b0000030000000000000000003e4000000000000024400000000000003440000000000000594000000000000024400000000000003e40000000000000344000000000000069400000000000004440000000000000444000000000000034400000000000c07240",
243
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
244
                false
245
            ),
246
            
247
            new Data(
248
                "MULTILINESTRING M ((10 10 100, 20 20 200, 10 40 300),(40 40 400, 30 30 500, 40 20  600, 30 10 700))",
249
                "0x01d50700000200000001d207000003000000000000000000244000000000000024400000000000005940000000000000344000000000000034400000000000006940000000000000244000000000000044400000000000c0724001d2070000040000000000000000004440000000000000444000000000000079400000000000003e400000000000003e400000000000407f40000000000000444000000000000034400000000000c082400000000000003e4000000000000024400000000000e08540",
250
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
251
                false
252
            ),
253
            
254
            new Data(
255
                "MULTILINESTRING ZM ((10 10 20  100, 20 20 20 200, 10 40 20 300),(40 40 20 400, 30 30 20 500, 40 20 20 600, 30 10 20 700))",
256
                "0x01bd0b00000200000001ba0b000003000000000000000000244000000000000024400000000000003440000000000000594000000000000034400000000000003440000000000000344000000000000069400000000000002440000000000000444000000000000034400000000000c0724001ba0b00000400000000000000000044400000000000004440000000000000344000000000000079400000000000003e400000000000003e4000000000000034400000000000407f400000000000004440000000000000344000000000000034400000000000c082400000000000003e40000000000000244000000000000034400000000000e08540",
257
                OGCWKBEncoder.wkbByteOrder.wkbNDR,
258
                false
259
            ),
260
            
261

  
262
        };
128 263
    
129 264
        System.out.println("# Test:: test1");
130 265
        for (Data data : allData) {            
......
139 274
            System.out.println("# WKB-E:: " + data.wkb);
140 275
            System.out.println("# WKB-R:: " + bytearray(wbk));
141 276
            assertEquals(data.wkb.toUpperCase(),bytearray(wbk).toUpperCase());  
277
            Geometry geom2 = manager.createFrom(wbk);
278
            assertNotNull(geom2);
279
            assertEquals(geom.getGeometryType(), geom2.getGeometryType());
280
            assertEquals(geom, geom2);
142 281
        }
143 282
    }
144 283
}

Also available in: Unified diff