public void Builder_should_create_a_default_InferenceEngine_instance() { // act var engine = new InferenceEngine.Builder().Build(); // assert Assert.IsType <InferenceEngine>(engine); }
public void Builder_WithRuleBase_method_should_set_the_rulebase_property() { // arrange var ruleBase = new RuleBase.Builder().Build(); // act var engine = new InferenceEngine.Builder() .WithRuleBase(ruleBase) .Build(); // assert Assert.Equal(ruleBase, engine.GetRuleBase()); }
public void Builder_WithWorkingMemory_method_should_set_the_workingmemory_property() { // arrange var workingMemory = new WorkingMemory.Builder().Build(); // act var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .Build(); // assert Assert.Equal(workingMemory, engine.GetWorkingMemory()); }
public void Match_method_should_return_an_empty_list_if_no_rules_match() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(false); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); // act var rules = engine.Match(); // assert Assert.Equal(0, rules.Count); }
public void Match_method_should_return_a_list_of_matching_rules() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); // act var rules = engine.Match(); // assert Assert.Contains(ruleBase.Rules[0], rules); }
public void Resolve_method_should_return_a_list_of_all_passed_rule() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); var rules = engine.Match(); var matchCount = rules.Count; // act var resolvedRules = engine.Resolve(rules); var resolvedCount = resolvedRules.Count; // assert Assert.Equal(matchCount, resolvedCount); }
public void Execute_method_should_trigger_rule_actions_against_the_working_memory() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); var rules = engine.Match(); var resolvedRules = engine.Resolve(rules); // act engine.Execute(resolvedRules); var newFacts = workingMemory.Facts; var potentialCSharp = newFacts.FirstOrDefault(x => x.Assertion == "Potential C# experience"); var potentialAngular = newFacts.FirstOrDefault(x => x.Assertion == "Potential Angular experience"); // assert Assert.IsType <Fact>(potentialCSharp); Assert.IsType <Fact>(potentialAngular); }