private void AssignItemsToCurrentColumn(ColumnAssigner assigner)
 {
     while (assigner.IsNextIndexInCurrentColumn)
     {
         itemCount++;
         var index = assigner.NextIndex;
     }
 }
        private void ExpectColumns(params int[] columnItemCounts)
        {
            int columnCount = columnItemCounts.Length;
            int totalItemCount = columnItemCounts.ToList().Sum();

            var assigner = new ColumnAssigner(totalItemCount, columnCount);

            itemCount = 0;

            for (int i = 0; i < columnCount; i++)
            {
                AssignItemsToCurrentColumn(assigner);

                var expectedItemsSoFar = columnItemCounts.ToList().Take(i + 1).Sum();
                Assert.AreEqual(expectedItemsSoFar, itemCount);

                assigner.NewColumn();
            }

            Assert.AreEqual(totalItemCount, itemCount);
        }