internal void Add_AddsRuleToRulebase()
        {
            // Arrange
            var rulebase = new Rulebase();
            var rule     = StubFuzzyRuleFactory.Create("Rule1");

            // Act
            rulebase.AddRule(rule);

            // Assert
            Assert.Equal(1, rulebase.Count);
        }
        internal void GetRule_WhenRuleInRulebase_ReturnsExpectedCountOfRules()
        {
            // Arrange
            var rulebase = new Rulebase();
            var rule     = StubFuzzyRuleFactory.Create("Rule1");

            rulebase.AddRule(rule);

            // Act
            var result = rulebase.GetRule(Label.Create("Rule1"));

            // Assert
            Assert.Equal(rule, result);
        }
        internal void GetRules_RulesInRulebase_ReturnsDictionaryWithCountZero()
        {
            // Arrange
            var rulebase = new Rulebase();
            var rule1    = StubFuzzyRuleFactory.Create("Rule1");
            var rule2    = StubFuzzyRuleFactory.Create("Rule2");

            rulebase.AddRule(rule1);
            rulebase.AddRule(rule2);

            // Act
            var result = rulebase.GetAllRules();

            // Assert
            Assert.Equal(2, result.Count);
        }
        internal void DeleteRule_WhenRuleInRulebase_ReturnsExpectedCountOfRules()
        {
            // Arrange
            var rulebase = new Rulebase();
            var rule     = StubFuzzyRuleFactory.Create("Rule1");

            rulebase.AddRule(rule);
            var countAfterAddingRule = rulebase.Count;

            // Act
            rulebase.DeleteAllRules();

            // Assert
            Assert.Equal(1, countAfterAddingRule);
            Assert.Equal(0, rulebase.Count);
        }