Example #1
0
        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");
        }
Example #2
0
        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
        }
Example #3
0
        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");
        }