コード例 #1
0
        public void BinarySearch_NullList_ThrowsNullReferenceException()
        {
            // Arrange
            Comparer <int> comparer = Comparer <int> .Default;

            // Act & Assert
            Assert.Throws <NullReferenceException>(() => IReadOnlyListExtensions.BinarySearch(null, 1, comparer));
        }
コード例 #2
0
        public void IndexOf_ValueAppearsMultipleTimes_CorrectlyReturnsFirstInstance()
        {
            // Arrange
            IReadOnlyList <int> list = new[] { 2, 4, 6, 8, 4 };

            // Act
            int index = IReadOnlyListExtensions.IndexOf(list, 4);

            // Assert
            Assert.Equal(1, index);
        }
コード例 #3
0
        public void IndexOf_ValueNotInList_CorrectlyReturnsNegativeOne()
        {
            // Arrange
            IReadOnlyList <int> list = new[] { 2, 4, 6, 8 };

            // Act
            int index = IReadOnlyListExtensions.IndexOf(list, 1);

            // Assert
            Assert.Equal(-1, index);
        }
コード例 #4
0
        public void IndexOf_ValueInList_CorrectlyReturnsIndex()
        {
            // Arrange
            IReadOnlyList <int> list = new[] { 6, 4, 1, 8 };

            // Act
            int index = IReadOnlyListExtensions.IndexOf(list, 1);

            // Assert
            Assert.Equal(2, index);
        }
コード例 #5
0
        public void BinarySearch_OddNumberOfElements_CorrectlyMatchesListImplementation()
        {
            // Arrange
            // 6 elements total
            const int minFillIndexInclusive = 1;
            const int maxFillIndexInclusive = 5;

            Comparer <int> comparer = Comparer <int> .Default;
            List <int>     list     = new List <int>();

            for (int i = minFillIndexInclusive; i <= maxFillIndexInclusive; i++)
            {
                list.Add(2 * i);                 // multiplying each entry by 2 to make sure there are gaps
            }

            // Act & Assert
            for (int i = minFillIndexInclusive - 1; i <= maxFillIndexInclusive + 1; i++)
            {
                Assert.Equal(list.BinarySearch(i, comparer), IReadOnlyListExtensions.BinarySearch(list, i, comparer));
                Assert.Equal(list.BinarySearch(i + 1, comparer), IReadOnlyListExtensions.BinarySearch(list, i + 1, comparer));
            }
        }
コード例 #6
0
 public void IndexOf_NullList_ThrowsNullReferenceException()
 {
     // Arrange, Act, and Assert
     Assert.Throws <NullReferenceException>(() => IReadOnlyListExtensions.IndexOf(null, 1));
 }