private void TestGeometryBinaryOperation(string operationCriterion, SpatialProjectionBinaryDelegate projection) { IList results = session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .SetProjection(Projections.ProjectionList() .Add(Projections.Property("Description")) .Add(Projections.Property("GeometryResult")) .Add(projection("GeometryA", "GeometryB")) ) .List(); Assert.Greater(results.Count, 0); foreach (object[] result in results) { string description = (string)result[0]; IGeometry expected = (IGeometry)result[1]; IGeometry operation = (IGeometry)result[2]; expected.Normalize(); operation.Normalize(); bool equals = expected.EqualsExact(operation, 1.5); if (!equals) { Console.WriteLine(operationCriterion + ": " + description); } //Assert.IsTrue(equals, description); } }
private void TestBooleanBinaryOperation(string operationCriterion, SpatialProjectionBinaryDelegate projection, SpatialRelationCriterionDelegate criterion) { IList results = session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .SetProjection(Projections.ProjectionList() .Add(Projections.Property("Description")) .Add(Projections.Property("BooleanResult")) .Add(projection("GeometryA", "GeometryB")) ) .List(); Assert.Greater(results.Count, 0); long countTrue = 0; foreach (object[] result in results) { string description = (string)result[0]; bool expected = (bool)result[1]; bool operation = (bool)result[2]; Assert.AreEqual(expected, operation); if (operation) { countTrue++; } } // RowCount uses "count(*)" which in PostgreSQL returns Int64 and // in MS SQL Server return Int32. long countRows = Convert.ToInt64(session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .Add(criterion("GeometryA", "GeometryB")) .SetProjection(Projections.RowCount()) .UniqueResult()); Assert.AreEqual(countTrue, countRows); }
private void TestBooleanBinaryOperation(string operationCriterion, SpatialProjectionBinaryDelegate projection, SpatialRelationCriterionDelegate criterion) { IList results = session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .SetProjection(Projections.ProjectionList() .Add(Projections.Property("Description")) .Add(Projections.Property("BooleanResult")) .Add(projection("GeometryA", "GeometryB")) ) .List(); Assert.Greater(results.Count, 0); long countTrue = 0; foreach (object[] result in results) { string description = (string)result[0]; bool expected = (bool)result[1]; bool operation = (bool)result[2]; Assert.AreEqual(expected, operation); if (operation) countTrue++; } // RowCount uses "count(*)" which in PostgreSQL returns Int64 and // in MS SQL Server return Int32. long countRows = Convert.ToInt64(session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .Add(criterion("GeometryA", "GeometryB")) .SetProjection(Projections.RowCount()) .UniqueResult()); Assert.AreEqual(countTrue, countRows); }
private void TestGeometryBinaryOperation(string operationCriterion, SpatialProjectionBinaryDelegate projection) { IList results = session.CreateCriteria(typeof(NtsTestCase)) .Add(Restrictions.Eq("Operation", operationCriterion)) .SetProjection(Projections.ProjectionList() .Add(Projections.Property("Description")) .Add(Projections.Property("GeometryResult")) .Add(projection("GeometryA", "GeometryB")) ) .List(); Assert.Greater(results.Count, 0); foreach (object[] result in results) { string description = (string)result[0]; IGeometry expected = (IGeometry)result[1]; IGeometry operation = (IGeometry)result[2]; expected.Normalize(); operation.Normalize(); bool equals = expected.EqualsExact(operation, 1.5); if (!equals) Console.WriteLine(operationCriterion + ": " + description); //Assert.IsTrue(equals, description); } }