Example #1
0
        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));
            }
        }