public void Equals_GetHashCode_Contract() { var rnd = new System.Random(); var offset = rnd.NextDouble() * 60; if (rnd.NextDouble() < 0.5) { offset *= -1; } var left = new MultiPoint(GetPoints(offset)); var right = new MultiPoint(GetPoints(offset)); Assert.AreEqual(left, right); Assert.AreEqual(right, left); Assert.IsTrue(left.Equals(right)); Assert.IsTrue(left.Equals(left)); Assert.IsTrue(right.Equals(left)); Assert.IsTrue(right.Equals(right)); Assert.IsTrue(left == right); Assert.IsTrue(right == left); Assert.AreEqual(left.GetHashCode(), right.GetHashCode()); }
public void TestMultiPointEqualsHashCode() { var multiPoint1 = new MultiPoint( new[] { new Position(20, 30), new Position(30, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "a", "b" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 40)), Crs = Crs.Named("SomeCrs") }); var multiPoint2 = new MultiPoint( new[] { new Position(20, 30), new Position(30, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "a", "b" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 40)), Crs = Crs.Named("SomeCrs") }); var multiPoint3 = new MultiPoint( new[] { new Position(20, 30), new Position(31, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "a", "b" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 40)), Crs = Crs.Named("SomeCrs") }); var multiPoint4 = new MultiPoint( new[] { new Position(20, 30), new Position(30, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "b", "c" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 40)), Crs = Crs.Named("SomeCrs") }); var multiPoint5 = new MultiPoint( new[] { new Position(20, 30), new Position(30, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "a", "b" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 41)), Crs = Crs.Named("SomeCrs") }); var multiPoint6 = new MultiPoint( new[] { new Position(20, 30), new Position(30, 40) }, new GeometryParams { AdditionalProperties = new Dictionary <string, object> { { "a", "b" } }, BoundingBox = new BoundingBox(new Position(0, 0), new Position(40, 40)), Crs = Crs.Named("SomeCrs1") }); Assert.AreEqual(multiPoint1, multiPoint2); Assert.AreEqual(multiPoint1.GetHashCode(), multiPoint2.GetHashCode()); Assert.AreNotEqual(multiPoint1, multiPoint3); Assert.AreNotEqual(multiPoint1.GetHashCode(), multiPoint3.GetHashCode()); Assert.AreNotEqual(multiPoint1, multiPoint4); Assert.AreNotEqual(multiPoint1.GetHashCode(), multiPoint4.GetHashCode()); Assert.AreNotEqual(multiPoint1, multiPoint5); Assert.AreNotEqual(multiPoint1.GetHashCode(), multiPoint5.GetHashCode()); Assert.AreNotEqual(multiPoint1, multiPoint6); Assert.AreNotEqual(multiPoint1.GetHashCode(), multiPoint6.GetHashCode()); }
public void GetHashCodeShoulBeComputed() { var multiPoint = new MultiPoint(new[] { new Point(1.0, 2.0), new Point(3.0, 4.0) }); Assert.AreEqual(2024009049, multiPoint.GetHashCode()); }