public void CanComputeSquareRoot() { var complex = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f); AssertHelpers.AlmostEqual( new Complex32(0.00037933934912842666f, 0.00015712750315077684f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, 1.19209289550780998537e-7f); AssertHelpers.AlmostEqual( new Complex32(0.00024414062499999973f, 0.00024414062499999976f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, -1.19209289550780998537e-7f); AssertHelpers.AlmostEqual( new Complex32(0.00024414062499999973f, -0.00024414062499999976f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, 0.5f); AssertHelpers.AlmostEqual(new Complex32(0.5f, 0.5f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, -0.5f); AssertHelpers.AlmostEqual(new Complex32(0.5f, -0.5f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, -8.388608e6f); AssertHelpers.AlmostEqual(new Complex32(2048.0f, -2048.0f), complex.SquareRoot(), 7); complex = new Complex32(8.388608e6f, 1.19209289550780998537e-7f); AssertHelpers.AlmostEqual(new Complex32(2896.3093757400989f, 2.0579515874459933e-11f), complex.SquareRoot(), 7); complex = new Complex32(0.0f, 0.0f); AssertHelpers.AlmostEqual(Complex32.Zero, complex.SquareRoot(), 7); }