public void FindNextSmallerIndex_AllSmallerThanGiven_Last(int length) { var values = Enumerable.Range(1, length).ToArray(); var index = MinAbsSumOfTwo.FindNextSmallerIndex(values, values.Last() + 1, 0, length); index.Should().Be(length - 1); }
public void FindNextSmallerIndex_GivenIsTheSmallest_NotFound(int length) { var values = Enumerable.Range(1, length).ToArray(); var index = MinAbsSumOfTwo.FindNextSmallerIndex(values, 1, 0, length); index.Should().Be(-1); }
public void FindNextSmallerIndex_GivenIsTheLargest_LastButOne(int length) { var values = Enumerable.Range(1, length).ToArray(); var index = MinAbsSumOfTwo.FindNextSmallerIndex(values, values.Last(), 0, length); index.Should().Be(length - 2); }
public void FindNextSmallerIndex_GivenIsInTheMiddle_JustBeforeMiddle(int length) { var values = Enumerable.Range(1, length).ToArray(); var target = values[length / 2]; var index = MinAbsSumOfTwo.FindNextSmallerIndex(values, target, 0, length); index.Should().Be(length / 2 - 1); }
private int?DoFind(int[] values, int target) { try { return(MinAbsSumOfTwo.FindNextSmallerIndex(values, target, 0, values.Length)); } catch (Exception exc) { _outputHelper.WriteLine(exc.Message); return(null); } }