public void GetKnowledgeBase_ReturnsCorrectLinguisticVariablesRelations()
        {
            // Arrange
            List <LinguisticVariableRelations> expectedRelations = new List <LinguisticVariableRelations>
            {
                new LinguisticVariableRelations(1, new List <string> {
                    "Temperature = HOT"
                }),
                new LinguisticVariableRelations(2, new List <string> {
                    "Pressure = HIGH"
                }),
                new LinguisticVariableRelations(3, new List <string> {
                    "Volume = BIG"
                }),
                new LinguisticVariableRelations(4, new List <string> {
                    "Color = RED"
                }),
                new LinguisticVariableRelations(5, new List <string> {
                    "Danger = HIGH"
                }),
                new LinguisticVariableRelations(6, new List <string> {
                    "Evacuate = TRUE"
                })
            };

            // Act
            List <LinguisticVariableRelations> actualRelations = _knowledgeBaseManager.GetKnowledgeBase(_profileName).Value.LinguisticVariablesRelations;

            // Assert
            Assert.AreEqual(expectedRelations.Count, actualRelations.Count);
            for (var i = 0; i < expectedRelations.Count; i++)
            {
                Assert.IsTrue(ObjectComparer.LinguisticVariableRelationsAreEqual(expectedRelations[i], actualRelations[i]));
            }
        }
        public void FormRelations_ReturnsCorrectRelations()
        {
            // Arrange
            Dictionary <int, ImplicationRule>    implicationRules    = PrepareImplicationRules();
            Dictionary <int, LinguisticVariable> linguisticVariables = PrepateLinguisticVariables();

            List <LinguisticVariableRelations> expectedRelations = new List <LinguisticVariableRelations>
            {
                new LinguisticVariableRelations(1, new List <string> {
                    "Temperature > HOT"
                }),
                new LinguisticVariableRelations(2, new List <string> {
                    "Pressure = HIGH"
                }),
                new LinguisticVariableRelations(3, new List <string> {
                    "Volume >= BIG"
                }),
                new LinguisticVariableRelations(4, new List <string> {
                    "Color = RED"
                }),
                new LinguisticVariableRelations(5, new List <string> {
                    "Danger = HIGH"
                }),
                new LinguisticVariableRelations(6, new List <string> {
                    "Evacuate = TRUE"
                })
            };

            // Act
            List <LinguisticVariableRelations> actualRelations = _relationsInitializer.FormRelations(implicationRules, linguisticVariables);

            // Assert
            Assert.AreEqual(expectedRelations.Count, actualRelations.Count);
            for (var i = 0; i < actualRelations.Count; i++)
            {
                Assert.IsTrue(ObjectComparer.LinguisticVariableRelationsAreEqual(expectedRelations[i], actualRelations[i]));
            }
        }