public void TestTryFindPillarIndex()
        {
            var pillars      = new[] { 0.1, 0.5004, 0.75, 1.0, 9.99999 };
            var stepSearcher = new StepSearcher(pillars);

            foreach (var i in Enumerable.Range(0, pillars.Length))
            {
                int index;
                Assert.True(stepSearcher.TryFindPillarIndex(pillars[i], out index));
                Assert.AreEqual(index, i);

                Assert.True(stepSearcher.TryFindPillarIndex(1.000000000000000000001 * pillars[i], out index));
                Assert.False(stepSearcher.TryFindPillarIndex(0.999999999999 * pillars[i], out index));
            }

            int indexTest;

            Assert.False(stepSearcher.TryFindPillarIndex(double.NegativeInfinity, out indexTest));
            Assert.False(stepSearcher.TryFindPillarIndex(double.PositiveInfinity, out indexTest));
        }