public void EqualsAndHash() { Collision collision = new Collision.Builder().SetGeometry(new Geometry(new Sphere(1))).Build(); Collision same = new Collision.Builder().SetGeometry(new Geometry(new Sphere(1))).Build(); Collision diff = new Collision.Builder().SetOrigin(new Origin.Builder().SetXyz(new XyzAttribute(1, 2, 3)).Build()) .SetGeometry(new Geometry(new Sphere(1))).Build(); Assert.IsTrue(collision.Equals(collision)); Assert.IsFalse(collision.Equals(null)); Assert.IsTrue(collision.Equals(same)); Assert.IsTrue(same.Equals(collision)); Assert.IsFalse(collision.Equals(diff)); Assert.AreEqual(collision.GetHashCode(), same.GetHashCode()); Assert.AreNotEqual(collision.GetHashCode(), diff.GetHashCode()); }