Skip to content

Commit

Permalink
Implement ArraySegment<> operators based on Memory implementations
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmada committed Jul 16, 2020
1 parent 865e99b commit 6dd0e5a
Show file tree
Hide file tree
Showing 60 changed files with 421 additions and 4,505 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,5 @@ public void Count_With_ValidData_Must_Succeed(int[] source)
_ = result.Must()
.BeEqualTo(expected);
}

[Theory]
[MemberData(nameof(TestData.PredicateEmpty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.PredicateSingle), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.PredicateMultiple), MemberType = typeof(TestData))]
public void Count_Predicate_With_ValidData_Must_Succeed(int[] source, Predicate<int> predicate)
{
// Arrange
var expected = Enumerable
.Count(source, predicate.AsFunc());

// Act
var result = ArrayExtensions
.Count(source, predicate);

// Assert
_ = result.Must()
.BeEqualTo(expected);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,70 +8,20 @@ namespace NetFabric.Hyperlinq.UnitTests.Aggregation.Count
public class ArraySegmentTests
{
[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void Count_With_ValidData_Must_Succeed(int[] source)
[MemberData(nameof(TestData.SkipTakeEmpty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakeSingle), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakeMultiple), MemberType = typeof(TestData))]
public void Count_With_ValidData_Must_Succeed(int[] source, int skipCount, int takeCount)
{
// Arrange
var wrapped = new ArraySegment<int>(source);
var (skip, take) = Utils.SkipTake(source.Length, skipCount, takeCount);
var wrapped = new ArraySegment<int>(source, skip, take);
var expected = Enumerable
.Count(source);

// Act
var result = ArrayExtensions
.Count(wrapped);

// Assert
_ = result.Must()
.BeEqualTo(expected);
}

[Theory]
[MemberData(nameof(TestData.SkipTakePredicateEmpty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakePredicateSingle), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakePredicateMultiple), MemberType = typeof(TestData))]
public void Count_Predicate_With_ValidData_Must_Succeed(int[] source, int skipCount, int takeCount, Predicate<int> predicate)
{
// Arrange
var wrapped = new ArraySegment<int>(source);
var expected = Enumerable
.Skip(source, skipCount)
.Take(takeCount)
.Count(predicate.AsFunc());

// Act
var result = ArrayExtensions
.Skip(wrapped, skipCount)
.Take(takeCount)
.Where(predicate)
.Count();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}

[Theory]
[MemberData(nameof(TestData.SkipTakePredicateAtEmpty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakePredicateAtSingle), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.SkipTakePredicateAtMultiple), MemberType = typeof(TestData))]
public void Count_PredicateAt_With_ValidData_Must_Succeed(int[] source, int skipCount, int takeCount, PredicateAt<int> predicate)
{
// Arrange
var wrapped = new ArraySegment<int>(source);
var expected = Enumerable
.Skip(source, skipCount)
.Take(takeCount)
.Where(predicate.AsFunc())
.Count();

// Act
var result = ArrayExtensions
.Skip(wrapped, skipCount)
.Take(takeCount)
.Where(predicate)
.Count();
.Count(wrapped);

// Assert
_ = result.Must()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ public void Count_Predicate_With_ValidData_Must_Succeed(int[] source, Predicate<
{
// Arrange
var expected = Enumerable
.Count(source, predicate.AsFunc());
.Where(source, predicate.AsFunc())
.Count();

// Act
var result = ArrayExtensions
Expand Down
Loading

0 comments on commit 6dd0e5a

Please sign in to comment.