public virtual void TestMapMerge()
{
SlowSynonymMap map = new SlowSynonymMap();
bool orig = false;
bool merge = true;
map.Add(Strings("a"), Tokens("a5,5"), orig, merge);
map.Add(Strings("a"), Tokens("a3,3"), orig, merge);
AssertTokenizesTo(map, "a", new string[] { "a3", "a5" }, new int[] { 1, 2 });
map.Add(Strings("b"), Tokens("b3,3"), orig, merge);
map.Add(Strings("b"), Tokens("b5,5"), orig, merge);
AssertTokenizesTo(map, "b", new string[] { "b3", "b5" }, new int[] { 1, 2 });
map.Add(Strings("a"), Tokens("A3,3"), orig, merge);
map.Add(Strings("a"), Tokens("A5,5"), orig, merge);
AssertTokenizesTo(map, "a", new string[] { "a3", "A3", "a5", "A5" }, new int[] { 1, 0, 2, 0 });
map.Add(Strings("a"), Tokens("a1"), orig, merge);
AssertTokenizesTo(map, "a", new string[] { "a1", "a3", "A3", "a5", "A5" }, new int[] { 1, 2, 0, 2, 0 });
map.Add(Strings("a"), Tokens("a2,2"), orig, merge);
map.Add(Strings("a"), Tokens("a4,4 a6,2"), orig, merge);
AssertTokenizesTo(map, "a", new string[] { "a1", "a2", "a3", "A3", "a4", "a5", "A5", "a6" }, new int[] { 1, 1, 1, 0, 1, 1, 0, 1 });
}