public void WhereRef_Predicate_With_ValidData_Must_Succeed(int[] source, Func <int, bool> predicate)
        {
            // Arrange
            var function = Wrap.AsFunctionIn(predicate);
            var expected = Enumerable
                           .Where(source, predicate);

            // Act
            var result = ArrayExtensions
                         .Where(source.AsSpan(), function);

            // Assert
            _ = result.SequenceEqual(expected).Must().BeTrue();
        }
Пример #2
0
        public void WhereRef_Predicate_With_ValidData_Must_Succeed(int[] source, Func <int, bool> predicate)
        {
            // Arrange
            var function = Wrap.AsFunctionIn(predicate);
            var expected = Enumerable
                           .Where(source, predicate);

            // Act
            var result = source.AsMemory().AsValueEnumerableRef()
                         .Where(function);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected, testRefStructs: false, testRefReturns: false);
            _ = result.SequenceEqual(expected).Must().BeTrue();
        }
        public void WhereAtRef_With_NullArray_Must_Succeed()
        {
            // Arrange
            var source   = default(ArraySegment <int>);
            var function = Wrap.AsFunctionIn <int, int, bool>((_, __) => true);
            var expected = Enumerable.Empty <int>();

            // Act
            var result = ArrayExtensions
                         .Where(source, function);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected, testRefStructs: false, testRefReturns: false);
            _ = result.SequenceEqual(expected).Must().BeTrue();
        }
        public void WhereAtRef_With_ValidData_Must_Succeed(int[] source, int skip, int take, Func <int, int, bool> predicate)
        {
            // Arrange
            var(offset, count) = Utils.SkipTake(source.Length, skip, take);
            var wrapped  = new ArraySegment <int>(source, offset, count);
            var function = Wrap.AsFunctionIn(predicate);
            var expected = Enumerable
                           .Where(wrapped, predicate);

            // Act
            var result = ArrayExtensions
                         .Where(wrapped, function);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected, testRefStructs: false, testRefReturns: false);
            _ = result.SequenceEqual(expected).Must().BeTrue();
        }
Пример #5
0
        public void WhereAtRef_PredicateAt_With_ValidData_Must_Succeed(int[] source, Func <int, int, bool> predicate)
        {
            // Arrange
            var list     = source.ToList();
            var function = Wrap.AsFunctionIn(predicate);
            var expected = Enumerable
                           .Where(source, predicate);

            // Act
            var result = list.AsValueEnumerableRef()
                         .Where(function);

            // Assert
#if NETCOREAPP3_1 || NET5_0
            //_ = result.Must()
            //    .BeEnumerableOf<int>()
            //    .BeEqualTo(expected, testRefStructs: false);
#else
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected, testRefStructs: false, testRefReturns: false);
#endif
            _ = result.SequenceEqual(expected).Must().BeTrue();
        }