public void TestGetHashCode() { { Vector2 a = new Vector2(10, 11); Vector2 b = new Vector2(10, 11); Assert.IsTrue(a.GetHashCode() == b.GetHashCode()); } { Vector3 a = new Vector3(10, 11, 12); Vector3 b = new Vector3(10, 11, 12); Assert.IsTrue(a.GetHashCode() == b.GetHashCode()); } { Vector4 a = new Vector4(10, 11, 12, 13); Vector4 b = new Vector4(10, 11, 12, 13); Assert.IsTrue(a.GetHashCode() == b.GetHashCode()); } { Quaternion a = new Quaternion(10, 11, 12, 13); Quaternion b = new Quaternion(10, 11, 12, 13); Assert.IsTrue(a.GetHashCode() == b.GetHashCode()); } { Matrix4X4 a = Matrix4X4.CreateRotationX(3); Matrix4X4 b = Matrix4X4.CreateRotationX(3); Assert.IsTrue(a.GetHashCode() == b.GetHashCode()); } }
public void Test_Equals() { var a = new Vector2 (1, 2.00001f); var b = new Vector2 (1, 2.00002f); Assert.IsTrue (a.Equals (b)); // 誤差を許容する比較 Assert.IsFalse (a == b); // 厳密な比較 Assert.AreNotEqual (a.GetHashCode (), b.GetHashCode ()); // ハッシュは厳密な比較を基準 }
private static KeyValuePair<Vector2, Vector2> OrderByHash(Vector2 a, Vector2 b) { var ah = a.GetHashCode(); var bh = b.GetHashCode(); //Check order if (ah < bh) return new KeyValuePair<Vector2, Vector2>(a, b); else return new KeyValuePair<Vector2, Vector2>(b, a); }
public void Vector2GetHashCodeTest() { Vector2 target = new Vector2(1.0f, 2.0f); int expected = target.X.GetHashCode() + target.Y.GetHashCode(); int actual; actual = target.GetHashCode(); Assert.AreEqual(expected, actual, "Vector2.GetHashCode did not return the expected value."); }