public void Theta1DoubleTest() { var data = new[] { .12478414350, .82872474670, .0000590523, -.32903686210, .95465479750, .0000000045, -.32701981860, .41588039490, -0.2933109256, .08385962364, .79913716820, 0.000176717, 1.4888543850, .22263345920, 1.4354035775, }; for (int i = 0; i < data.Length; i += 3) { var t = Theta.θ1(data[i], data[i + 1]); var e = data[i + 2]; Assert.IsTrue(Math.Abs(t - e) < 1e-10); var dfn = Theta.θ1DoubleForNome(data[i + 1]); t = dfn(data[i]); Assert.IsTrue(Math.Abs(t - e) < 1e-10); } }
public void ThetasAtZeroTest() { Complex th; double ex = 0.0; th = Theta.θ1(Complex.Zero, (Complex)(.5)); Assert.AreEqual(0, th.Imaginary); Assert.AreEqual(ex, th.Real); th = Theta.θ1(Complex.Zero, .5); Assert.AreEqual(0, th.Imaginary); Assert.AreEqual(ex, th.Real); th = Theta.θ1(0, .5); Assert.AreEqual(0, th.Imaginary); Assert.AreEqual(ex, th.Real); th = Theta.θ1ComplexForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.AreEqual(ex, th.Real); th = Theta.θ1DoubleForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.AreEqual(ex, th.Real); ex = 2.12893125051303; th = Theta.θ2(Complex.Zero, (Complex)(.5)); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ2(Complex.Zero, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ2(0, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ2ComplexForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ2DoubleForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); ex = 2.12893682721188; th = Theta.θ3(Complex.Zero, (Complex)(.5)); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ3(Complex.Zero, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ3(0, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ3ComplexForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ3DoubleForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); ex = 0.121124208002581; th = Theta.θ4(Complex.Zero, (Complex)(.5)); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ4(Complex.Zero, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ4(0, .5); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ4ComplexForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); th = Theta.θ4DoubleForNome(.5)(0); Assert.AreEqual(0, th.Imaginary); Assert.IsTrue(Math.Abs(ex - th.Real) < 1e-14); }