Ejemplo n.º 1
0
        public bool IsInvertAdverb(IWordItem word)
        {
            if (negating.ContainsKey(word.Text))
            {
                if (negatingRule.TryGetValue(WordItemType.Invertor, out WordRepairRule rule))
                {
                    var value = new WordRepairRuleEngine(word, rule).Evaluate();
                    if (value.HasValue)
                    {
                        return(value.Value);
                    }
                }

                return(true);
            }

            var evaluationValue = new WordRepairRuleEngine(word, FindRepairRule(word)).Evaluate();

            if (evaluationValue.HasValue)
            {
                return(evaluationValue.Value);
            }

            return(false);
        }
        public void TestIsInvertorFail()
        {
            var engine     = new WordRepairRuleEngine(wordItem, repairRule);
            var isInvertor = engine.Evaluate();

            Assert.IsFalse(isInvertor.Value);
        }
        public void TestIsInvertorByPosFail()
        {
            var engine = new WordRepairRuleEngine(wordItem, repairRule);
            var rule   = new Rule();

            repairRule.Set          = new[] { new RuleSet() };
            repairRule.Set[0].Rules = new[] { rule };
            rule.Index       = 1;
            rule.NextWordPOS = WordType.Noun;
            var isInvertor = engine.Evaluate();

            Assert.IsFalse(isInvertor.Value);
        }
        public void TestIsInvertorByPosAndEnding()
        {
            var engine = new WordRepairRuleEngine(wordItem, repairRule);
            var rule   = new Rule();

            repairRule.Set          = new[] { new RuleSet() };
            repairRule.Set[0].Rules = new[] { rule };
            rule.Index       = 1;
            rule.NextWordPOS = WordType.Verb;
            rule.Ending      = "ing";
            var isInvertor = engine.Evaluate();

            Assert.IsTrue(isInvertor.Value);
        }
        public void TestIsInvertorMultipleRules()
        {
            var engine = new WordRepairRuleEngine(wordItem, repairRule);
            var rule1  = new Rule();
            var rule2  = new Rule();

            repairRule.Set          = new[] { new RuleSet() };
            repairRule.Set[0].Rules = new[] { rule1, rule2 };
            rule1.Index             = 1;
            rule1.NextWordPOS       = WordType.Verb;
            rule2.Index             = 1;
            rule2.Word = "working";
            var isInvertor = engine.Evaluate();

            Assert.IsTrue(isInvertor.Value);
        }