public void TestAlmostEquals()
        {
            Double x = 5;
            Assert.IsTrue(x.AlmostEquals(4, 1.5));
            Assert.IsTrue(x.AlmostEquals(6, 1.5));
            Assert.IsFalse(x.AlmostEquals(3, 1.5));
            Assert.IsFalse(x.AlmostEquals(7, 1.5));

            SpVector v = new SpVector(100, 200, 300);
            Assert.IsTrue(v.AlmostEquals(new SpVector(110, 220, 330), v * 0.1));
            Assert.IsTrue(v.AlmostEquals(new SpVector(90, 180, 270), v * 0.1));
            Assert.IsFalse(v.AlmostEquals(new SpVector(110, 220, 330), v * 0.05));
            Assert.IsFalse(v.AlmostEquals(new SpVector(90, 180, 270), v * 0.05));

            v = new SpVector(100, 0, 0);
            Assert.IsTrue(v.AlmostEquals(new SpVector(100, 10, 0), v * 0.1));
            Assert.IsTrue(v.AlmostEquals(new SpVector(105, 5, 0), v * 0.1));
            Assert.IsFalse(v.AlmostEquals(new SpVector(100, 10, 0), v * 0.05));
            Assert.IsFalse(v.AlmostEquals(new SpVector(105, 5, 0), v * 0.05));
        }