CheckCellTests.LCSTests.EnumFixTranspositionTests C# (CSharp) Method

EnumFixTranspositionTests() private method

private EnumFixTranspositionTests ( ) : void
return void
        public void EnumFixTranspositionTests()
        {
            var orig1 = "acc";
            var ent1 = "cca";
            var al1 = LongestCommonSubsequence.LeftAlignedLCS(orig1, ent1);
            var ad1 = LongestCommonSubsequence.GetAddedCharIndices(ent1, al1);
            var om1 = LongestCommonSubsequence.GetMissingCharIndices(orig1, al1);
            var fix1 = LongestCommonSubsequence.FixTranspositions(al1, ad1, om1, orig1, ent1);
            Assert.AreEqual(orig1, fix1.Item1);
            Tuple<int, int>[] correct_alignments = { new Tuple<int, int>(0, 0), new Tuple<int, int>(1, 1), new Tuple<int, int>(2, 2) };
            Assert.AreEqual(true, correct_alignments.SequenceEqual<Tuple<int, int>>(fix1.Item2));
            int [] correct_additions = {};
            Assert.AreEqual(true, correct_additions.SequenceEqual<int>(fix1.Item3));
            int[] correct_omissions = { };
            Assert.AreEqual(true, correct_omissions.SequenceEqual<int>(fix1.Item4));
            Assert.AreEqual(2, fix1.Item5.Head);

            var orig2 = "acc";
            var ent2 = "cac";
            // this line is to avoid nondeterministic choice of alignments
            Tuple<int, int>[] al2_a = { new Tuple<int, int>(0, 1), new Tuple<int, int>(2, 2) };
            var al2 = LongestCommonSubsequence.ToFSList(al2_a);
            var ad2 = LongestCommonSubsequence.GetAddedCharIndices(ent2, al2);
            var om2 = LongestCommonSubsequence.GetMissingCharIndices(orig2, al2);
            var fix2 = LongestCommonSubsequence.FixTranspositions(al2, ad2, om2, orig2, ent2);
            Assert.AreEqual(orig2, fix2.Item1);
            Tuple<int, int>[] correct_alignments2 = { new Tuple<int, int>(0, 0), new Tuple<int, int>(1, 1), new Tuple<int, int>(2, 2) };
            Assert.AreEqual(true, correct_alignments2.SequenceEqual<Tuple<int, int>>(fix2.Item2));
            int[] correct_additions2 = { };
            Assert.AreEqual(true, correct_additions2.SequenceEqual<int>(fix2.Item3));
            int[] correct_omissions2 = { };
            Assert.AreEqual(true, correct_omissions2.SequenceEqual<int>(fix2.Item4));
            Assert.AreEqual(-1, fix2.Item5.Head);

            var orig3 = "cac";
            var ent3 = "acc";
            // this line is to avoid nondeterministic choice of alignments
            Tuple<int, int>[] al3_a = { new Tuple<int, int>(0, 1), new Tuple<int, int>(2, 2) };
            var al3 = LongestCommonSubsequence.ToFSList(al3_a);
            var ad3 = LongestCommonSubsequence.GetAddedCharIndices(ent3, al3);
            var om3 = LongestCommonSubsequence.GetMissingCharIndices(orig3, al3);
            var fix3 = LongestCommonSubsequence.FixTranspositions(al3, ad3, om3, orig3, ent3);
            Assert.AreEqual(orig3, fix3.Item1);
            Tuple<int, int>[] correct_alignments3 = { new Tuple<int, int>(0, 0), new Tuple<int, int>(1, 1), new Tuple<int, int>(2, 2) };
            Assert.AreEqual(true, correct_alignments3.SequenceEqual<Tuple<int, int>>(fix2.Item2));
            int[] correct_additions3 = { };
            Assert.AreEqual(true, correct_additions3.SequenceEqual<int>(fix2.Item3));
            int[] correct_omissions3 = { };
            Assert.AreEqual(true, correct_omissions3.SequenceEqual<int>(fix2.Item4));
            Assert.AreEqual(-1, fix3.Item5.Head);
        }