public void testRead1waySynonymRules() { SynonymMap synMap; // (a)->[a] // (b)->[a] List /*<String>*/ rules = new ArrayList/*<String>*/ (); rules.add("a,b"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); Assert.AreEqual(2, synMap.submap.size()); assertTokIncludes(synMap, "a", "a"); assertTokIncludes(synMap, "b", "a"); // (a)->[a] // (b)->[a] // (c)->[a] rules.clear(); rules.add("a,b,c"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); Assert.AreEqual(3, synMap.submap.size()); assertTokIncludes(synMap, "a", "a"); assertTokIncludes(synMap, "b", "a"); assertTokIncludes(synMap, "c", "a"); // (a)->[a] // (b1)->(b2)->[a] rules.clear(); rules.add("a,b1 b2"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); Assert.AreEqual(2, synMap.submap.size()); assertTokIncludes(synMap, "a", "a"); Assert.AreEqual(1, getSubSynonymMap(synMap, "b1").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "b1"), "b2", "a"); // (a1)->(a2)->[a1][a2] // (b)->[a1][a2] rules.clear(); rules.add("a1 a2,b"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); Assert.AreEqual(2, synMap.submap.size()); Assert.AreEqual(1, getSubSynonymMap(synMap, "a1").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a1"); assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a2"); assertTokIncludes(synMap, "b", "a1"); assertTokIncludes(synMap, "b", "a2"); }
public void testInvalidMappingRules() { SynonymMap synMap = new SynonymMap(true); List /*<String>*/ rules = new ArrayList/*<String>*/ (1); rules.add("a=>b=>c"); try{ SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.Fail("RuntimeException must be thrown."); } #pragma warning disable 168 catch (java.lang.RuntimeException expected) { } #pragma warning restore 168 }
public void testReadMappingRules() { SynonymMap synMap; // (a)->[b] List /*<String>*/ rules = new ArrayList/*<String>*/ (); rules.add("a=>b"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(1, synMap.submap.size()); assertTokIncludes(synMap, "a", "b"); // (a)->[c] // (b)->[c] rules.clear(); rules.add("a,b=>c"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(2, synMap.submap.size()); assertTokIncludes(synMap, "a", "c"); assertTokIncludes(synMap, "b", "c"); // (a)->[b][c] rules.clear(); rules.add("a=>b,c"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(1, synMap.submap.size()); assertTokIncludes(synMap, "a", "b"); assertTokIncludes(synMap, "a", "c"); // (a)->(b)->[a2] // [a1] rules.clear(); rules.add("a=>a1"); rules.add("a b=>a2"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(1, synMap.submap.size()); assertTokIncludes(synMap, "a", "a1"); Assert.AreEqual(1, getSubSynonymMap(synMap, "a").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); // (a)->(b)->[a2] // (c)->[a3] // [a1] rules.clear(); rules.add("a=>a1"); rules.add("a b=>a2"); rules.add("a c=>a3"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(1, synMap.submap.size()); assertTokIncludes(synMap, "a", "a1"); Assert.AreEqual(2, getSubSynonymMap(synMap, "a").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); assertTokIncludes(getSubSynonymMap(synMap, "a"), "c", "a3"); // (a)->(b)->[a2] // [a1] // (b)->(c)->[b2] // [b1] rules.clear(); rules.add("a=>a1"); rules.add("a b=>a2"); rules.add("b=>b1"); rules.add("b c=>b2"); synMap = new SynonymMap(true); SynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); Assert.AreEqual(2, synMap.submap.size()); assertTokIncludes(synMap, "a", "a1"); Assert.AreEqual(1, getSubSynonymMap(synMap, "a").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); assertTokIncludes(synMap, "b", "b1"); Assert.AreEqual(1, getSubSynonymMap(synMap, "b").submap.size()); assertTokIncludes(getSubSynonymMap(synMap, "b"), "c", "b2"); }