CheckCellTests.LCSTests.TypoString C# (CSharp) Method

TypoString() private method

private TypoString ( ) : void
return void
        public void TypoString()
        {
            var original = "Testing";
            var entered = "Tesying";

            // get LCS
            var alignments = LongestCommonSubsequence.LeftAlignedLCS(original, entered);
            // find all character additions
            var additions = LongestCommonSubsequence.GetAddedCharIndices(entered, alignments);
            // find all character omissions
            var omissions = LongestCommonSubsequence.GetMissingCharIndices(original, alignments);
            // find all transpositions
            var outputs = LongestCommonSubsequence.FixTranspositions(alignments, additions, omissions, original, entered);
            // new string
            string entered2 = outputs.Item1;
            // new alignments
            var alignments2 = outputs.Item2;
            // new additions
            var additions2 = outputs.Item3;
            // new omissions
            var omissions2 = outputs.Item4;
            // deltas
            var deltas = outputs.Item5;
            // get typos
            var typos = LongestCommonSubsequence.GetTypos(alignments2, original, entered2);

            // there are two outcomes:
            // 1) 's' -> "sy" and 't' -> ""
            // 2) 's' -> "s" and 't' -> "y"
            Tuple<OptChar, string>[] t1 = { new Tuple<OptChar, string>(OptChar.None, ""), new Tuple<OptChar, string>(OptChar.Some('T'), "T"), new Tuple<OptChar, string>(OptChar.Some('e'), "e"), new Tuple<OptChar, string>(OptChar.Some('s'), "sy"), new Tuple<OptChar, string>(OptChar.Some('t'), ""), new Tuple<OptChar, string>(OptChar.Some('i'), "i"), new Tuple<OptChar, string>(OptChar.Some('n'), "n"), new Tuple<OptChar, string>(OptChar.Some('g'), "g") };
            Tuple<OptChar, string>[] t2 = { new Tuple<OptChar, string>(OptChar.None, ""), new Tuple<OptChar, string>(OptChar.Some('T'), "T"), new Tuple<OptChar, string>(OptChar.Some('e'), "e"), new Tuple<OptChar, string>(OptChar.Some('s'), "s"), new Tuple<OptChar, string>(OptChar.Some('t'), "y"), new Tuple<OptChar, string>(OptChar.Some('i'), "i"), new Tuple<OptChar, string>(OptChar.Some('n'), "n"), new Tuple<OptChar, string>(OptChar.Some('g'), "g") };
            Assert.AreEqual(true, typos.SequenceEqual(t1) || typos.SequenceEqual(t2));
        }