@@ -29,37 +29,37 @@ def get_alg():
2929 (
3030 "POINT (0 0)" ,
3131 {"distance" : 1 },
32- "POLYGON ((1 0,0.98078528040323 -0.195090322016128,0.923879532511287 -0.38268343236509,0.831469612302545 -0.555570233019602,0.707106781186548 -0.707106781186547,0.555570233019602 -0.831469612302545,0.38268343236509 -0.923879532511287,0.195090322016128 -0.98078528040323,0 -1,-0.195090322016128 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186547 -0.707106781186548,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016129,-1 0,-0.98078528040323 0.195090322016128,-0.923879532511287 0.38268343236509,-0.831469612302545 0.555570233019602,-0.707106781186548 0.707106781186547,-0.555570233019602 0.831469612302545,-0.38268343236509 0.923879532511287,-0.195090322016129 0.98078528040323,0 1,0.195090322016128 0.98078528040323,0.38268343236509 0.923879532511287,0.555570233019602 0.831469612302545,0.707106781186547 0.707106781186548,0.831469612302545 0.555570233019602,0.923879532511287 0.38268343236509,0.98078528040323 0.195090322016129,1 0))" ,
32+ "MULTIPOLYGON (((1 0,0.98078528040323 -0.195090322016128,0.923879532511287 -0.38268343236509,0.831469612302545 -0.555570233019602,0.707106781186548 -0.707106781186547,0.555570233019602 -0.831469612302545,0.38268343236509 -0.923879532511287,0.195090322016128 -0.98078528040323,0 -1,-0.195090322016128 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186547 -0.707106781186548,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016129,-1 0,-0.98078528040323 0.195090322016128,-0.923879532511287 0.38268343236509,-0.831469612302545 0.555570233019602,-0.707106781186548 0.707106781186547,-0.555570233019602 0.831469612302545,-0.38268343236509 0.923879532511287,-0.195090322016129 0.98078528040323,0 1,0.195090322016128 0.98078528040323,0.38268343236509 0.923879532511287,0.555570233019602 0.831469612302545,0.707106781186547 0.707106781186548,0.831469612302545 0.555570233019602,0.923879532511287 0.38268343236509,0.98078528040323 0.195090322016129,1 0)))" ,
3333 ),
3434 (
3535 "POINT (0 0)" ,
3636 {"distance" : 1 , "quadrant-segments" : 2 },
37- "POLYGON ((1 0,0.707106781186548 -0.707106781186547,0 -1,-0.707106781186547 -0.707106781186548,-1 0,-0.707106781186548 0.707106781186547,0 1,0.707106781186547 0.707106781186548,1 0))" ,
37+ "MULTIPOLYGON ((( 1 0,0.707106781186548 -0.707106781186547,0 -1,-0.707106781186547 -0.707106781186548,-1 0,-0.707106781186548 0.707106781186547,0 1,0.707106781186547 0.707106781186548,1 0) ))" ,
3838 ),
3939 (
4040 "POINT (0 0)" ,
4141 {"distance" : 1 , "endcap-style" : "square" },
42- "POLYGON ((1 1,1 -1,-1 -1,-1 1,1 1))" ,
42+ "MULTIPOLYGON ((( 1 1,1 -1,-1 -1,-1 1,1 1) ))" ,
4343 ),
4444 (
4545 "LINESTRING (0 0,1 0,0 0.5)" ,
4646 {"distance" : 1 , "join-style" : "mitre" },
47- "POLYGON ((-0.963907618884737 0.250728515642601,-0.992147591195 0.374927391943886,-0.997484208812642 0.570889020090679,-0.964488067681204 0.764126422950408,-0.894427190999916 0.947213595499958,-0.789993978969049 1.11311460037472,-0.655201741360129 1.25545395499571,-0.495230468272109 1.36876163778967,-0.316227766016838 1.44868329805051,-0.125072608056114 1.492147591195,0.070889020090679 1.49748420881264,0.264126422950408 1.4644880676812,0.447213595499958 1.39442719099992,5.23606797749979 -1,0 -1,-0.195090322016129 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186548 -0.707106781186547,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016128,-1 0,-0.98078528040323 0.195090322016129,-0.963907618884737 0.250728515642601))" ,
47+ "MULTIPOLYGON ((( -0.963907618884737 0.250728515642601,-0.992147591195 0.374927391943886,-0.997484208812642 0.570889020090679,-0.964488067681204 0.764126422950408,-0.894427190999916 0.947213595499958,-0.789993978969049 1.11311460037472,-0.655201741360129 1.25545395499571,-0.495230468272109 1.36876163778967,-0.316227766016838 1.44868329805051,-0.125072608056114 1.492147591195,0.070889020090679 1.49748420881264,0.264126422950408 1.4644880676812,0.447213595499958 1.39442719099992,5.23606797749979 -1,0 -1,-0.195090322016129 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186548 -0.707106781186547,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016128,-1 0,-0.98078528040323 0.195090322016129,-0.963907618884737 0.250728515642601) ))" ,
4848 ),
4949 (
5050 "LINESTRING (0 0,1 0,0 0.5)" ,
5151 {"distance" : 1 , "join-style" : "mitre" , "mitre-limit" : 1 },
52- "POLYGON ((-0.963907618884737 0.250728515642601,-0.992147591195 0.374927391943886,-0.997484208812642 0.570889020090679,-0.964488067681204 0.764126422950408,-0.894427190999916 0.947213595499958,-0.789993978969049 1.11311460037472,-0.655201741360129 1.25545395499571,-0.495230468272109 1.36876163778967,-0.316227766016838 1.44868329805051,-0.125072608056114 1.492147591195,0.070889020090679 1.49748420881264,0.264126422950408 1.4644880676812,0.447213595499958 1.39442719099992,2.15507965968923 0.540494158905278,1.79141831924623 -1,0 -1,-0.195090322016129 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186548 -0.707106781186547,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016128,-1 0,-0.98078528040323 0.195090322016129,-0.963907618884737 0.250728515642601))" ,
52+ "MULTIPOLYGON ((( -0.963907618884737 0.250728515642601,-0.992147591195 0.374927391943886,-0.997484208812642 0.570889020090679,-0.964488067681204 0.764126422950408,-0.894427190999916 0.947213595499958,-0.789993978969049 1.11311460037472,-0.655201741360129 1.25545395499571,-0.495230468272109 1.36876163778967,-0.316227766016838 1.44868329805051,-0.125072608056114 1.492147591195,0.070889020090679 1.49748420881264,0.264126422950408 1.4644880676812,0.447213595499958 1.39442719099992,2.15507965968923 0.540494158905278,1.79141831924623 -1,0 -1,-0.195090322016129 -0.98078528040323,-0.38268343236509 -0.923879532511287,-0.555570233019602 -0.831469612302545,-0.707106781186548 -0.707106781186547,-0.831469612302545 -0.555570233019602,-0.923879532511287 -0.38268343236509,-0.98078528040323 -0.195090322016128,-1 0,-0.98078528040323 0.195090322016129,-0.963907618884737 0.250728515642601) ))" ,
5353 ),
5454 (
5555 "LINESTRING (0 0,1 0)" ,
5656 {"distance" : 1 , "side" : "left" },
57- "POLYGON ((1 0,0 0,0 1,1 1,1 0))" ,
57+ "MULTIPOLYGON ((( 1 0,0 0,0 1,1 1,1 0) ))" ,
5858 ),
5959 (
60- "LINESTRING ( 0 0,1 0)" ,
60+ "MULTILINESTRING (( 0 0,1 0) )" ,
6161 {"distance" : 1 , "side" : "right" },
62- "POLYGON ((0 0,1 0,1 -1,0 -1,0 0))" ,
62+ "MULTIPOLYGON ((( 0 0,1 0,1 -1,0 -1,0 0) ))" ,
6363 ),
6464 ],
6565 ids = [
@@ -78,10 +78,11 @@ def test_gdalalg_vector_buffer(input_wkt, options, output_wkt):
7878 src_ds = gdal .GetDriverByName ("MEM" ).Create ("" , 0 , 0 , 0 , gdal .GDT_Unknown )
7979 srs = osr .SpatialReference ()
8080 srs .ImportFromEPSG (32631 )
81- src_lyr = src_ds .CreateLayer ("the_layer" , srs = srs )
81+ geom = ogr .CreateGeometryFromWkt (input_wkt )
82+ src_lyr = src_ds .CreateLayer ("the_layer" , srs = srs , geom_type = geom .GetGeometryType ())
8283
8384 f = ogr .Feature (src_lyr .GetLayerDefn ())
84- f .SetGeometry (ogr . CreateGeometryFromWkt ( input_wkt ) )
85+ f .SetGeometry (geom )
8586 src_lyr .CreateFeature (f )
8687
8788 f = ogr .Feature (src_lyr .GetLayerDefn ())
@@ -99,6 +100,8 @@ def test_gdalalg_vector_buffer(input_wkt, options, output_wkt):
99100 out_ds = alg ["output" ].GetDataset ()
100101 out_lyr = out_ds .GetLayer (0 )
101102 out_f = out_lyr .GetNextFeature ()
103+ assert out_lyr .GetLayerDefn ().IsSame (out_f .GetDefnRef ())
104+ assert out_lyr .GetGeomType () == out_f .GetGeometryRef ().GetGeometryType ()
102105 # print(out_f.GetGeometryRef().ExportToIsoWkt())
103106 ogrtest .check_feature_geometry (out_f , output_wkt )
104107 assert (
0 commit comments