@@ -220,7 +220,26 @@ import ArchGDAL as AG
220
220
AG. createfielddefn (" int32field" , AG. OFTInteger) do fielddefn
221
221
return AG. addfielddefn! (layer, fielddefn)
222
222
end
223
- AG. createfielddefn (" float32field" , AG. OFTReal) do fielddefn
223
+ AG. createfielddefn (" booleansubfield" , AG. OFTInteger) do fielddefn
224
+ AG. setsubtype! (fielddefn, AG. OFSTBoolean)
225
+ return AG. addfielddefn! (layer, fielddefn)
226
+ end
227
+ AG. createfielddefn (" int16subfield" , AG. OFTInteger) do fielddefn
228
+ AG. setsubtype! (fielddefn, AG. OFSTInt16)
229
+ return AG. addfielddefn! (layer, fielddefn)
230
+ end
231
+ AG. createfielddefn (" float32subfield" , AG. OFTReal) do fielddefn
232
+ AG. setsubtype! (fielddefn, AG. OFSTFloat32)
233
+ return AG. addfielddefn! (layer, fielddefn)
234
+ end
235
+ AG. createfielddefn (" float16subfield" , AG. OFTReal) do fielddefn
236
+ AG. setsubtype! (fielddefn, AG. OFSTFloat32)
237
+ return AG. addfielddefn! (layer, fielddefn)
238
+ end
239
+ AG. createfielddefn (" uint1616subfield" , AG. OFTInteger) do fielddefn
240
+ return AG. addfielddefn! (layer, fielddefn)
241
+ end
242
+ AG. createfielddefn (" uint32subfield" , AG. OFTInteger64) do fielddefn
224
243
return AG. addfielddefn! (layer, fielddefn)
225
244
end
226
245
AG. createfeature (layer) do feature
@@ -235,7 +254,12 @@ import ArchGDAL as AG
235
254
AG. setfield! (feature, 8 , true )
236
255
AG. setfield! (feature, 9 , Int16 (1 ))
237
256
AG. setfield! (feature, 10 , Int32 (1 ))
238
- AG. setfield! (feature, 11 , Float32 (1.0 ))
257
+ AG. setfield! (feature, 11 , false )
258
+ AG. setfield! (feature, 12 , Int8 (1 ))
259
+ AG. setfield! (feature, 13 , Float32 (1.0 ))
260
+ AG. setfield! (feature, 14 , Float16 (1.0 ))
261
+ AG. setfield! (feature, 15 , UInt16 (1.0 ))
262
+ AG. setfield! (feature, 16 , UInt32 (1.0 ))
239
263
for i in 1 : AG. nfield (feature)
240
264
@test ! AG. isfieldnull (feature, i - 1 )
241
265
@test AG. isfieldsetandnotnull (feature, i - 1 )
@@ -248,6 +272,12 @@ import ArchGDAL as AG
248
272
AG. getgeom (feature, 0 ) do geom
249
273
@test sprint (print, geom) == " NULL Geometry"
250
274
end
275
+ @test AG. getfield (feature, 11 ) === false
276
+ @test AG. getfield (feature, 12 ) === Int16 (1 ) # Widened from Int8
277
+ @test AG. getfield (feature, 13 ) === Float32 (1.0 )
278
+ @test AG. getfield (feature, 14 ) === Float32 (1.0 ) # Widened from Float16
279
+ @test AG. getfield (feature, 15 ) === Int32 (1 ) # Widened from UInt16
280
+ @test AG. getfield (feature, 16 ) === Int64 (1 ) # Widened from UInt32
251
281
252
282
AG. addfeature (layer) do newfeature
253
283
AG. setfrom! (newfeature, feature)
@@ -267,7 +297,7 @@ import ArchGDAL as AG
267
297
@test AG. getfield (newfeature, 8 ) == true
268
298
@test AG. getfield (newfeature, 9 ) == 1
269
299
@test AG. getfield (newfeature, 10 ) == 1
270
- @test AG. getfield (newfeature, 11 ) == 1.0
300
+ @test AG. getfield (newfeature, 13 ) === Float32 ( 1.0 )
271
301
272
302
AG. createfeature (layer) do lastfeature
273
303
AG. setfrom! (lastfeature, feature)
0 commit comments