public void TestAlmostEquals_ComplexMatrix() { ComplexMatrix a1 = ComplexMatrix.Random(3, 2, new ContinuousUniformDistribution()); ComplexMatrix a2 = a1.Clone(); ComplexMatrix b = -a1; ComplexMatrix c = a1 * (1.0 + (1e+10 * Number.PositiveEpsilonOf(1.0))); ComplexMatrix d = a1 * (1.0 + (2 * Number.PositiveEpsilonOf(1.0))); Helper_TestAlmostEqualityForGenericType(a1, a2, b, c, d); // Wrapper Assert.That(ComplexMatrix.AlmostEqual(a1, c), Is.False); Assert.That(ComplexMatrix.AlmostEqual(a1, c, 1e-10), Is.False); Assert.That(ComplexMatrix.AlmostEqual(a1, c, 1e-2), Is.True); // reference type -> no boxing Assert.That(a1, Is.SameAs(a1)); // transpose Assert.That(a1.Transpose(), Is.Not.EqualTo(a1)); Assert.That(Number.AlmostEqual(a1, a1.Transpose()), Is.False); Assert.That(Number.AlmostEqual(a1, a1.Transpose(), 1e-10), Is.False); // hermitian transpose Assert.That(a1.HermitianTranspose(), Is.Not.EqualTo(a1)); Assert.That(Number.AlmostEqual(a1, a1.HermitianTranspose()), Is.False); Assert.That(Number.AlmostEqual(a1, a1.HermitianTranspose(), 1e-10), Is.False); }