public void BinarySearch_find_number()
 {
     var numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
     int result = 0;
     Assert.DoesNotThrow(() => result = numbers.BinarySearch(x => x, 3));
     Assert.That(result, Is.EqualTo(3));
 }
 public void BinarySearch_find_string()
 {
     var strings = new[]
     {
         "Alice",
         "Ben",
         "Bob",
         "Carl",
         "Casper",
         "George",
         "Luke",
         "Ned"
     };
     string result = null;
     Assert.DoesNotThrow(() =>
         result = strings.BinarySearch(x => x, "Ben"));
     Assert.That(result, Is.EqualTo("Ben"));
 }
 public void BinarySubsetSearch_ForItemInMiddle()
 {
     var haystack = new[] { -3, -4, 1, 5, 8, 9, 10, 11, 14 }.OrderBy(i => i).ToList();
     var result = haystack.BinarySearch(i => i.CompareTo(8), 2, -3);
     result.Should().Be(2 + 2);
 }
 public void BinarySubsetSearch_ForNonExistentItem()
 {
     var haystack = new[] { -3, -4, 1, 5, 8, 9, 10, 11, 14 }.OrderBy(i => i).ToList();
     var result = haystack.BinarySearch(i => i.CompareTo(7), 2, -3);
     result.Should().Be(-1);
 }
 public void BinarySubsetSearch_ReversedMinMax()
 {
     var haystack = new[] { 1, 5, 8, 9, 10 }.OrderBy(i => i).ToList();
     var result = haystack.BinarySearch(i => i.CompareTo(1), -1, 0);
     result.Should().Be(0);
 }
 public void BinarySearch_ForItemInMiddle()
 {
     var haystack = new[] { 1, 5, 8, 9, 10 }.OrderBy(i => i).ToList();
     var result = haystack.BinarySearch(i => i.CompareTo(8));
     result.Should().Be(2);
 }
 public void BinarySearch_ForFirstItem()
 {
     var haystack = new[] { 1, 5, 8, 9, 10 }.OrderBy(i => i).ToList();
     var result = haystack.BinarySearch(i => i.CompareTo(1));
     result.Should().Be(0);
 }
 public void BinarySearch_throw_ValueNotFoundException()
 {
     var numbers = new [] { 1, 2, 4, 5, 6, 7, 8, 9, 10 };
     Assert.Throws<ValueNotFoundException>(() =>
         numbers.BinarySearch(x => x, 3));
 }