public void TestCylinderIntersects()
        {
            Scientrace.InfiniteCylinderBorder icb = new Scientrace.InfiniteCylinderBorder(null, null,
                                                                                          new Scientrace.Location(0, -14.5, 0),
                                                                                          new Scientrace.UnitVector(0, 0, 1),
                                                                                          0.2);
            Scientrace.Line         testLine = new Scientrace.Line(0, 0, 0, 0, -1, 0);
            Scientrace.Intersection Ints     = icb.intersects(new Scientrace.Trace(600, null, testLine, null, 1, 1));
            Assert.AreEqual(Ints.enter.loc.ToCompactString(), new Scientrace.Location(0, -14.3, 0).ToCompactString());
            Assert.AreEqual(Ints.exit.loc.ToCompactString(), new Scientrace.Location(0, -14.7, 0).ToCompactString());

            testLine = new Scientrace.Line(0, 0, 0.1, 0, -1, 0);
            Ints     = icb.intersects(new Scientrace.Trace(600, null, testLine, null, 1, 1));
            Assert.AreEqual(Ints.enter.loc.ToCompactString(), new Scientrace.Location(0, -14.3, 0.1).ToCompactString());
            Assert.AreEqual(Ints.exit.loc.ToCompactString(), new Scientrace.Location(0, -14.7, 0.1).ToCompactString());

            testLine = new Scientrace.Line(0.1, 0, 0, 0, -1, 0);
            Ints     = icb.intersects(new Scientrace.Trace(600, null, testLine, null, 1, 1));
            Assert.AreEqual(Ints.enter.loc.ToCompactString(), new Scientrace.Location(0.1, -14.5 + (Math.Sqrt(0.03)), 0).ToCompactString());
            Assert.AreEqual(Ints.exit.loc.ToCompactString(), new Scientrace.Location(0.1, -14.5 - (Math.Sqrt(0.03)), 0).ToCompactString());
        }