assertNull($geometry); } else { $this->assertInstanceOf($classString, $geometry); } } /** * data provider for testFactory * * @return array */ public static function providerForTestFromType(): array { return [ ['MULTIPOLYGON', GisMultiPolygon::class], ['POLYGON', GisPolygon::class], ['MULTILINESTRING', GisMultiLineString::class], ['LineString', GisLineString::class], ['MULTIPOINT', GisMultiPoint::class], ['point', GisPoint::class], ['GEOMETRYCOLLECTION', GisGeometryCollection::class], ['asdf', null], ]; } /** * Test fromWkt method * * @param string $wkt Wkt string * @psalm-param class-string|null $classString geometry */ #[DataProvider('providerForTestFromWkt')] public function testFromWkt(string $wkt, string|null $classString): void { $geometry = GisFactory::fromWkt($wkt); if ($classString === null) { $this->assertNull($geometry); } else { $this->assertInstanceOf($classString, $geometry); } } /** * data provider for testFromWkt * * @return array */ public static function providerForTestFromWkt(): array { return [ ['MULTIPOLYGON(((1 1,2 3,3 2,1 1)))', GisMultiPolygon::class], ['POLYGON((1 1,2 3,3 2,1 1))', GisPolygon::class], ['MULTILINESTRING((5 5, 5 7))', GisMultiLineString::class], ['LineString(2 3, 4 4)', GisLineString::class], ['MULTIPOINT(1 1,2 2)', GisMultiPoint::class], ['point(1 1)', GisPoint::class], ['GEOMETRYCOLLECTION()', GisGeometryCollection::class], ['asdf', null], ]; } }