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)); }