public void Batch_ReturnsGroupsOfN() { var numbers = Enumerable.Range(1, 100); var groups = IEnumerableExtensions.Batch(numbers, 10); Assert.IsTrue(groups.All(g => g.Count() == 10)); }
public void Batch_OnlyLastGroupHasLessItems() { var numbers = Enumerable.Range(1, 100); var groups = IEnumerableExtensions.Batch(numbers, 13); var lastGroup = groups.Last(); var restOfGroups = groups.Take(groups.Count() - 1); Assert.IsTrue(restOfGroups.All(g => g.Count() == 13)); Assert.IsTrue(lastGroup.Count() == 9); //13*7 + 9 = 100 }
public void BatchReturnsProperBatches() { var expected = new[] { new[] { 1, 2 }, new[] { 3, 4 }, new[] { 5 } }; var actual = IEnumerableExtensions.Batch(new[] { 1, 2, 3, 4, 5 }, 2); Assert.IsNotNull(actual); var actualArray = actual.Select(x => x.ToArray()).ToArray(); Assert.AreEqual(expected.Length, actualArray.Length); for (int itemIndex = 0; itemIndex < actualArray.Length; itemIndex++) { CollectionAssert.AreEqual(expected[itemIndex], actualArray[itemIndex]); } }