public void TestThirdCase_2()
        {
            var nums1  = new int[] { 1, 2, 4, 5, 6, 0 };
            var nums2  = new int[] { 3 };
            var merge  = new MergeTwoSortedArrays(nums1, nums2, 5, 1);
            var result = merge.MergeTwoArraysWithAdditionalMemory();


            Assert.True(CheckArrayEquality(new int[] { 1, 2, 3, 4, 5, 6 }, result));
        }
        public void TestFourthCase_2()
        {
            var nums1  = new int[] { 0, 0, 3, 0, 0, 0, 0, 0, 0 };
            var nums2  = new int[] { -1, 1, 1, 1, 2, 3 };
            var merge  = new MergeTwoSortedArrays(nums1, nums2, 3, 6);
            var result = merge.MergeTwoArraysWithAdditionalMemory();


            Assert.True(CheckArrayEquality(new int[] { -1, 0, 0, 1, 1, 1, 2, 3, 3 }, result));
        }
        public void TestFirstCase()
        {
            var nums1  = new int[] { 1, 2, 3, 0, 0, 0 };
            var nums2  = new int[] { 2, 5, 6 };
            var merge  = new MergeTwoSortedArrays(nums1, nums2, 3, 3);
            var result = merge.MergeTwoArraysWithTwoPointers();


            Assert.True(CheckArrayEquality(new int[] { 1, 2, 2, 3, 5, 6 }, result));
        }