public void SplitByNumberOfGroups__NumberOfGroupsIsLessThenSourceCount_And_SourceCountIsNotMultipleOfNumberOfGroups__LastGroupHasSmallerSize() { var source = new[] { 1, 2, 3, 4, 5, 6, 7 }; var result = source.SplitByNumberOfGroups(3).ToList(); // {1,2,3} {4,5,6} {7} Assert.That(result.Count, Is.EqualTo(3)); CollectionAssert.AreEqual(result[0], source.Take(3)); CollectionAssert.AreEqual(result[1], source.Skip(3).Take(3)); CollectionAssert.AreEqual(result[2], source.Skip(6).Take(3)); Assert.That(result[0].Count(), Is.EqualTo(result[1].Count())); Assert.That(result[2].Count(), Is.LessThan(result[0].Count())); CollectionAssert.AreEqual(result.SelectMany(group => group.ToList()), source); }
public void SplitByNumberOfGroups_NumberOfGroupsIsSameAsSourceCount_ReturnsSingleElementGroups() { var source = new[] { 1, 2, 3 }; var result = source.SplitByNumberOfGroups(source.Length).ToList(); Assert.That(result.Count, Is.EqualTo(source.Length)); foreach (var group in result) Assert.That(group.Count(), Is.EqualTo(1)); CollectionAssert.AreEqual(result.SelectMany(group => group.ToList()), source); }
public void SplitByNumberOfGroups__NumberOfGroupsIsLessThenSourceCount_And_SourceCountIsMultipleOfNumberOfGroups__ReturnsGroupsOfSameSize() { var source = new[] { 1, 2, 3, 4, 5, 6 }; var result = source.SplitByNumberOfGroups(source.Length / 3).ToList(); // 6 / 3 = 2 groups Assert.That(result.Count, Is.EqualTo(2)); CollectionAssert.AreEqual(result[0], source.Take(3)); CollectionAssert.AreEqual(result[1], source.Skip(3).Take(3)); CollectionAssert.AreEqual(result.SelectMany(group => group.ToList()), source); }
public void SplitByNumberOfGroups_NumberOfGroupsIsOne_ReturnsSingleGroupSameAsSource() { var source = new[] { 1, 2, 3 }; var result = source.SplitByNumberOfGroups(1).ToList(); Assert.That(result.Count, Is.EqualTo(1)); CollectionAssert.AreEqual(result[0], source); }