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(); }
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(); }
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(); }