public void Test_Map() { List <char> letters = new List <char>(); Dictionary <char, int> index = new Dictionary <char, int>(); SimilarLookingProcessor.Map(letters, index, 'x', 'x'); SimilarLookingProcessor.Map(letters, index, 'x', 'y'); SimilarLookingProcessor.Map(letters, index, 'x', 'y'); SimilarLookingProcessor.Map(letters, index, 'x', 'z'); SimilarLookingProcessor.Map(letters, index, 'q', 'x'); Assert.AreEqual(1, letters.Count); Assert.IsTrue(letters.Contains('x')); Assert.AreEqual(4, index.Count); Assert.IsTrue(index.ContainsKey('x')); Assert.IsTrue(index.ContainsKey('y')); Assert.IsTrue(index.ContainsKey('z')); Assert.IsTrue(index.ContainsKey('q')); Assert.AreEqual('x', letters[index['x']]); Assert.AreEqual('x', letters[index['y']]); Assert.AreEqual('x', letters[index['z']]); Assert.AreEqual('x', letters[index['q']]); SimilarLookingProcessor.Map(letters, index, 'a', 'b'); SimilarLookingProcessor.Map(letters, index, 'b', 'c'); Assert.AreEqual(2, letters.Count); Assert.IsTrue(letters.Contains('x')); Assert.IsTrue(letters.Contains('a')); }
public void Test_BuildIndex_One_Letter() { List <char> letters = new List <char>(); Dictionary <char, int> index = new Dictionary <char, int>(); SimilarLookingProcessor.BuildIndex(letters, index, ToStringBuilder(new[] { "A", "B", "C" })); Assert.AreEqual(0, letters.Count); Assert.AreEqual(0, index.Count); }
public void Test_Merge() { AreEqual("abcdef", SimilarLookingProcessor.Merge(new StringBuilder(), "abcdef")); AreEqual("abcdef", SimilarLookingProcessor.Merge(new StringBuilder("abcdef"), "")); AreEqual("abcdef", SimilarLookingProcessor.Merge(new StringBuilder("abc"), "def")); AreEqual("abcdef", SimilarLookingProcessor.Merge(new StringBuilder("abcdef"), "def")); AreEqual("abcd", SimilarLookingProcessor.Merge(new StringBuilder("abc"), "ddd")); AreEqual("abcde", SimilarLookingProcessor.Merge(new StringBuilder("abcd"), "eddede")); }
public void Test_Find_And_Merge() { const string test = "xyzd"; IEnumerable <StringBuilder> set = ToStringBuilder(new[] { "abc", "def", "ghi" }); StringBuilder sb = SimilarLookingProcessor.FindFirstShared(set, test); Assert.IsNotNull(sb); AreEqual("def", sb); AreEqual("defxyz", SimilarLookingProcessor.Merge(sb, test)); }
public void Test_Small_Process() { SimilarLookingProcessor proc = new SimilarLookingProcessor(new[] { "B83", "OD0" }); Assert.AreEqual("BIBBLE", proc.Process("BI83LE")); Assert.AreEqual("BIBBLE", proc.Process("BIBBLE")); Assert.AreEqual("GOOO", proc.Process("G0OD")); Assert.AreEqual("GOOO", proc.Process("GOOD")); Assert.AreEqual("GOOO", proc.Process("G0DO")); Assert.AreEqual("Chicken", proc.Process("Chicken")); Assert.AreEqual("nothing", proc.Process("nothing")); }
public void Test_BuildIndex_Small() { List <char> letters = new List <char>(); Dictionary <char, int> index = new Dictionary <char, int>(); SimilarLookingProcessor.BuildIndex(letters, index, ToStringBuilder(new[] { "B8", "EB" })); Assert.AreEqual(1, letters.Count); Assert.AreEqual(3, index.Count); Assert.AreEqual('B', letters[index['B']]); Assert.AreEqual('B', letters[index['8']]); Assert.AreEqual('B', letters[index['E']]); }
public void Test_FindFirstShared() { List <StringBuilder> set = ToStringBuilder(new[] { "abc", "def", "ghi" }); string[] test = { "a", "b", "c", "ab", "adef" }; foreach (StringBuilder sb in test.Select(pT => SimilarLookingProcessor.FindFirstShared(set, pT))) { AreEqual("abc", sb); } Assert.IsNull(SimilarLookingProcessor.FindFirstShared(set, "z")); AreEqual("def", SimilarLookingProcessor.FindFirstShared(set, "zxydwtq")); }
public void Test_BuildIndex() { List <char> letters = new List <char>(); Dictionary <char, int> index = new Dictionary <char, int>(); SimilarLookingProcessor.BuildIndex(letters, index, ToStringBuilder(new[] { "B83", "CO", "DO", "EB", "GbO", "LlI1t" })); Assert.AreEqual('B', letters[index['B']]); Assert.AreEqual('B', letters[index['8']]); Assert.AreEqual('B', letters[index['3']]); Assert.AreEqual('B', letters[index['E']]); Assert.AreEqual('C', letters[index['O']]); Assert.AreEqual('C', letters[index['D']]); }
public void Test_Map_B_E() { List <char> letters = new List <char>(); Dictionary <char, int> index = new Dictionary <char, int>(); SimilarLookingProcessor.Map(letters, index, 'B', '8'); SimilarLookingProcessor.Map(letters, index, 'E', 'B'); Assert.AreEqual(1, letters.Count); Assert.IsTrue(letters.Contains('B')); Assert.AreEqual(3, index.Count); Assert.IsTrue(index.ContainsKey('B')); Assert.IsTrue(index.ContainsKey('8')); Assert.IsTrue(index.ContainsKey('E')); Assert.AreEqual('B', letters[index['B']]); Assert.AreEqual('B', letters[index['8']]); Assert.AreEqual('B', letters[index['E']]); }
public void Test_Compact() { List <StringBuilder> result = new List <StringBuilder>(SimilarLookingProcessor.CompactSet(new[] { "abc", "xyz" })); Assert.AreEqual(2, result.Count); AreEqual("abc", result[0]); AreEqual("xyz", result[1]); result = new List <StringBuilder>(SimilarLookingProcessor.CompactSet(new[] { "abc", "xa" })); Assert.AreEqual(1, result.Count); AreEqual("abcx", result[0]); result = new List <StringBuilder>( SimilarLookingProcessor.CompactSet(new[] { "B83", "CO", "DO", "EB", "GbO", "LlI1t" })); Assert.AreEqual(3, result.Count); AreEqual("B83E", result[0]); AreEqual("CODGb", result[1]); AreEqual("LlI1t", result[2]); }
public void Test_Default_Process() { SimilarLookingProcessor proc = new SimilarLookingProcessor(); Assert.AreEqual("BIBBIB", proc.Process("Bl83LE")); }