diff --git a/test/EFCore.Specification.Tests/Query/SpatialQueryTestBase.cs b/test/EFCore.Specification.Tests/Query/SpatialQueryTestBase.cs index 24f61eb17c5..5749dabd135 100644 --- a/test/EFCore.Specification.Tests/Query/SpatialQueryTestBase.cs +++ b/test/EFCore.Specification.Tests/Query/SpatialQueryTestBase.cs @@ -934,6 +934,22 @@ public virtual Task M(bool async) }); } + [ConditionalTheory] + [MemberData(nameof(IsAsyncData))] + public virtual Task Normalized(bool async) + { + return AssertQuery( + async, + ss => ss.Set().Select(e => new { e.Id, Normalized = e.Polygon.Normalized() }), + ss => ss.Set().Select(e => new { e.Id, Normalized = e.Polygon == null ? null : e.Polygon.Normalized() }), + elementSorter: x => x.Id, + elementAsserter: (e, a) => + { + Assert.Equal(e.Id, a.Id); + Assert.Equal(e.Normalized, a.Normalized, GeometryComparer.Instance); + }); + } + [ConditionalTheory] [MemberData(nameof(IsAsyncData))] public virtual Task NumGeometries(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs index 17b14006c45..9e927f2c340 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs @@ -511,6 +511,12 @@ public override async Task M(bool async) FROM [PointEntity] AS [p]"); } + // No SqlServer Translation + public override Task Normalized(bool async) + { + return Task.CompletedTask; + } + public override async Task NumGeometries(bool async) { await base.NumGeometries(async); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs index dd1b1ede365..5d331c96a26 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs @@ -555,6 +555,12 @@ public override async Task M(bool async) FROM [PointEntity] AS [p]"); } + // No SqlServer Translation + public override Task Normalized(bool async) + { + return Task.CompletedTask; + } + public override async Task NumGeometries(bool async) { await base.NumGeometries(async); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs index 31133bd4cde..bb1503bcbe5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs @@ -596,6 +596,12 @@ public override async Task M(bool async) FROM ""PointEntity"" AS ""p"""); } + // No Sqlite Translation + public override Task Normalized(bool async) + { + return Task.CompletedTask; + } + public override async Task NumGeometries(bool async) { await base.NumGeometries(async);