コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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);
     }
 }