public void RandomTests()
        {
            var rand = new Random();

            for (var i = 0; i < 100; i++)
            {
                var len = rand.Next(2, 8);
                var x   = Enumerable.Range(0, len).Select(a => rand.Next(1, 10)).ToArray();

                var expected = x.Aggregate((a, b) => a * b);

                Assert.AreEqual(expected, ReduceButGrow.Grow(x), "It should work for random inputs too");
            }
        }
 public void BasicTests()
 {
     Assert.AreEqual(6, ReduceButGrow.Grow(new[] { 1, 2, 3 }));
     Assert.AreEqual(16, ReduceButGrow.Grow(new[] { 4, 1, 1, 1, 4 }));
     Assert.AreEqual(64, ReduceButGrow.Grow(new[] { 2, 2, 2, 2, 2, 2 }));
 }