public void TypoTest()
{
var s1 = "abcd";
var s2 = "zdcd";
var ss = LongestCommonSubsequence.LeftAlignedLCS(s1, s2);
var typos = LongestCommonSubsequence.GetTypos(ss, s1, s2);
OptChar[] keys = { OptChar.None, new OptChar('a'), new OptChar('b'), new OptChar('c'), new OptChar('d') };
char[] values = { 'z', 'd', 'c', 'd' };
var key_hs = new System.Collections.Generic.HashSet<OptChar>(keys);
var value_hs = new System.Collections.Generic.HashSet<char>(values);
var keys_seen = new System.Collections.Generic.HashSet<OptChar>();
var values_seen = new System.Collections.Generic.HashSet<char>(); ;
foreach (var typo in typos)
{
var key = typo.Item1;
var str = typo.Item2;
keys_seen.Add(key);
foreach (char c in str)
{
values_seen.Add(c);
}
}
Assert.AreEqual(true, key_hs.SetEquals(keys_seen));
Assert.AreEqual(true, value_hs.SetEquals(values_seen));
}