public void TestEquals() { ECPoint point = ECCurve.Secp256k1.G; point.Equals(point).Should().BeTrue(); point.Equals(null).Should().BeFalse(); point = new ECPoint(null, null, ECCurve.Secp256k1); point.Equals(new ECPoint(null, null, ECCurve.Secp256r1)).Should().BeTrue(); point.Equals(ECCurve.Secp256r1.G).Should().BeFalse(); ECCurve.Secp256r1.G.Equals(point).Should().BeFalse(); ECFieldElement X1 = new ECFieldElement(new BigInteger(100), ECCurve.Secp256k1); ECFieldElement Y1 = new ECFieldElement(new BigInteger(200), ECCurve.Secp256k1); ECFieldElement X2 = new ECFieldElement(new BigInteger(300), ECCurve.Secp256k1); ECFieldElement Y2 = new ECFieldElement(new BigInteger(400), ECCurve.Secp256k1); ECPoint point1 = new ECPoint(X1, Y1, ECCurve.Secp256k1); ECPoint point2 = new ECPoint(X2, Y1, ECCurve.Secp256k1); ECPoint point3 = new ECPoint(X1, Y2, ECCurve.Secp256k1); point1.Equals(point2).Should().BeFalse(); point1.Equals(point3).Should().BeFalse(); }