Skip to content

Commit 9e429ef

Browse files
committed
Added helper properties in tests with PostGIS versions numbers
1 parent 467970d commit 9e429ef

File tree

9 files changed

+57
-36
lines changed

9 files changed

+57
-36
lines changed

LinqToDBPostGisNetTopologySuite.Tests/GeometryAccessorsTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void TestSTBoundary()
9090
Assert.AreEqual(Expected2, result2);
9191

9292
//See https://postgis.net/docs/ST_Boundary.html. Result is different based on postgis version
93-
if (this.CurrentVersion < new Version("3.2.0"))
93+
if (this.CurrentVersion < base.Version320)
9494
{
9595
Assert.AreEqual(Expected3V1, result3);
9696
}
@@ -217,7 +217,7 @@ public void TestSTEnvelope()
217217
Assert.AreEqual("POLYGON((0 0,0 3,1 3,1 0,0 0))", envelope);
218218

219219
// TODO: need explicit cast text to geometry
220-
if (this.CurrentVersion >= new Version("3.0.0"))
220+
if (this.CurrentVersion >= base.Version300)
221221
{
222222
Assert.AreEqual(
223223
"POLYGON((0 0,0 3,1 3,1 0,0 0))",
@@ -567,7 +567,7 @@ public void TestSTIsEmpty()
567567

568568
// TODO: Need some research for reason of error:
569569
// function st_isempty(unknown) is not unique. Could not choose a best candidate function. You might need to add explicit type casts.
570-
if (this.CurrentVersion >= new Version("3.0.0"))
570+
if (this.CurrentVersion >= base.Version300)
571571
{
572572
Assert.IsNull(db.Select(() => GeometryAccessors.STIsEmpty((NTSG)null)));
573573
Assert.IsTrue(db.Select(() => GeometryAccessors.STIsEmpty("CIRCULARSTRING EMPTY")));
@@ -644,7 +644,7 @@ public void TestSTMemSize()
644644
.Single());
645645

646646
// TODO: need explicit cast text to geometry
647-
if (this.CurrentVersion >= new Version("3.0.0"))
647+
if (this.CurrentVersion >= base.Version300)
648648
{
649649
Assert.AreEqual(32, db.Select(() => GeometryAccessors.STMemSize("POINT(0 0)")));
650650
Assert.IsNull(db.Select(() => GeometryAccessors.STMemSize((NTSG)null)));
@@ -924,7 +924,7 @@ public void TestSTStartPoint()
924924

925925
Assert.IsNull(actual2);
926926

927-
if (this.CurrentVersion < new Version("3.2.0"))
927+
if (this.CurrentVersion < base.Version320)
928928
{
929929
Assert.IsNull(actual31);
930930
Assert.IsNull(actual32);

LinqToDBPostGisNetTopologySuite.Tests/GeometryConstructorsTests.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ namespace LinqToDBPostGisNetTopologySuite.Tests
1212
[TestFixture]
1313
class GeometryConstructorsTests : TestsBase
1414
{
15+
private Version CurrentVersion;
16+
1517
[SetUp]
1618
public void Setup()
1719
{
1820
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
1921
{
22+
this.CurrentVersion = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
2023
db.TestGeometries.Delete();
2124
db.TestGeographies.Delete();
2225
}
@@ -326,8 +329,7 @@ public void TestSTPolygon()
326329
.Single());
327330

328331
// TODO: ? reason of error? ST_Polygon(text) not works in 2.5 ?
329-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
330-
if (version >= new Version("3.0.0"))
332+
if (this.CurrentVersion >= base.Version300)
331333
{
332334
db.TestGeometries
333335
.Value(g => g.Id, 3)
@@ -348,8 +350,7 @@ public void TestSTTileEnvelope()
348350
{
349351
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
350352
{
351-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
352-
if (version >= new Version("3.0.0"))
353+
if (this.CurrentVersion >= base.Version300)
353354
{
354355
db.TestGeometries
355356
.Value(g => g.Id, 1)
@@ -408,8 +409,7 @@ public void TestSTHexagon()
408409
{
409410
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
410411
{
411-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
412-
if (version >= new Version("3.1.0"))
412+
if (this.CurrentVersion >= base.Version310)
413413
{
414414
var origin = db.Select(() => GeometryConstructors.STMakePoint(0, 0));
415415

@@ -429,8 +429,7 @@ public void TestSTSquare()
429429
{
430430
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
431431
{
432-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
433-
if (version >= new Version("3.1.0"))
432+
if (this.CurrentVersion >= Version310)
434433
{
435434
var origin = db.Select(() => GeometryConstructors.STMakePoint(0, 0));
436435

LinqToDBPostGisNetTopologySuite.Tests/GeometryOutputTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public void TestSTAsGeoJSON()
231231
.Select(g => g.Geometry.STAsGeoJSON())
232232
.Single();
233233

234-
if (this.CurrentVersion >= new Version("3.0.0"))
234+
if (this.CurrentVersion >= base.Version300)
235235
{
236236
Assert.AreEqual(
237237
"{\"type\":\"Point\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:3857\"}},\"coordinates\":[2.48,4.75]}",

LinqToDBPostGisNetTopologySuite.Tests/GeometryProcessingTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public void TestSTConvexHull()
113113
.Single();
114114

115115
// TODO: need explicit cast text to geometry
116-
if (this.CurrentVersion >= new Version("3.0.0"))
116+
if (this.CurrentVersion >= base.Version300)
117117
{
118118
Assert.AreEqual("POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))", convexHull1);
119119
Assert.IsNull(db.Select(() => GeometryProcessing.STConvexHull((NTSG)null)));
@@ -158,8 +158,7 @@ public void TestSTGeneratePoints()
158158
{
159159
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
160160
{
161-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
162-
if (version >= new Version("3.0.0"))
161+
if (this.CurrentVersion >= base.Version300)
163162
{
164163
// TODO: Test for 2.3.0
165164

@@ -373,12 +372,13 @@ public void TestSTReducePrecision()
373372
{
374373
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
375374
{
376-
// TODO: ? Some helper version classes / attributes for methods?
377-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
378375
var geos = db.Select(() => VersionFunctions.PostGISGEOSVersion());
379-
var geosVersion = geos != null ? new Version(geos.Substring(0, geos.IndexOf('-'))) : null;
376+
var geosVersion = geos != null
377+
? new Version(geos.Substring(0, geos.IndexOf('-')))
378+
: null;
380379

381-
if ((version >= new Version("3.1.0")) && (geosVersion != null) && (geosVersion >= new Version("3.9"))) // TODO: ? const
380+
if ((this.CurrentVersion >= base.Version310) &&
381+
(geosVersion != null) && (geosVersion >= new Version("3.9"))) // TODO: ? const
382382
{
383383
const string Wkt = "POINT(1.412 19.323)";
384384

LinqToDBPostGisNetTopologySuite.Tests/GeometryValidationTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public void Setup()
1818
{
1919
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
2020
{
21+
this.CurrentVersion = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
2122
db.TestGeometries.Delete();
2223
db.TestGeographies.Delete();
23-
this.CurrentVersion = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
2424
}
2525
}
2626

@@ -70,7 +70,7 @@ public void TestSTIsValidDetail()
7070
db.Connection.RegisterPostGisCompositeTypes();
7171
// or PostGisCompositeTypeMapper.RegisterPostGisCompositeTypesGlobally();
7272

73-
var expectedReason = this.CurrentVersion >= new Version("3.2.0")
73+
var expectedReason = this.CurrentVersion >= base.Version320
7474
? "Ring Self-intersection"
7575
: "Self-intersection";
7676

@@ -103,7 +103,7 @@ public void TestSTIsValidReason()
103103

104104
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
105105
{
106-
var expectedDefault = this.CurrentVersion >= new Version("3.2.0")
106+
var expectedDefault = this.CurrentVersion >= base.Version320
107107
? "Ring Self-intersection[1 1]"
108108
: "Self-intersection[0 0]";
109109

LinqToDBPostGisNetTopologySuite.Tests/LinearReferencingTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ namespace LinqToDBPostGisNetTopologySuite.Tests
1212
[TestFixture]
1313
class LinearReferencingTests : TestsBase
1414
{
15+
private Version CurrentVersion;
16+
1517
[SetUp]
1618
public void Setup()
1719
{
1820
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
1921
{
22+
this.CurrentVersion = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
2023
db.TestGeometries.Delete();
2124
db.TestGeographies.Delete();
2225
}
@@ -56,8 +59,7 @@ public void TestST3DLineInterpolatePoint()
5659
const string Wkt = "LINESTRING(25 50 70, 100 125 90, 150 190 200)";
5760
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
5861
{
59-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
60-
if (version >= new Version("3.0.0"))
62+
if (this.CurrentVersion >= base.Version300)
6163
{
6264
db.TestGeometries
6365
.Value(g => g.Id, 1)

LinqToDBPostGisNetTopologySuite.Tests/SpatialRelationshipsTests.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public void TestST3DIntersects()
4848
Assert.IsTrue(result1);
4949
Assert.IsFalse(result2);
5050

51-
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
52-
if (version >= new Version("3.0.0"))
51+
if (this.CurrentVersion >= base.Version300)
5352
{
5453
Assert.IsTrue(
5554
db.Select(() => SpatialRelationships.ST3DIntersects(
@@ -159,7 +158,7 @@ from g2 in db.TestGeometries.Where(g => g.Id == 1)
159158
Assert.IsNull(result2);
160159

161160
// TODO: need explicit cast text to geometry
162-
if (this.CurrentVersion >= new Version("3.0.0"))
161+
if (this.CurrentVersion >= base.Version300)
163162
{
164163
Assert.IsTrue(
165164
db.Select(() => SpatialRelationships.STContainsProperly(
@@ -242,7 +241,7 @@ public void TestSTDisjoint()
242241

243242

244243
// TODO: need explicit cast text to geometry
245-
if (this.CurrentVersion >= new Version("3.0.0"))
244+
if (this.CurrentVersion >= base.Version300)
246245
{
247246
Assert.IsTrue(db.Select(() => SpatialRelationships.STDisjoint(Wkt1, PointWkt)));
248247
Assert.IsFalse(db.Select(() => SpatialRelationships.STDisjoint(Wkt2, PointWkt)));
@@ -372,7 +371,7 @@ public void TestSTOverlaps()
372371
Assert.IsTrue(db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STOverlaps(geometry2)).Single());
373372

374373
// TODO: need explicit cast text to geometry
375-
if (this.CurrentVersion >= new Version("3.0.0"))
374+
if (this.CurrentVersion >= base.Version300)
376375
{
377376
Assert.IsFalse(db.Select(() => SpatialRelationships.STOverlaps(Wkt3, Wkt4)));
378377
}
@@ -513,7 +512,7 @@ public void TestSTTouches()
513512
GeometryInput.STGeomFromText(Wkt3))));
514513

515514
// TODO: need explicit cast text to geometry
516-
if (this.CurrentVersion >= new Version("3.0.0"))
515+
if (this.CurrentVersion >= base.Version300)
517516
{
518517
Assert.IsFalse(db.Select(() => SpatialRelationships.STTouches(Wkt1, Wkt2)));
519518
Assert.IsTrue(db.Select(() => SpatialRelationships.STTouches(Wkt1, Wkt3)));
@@ -576,7 +575,7 @@ public void TestSTWithin()
576575
10)));
577576

578577
// TODO: need explicit cast text to geometry
579-
if (this.CurrentVersion >= new Version("3.0.0"))
578+
if (this.CurrentVersion >= base.Version300)
580579
{
581580
Assert.IsFalse(db.Select(() => SpatialRelationships.STDFullyWithin(Wkt1, Wkt2, 10)));
582581
Assert.IsTrue(db.Select(() => SpatialRelationships.STDFullyWithin(Wkt1, Wkt2, 20)));

LinqToDBPostGisNetTopologySuite.Tests/TestsBase.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,34 @@ abstract class TestsBase
1515
public void OneTimeSetUp()
1616
{
1717
NpgsqlConnection.GlobalTypeMapper.UseNetTopologySuite();
18+
this.Version300 = new Version("3.0.0");
19+
this.Version310 = new Version("3.1.0");
20+
this.Version320 = new Version("3.2.0");
1821
}
1922

2023
protected const int SRID4326 = 4326;
2124

2225
protected const int SRID3857 = 3857;
2326

27+
#region PostGIS versions
28+
29+
/// <summary>
30+
/// PostGIS version 3.0.0
31+
/// </summary>
32+
public Version Version300 { get; private set; }
33+
34+
/// <summary>
35+
/// PostGIS version 3.1.0
36+
/// </summary>
37+
public Version Version310 { get; private set; }
38+
39+
/// <summary>
40+
/// PostGIS version 3.2.0
41+
/// </summary>
42+
public Version Version320 { get; private set; }
43+
44+
#endregion
45+
2446
protected static string TestDatabaseConnectionString
2547
{
2648
get
@@ -49,4 +71,4 @@ private static string AssemblyPath
4971
}
5072
}
5173
}
52-
}
74+
}

LinqToDBPostGisNetTopologySuite.Tests/VersionFunctionsTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ public void TestPostGISFullVersion()
4040
var projVersion = db.Select(() => VersionFunctions.PostGISPROJVersion());
4141
Console.WriteLine($"PROJ4={projVersion}");
4242

43-
var currentVersion = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
44-
if (currentVersion >= new Version("3.0"))
43+
if (new Version(libVersion) >= base.Version300)
4544
{
4645
var wagyuVersion = db.Select(() => VersionFunctions.PostGISWagyuVersion());
4746
Console.WriteLine($"Wagyu={wagyuVersion}");

0 commit comments

Comments
 (0)