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