public void TestCollectionUtilsConcatSplit() { for (int index = 0; index < 10; index++) { var input = RandomUtils.NextBytes(0, 10); var size1 = RandomUtils.NextInt32(0, input.Length); var size2 = RandomUtils.NextInt32(size1, input.Length) - size1; input.ArraySplit(size1, out var output1, out var outputTemp); outputTemp.ArraySplit(size2, out var output2, out var output3); Assert.AreEqual(size1, output1.Length); Assert.AreEqual(size2, output2.Length); Assert.AreEqual(input.Length - size1 - size2, output3.Length); var output = output1.Concat(output2).Concat(output3).ToArray(); Assert.AreEqual(input.Length, output.Length); Assert.IsTrue(Enumerable.SequenceEqual(input, output)); var concat1 = CollectionUtils.ArrayConcat(output1); Assert.AreEqual(output1.Length, concat1.Length); Assert.IsTrue(Enumerable.SequenceEqual(output1, concat1)); var concatTemp = CollectionUtils.ArrayConcat(output2, output3); Assert.AreEqual(outputTemp.Length, concatTemp.Length); Assert.IsTrue(Enumerable.SequenceEqual(outputTemp, concatTemp)); var concat = CollectionUtils.ArrayConcat(output1, output2, output3); Assert.AreEqual(input.Length, concat.Length); Assert.IsTrue(Enumerable.SequenceEqual(input, concat)); } }