Exemple #1
0
 /// <summary>
 /// Assures facts base being initialized.
 /// </summary>
 private void AssureNN_facts()
 {
     // Check, if facts base is null
     if (_facts == null)
     {
         _facts = new FactsBase();
     }
 }
        public void ReadWrongKeyTest(string key)
        {
            // Align
            var facts = new FactsBase();
            // Act
            var actual = facts.Read(key);

            // Assert
            Assert.Null(actual);
        }
        public void AddWrongTest(string key, string value)
        {
            // Align
            var facts = new FactsBase();
            // Act
            var resultOfAdd = facts.Add(key, value);

            // Assert
            Assert.False(resultOfAdd);
        }
        public void AddConfirmationTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var resultOfAdd = facts.Add(today.DayOfYear.ToString(), today.ToString());

            // Assert
            Assert.True(resultOfAdd);
        }
        public void ExistsWrongTest(string key, string value)
        {
            // Align
            var facts = new FactsBase();
            // Act
            var resultOfAdd = facts.Add("test_key_1", "test_value_1");
            var actual      = facts.Exists(key, value);

            // Assert
            Assert.True(resultOfAdd);
            Assert.False(actual);
        }
        public void ReadValueTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var resultOfAdd = facts.Add(today.DayOfYear.ToString(), today.ToString());
            var actual      = facts.Read(today.DayOfYear.ToString());

            // Assert
            Assert.True(resultOfAdd);
            Assert.Equal(today.ToString(), actual);
        }
        public void AddCountTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var countBefore = facts.Count();
            var resultOfAdd = facts.Add(today.DayOfYear.ToString(), today.ToString());
            var countAfter  = facts.Count();

            // Assert
            Assert.True(countBefore < countAfter);
        }
        public void AddKeepsCasesTest()
        {
            // Align
            var          facts    = new FactsBase();
            var          today    = DateTime.Today;
            const string coolCaps = "SuperDuperYellowDuckyBot";
            // Act
            var resultOfAdd  = facts.Add(today.DayOfYear.ToString(), coolCaps);
            var resultOfRead = facts.Read(today.DayOfYear.ToString());

            // Assert
            Assert.True(resultOfAdd);
            Assert.Equal(coolCaps, resultOfRead);
        }
        public void AddReadAndRemoveTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act and Assert
            var resultOfAdd    = facts.Add(today.DayOfWeek.ToString(), today.ToString());
            var resultOfRead   = facts.Read(today.DayOfWeek.ToString());
            var resultOfRemove = facts.Remove(today.DayOfWeek.ToString());

            // Assert
            Assert.True(resultOfAdd);
            Assert.NotNull(resultOfRead);
            Assert.True(resultOfRemove);
        }
        public void AddAndOverrideTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var resultOfAdd      = facts.Add(today.DayOfYear.ToString(), today.ToString());
            var oldValue         = facts.Read(today.DayOfYear.ToString());
            var resultOfOverride = facts.Add(today.DayOfYear.ToString(), today.ToLongDateString());
            var laterValue       = facts.Read(today.DayOfYear.ToString());

            // Assert
            Assert.True(resultOfAdd);
            Assert.True(resultOfOverride);
            Assert.NotEqual(oldValue, laterValue);
        }
        public void RemoveConfirmationTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var resultOfAdd     = facts.Add(today.DayOfYear.ToString(), today.ToString());
            var countBefore     = facts.Count();
            var resultOfRemoval = facts.Remove(today.DayOfYear.ToString());
            var countAfter      = facts.Count();

            // Assert
            Assert.True(resultOfAdd);
            Assert.True(countBefore > countAfter);
            Assert.True(resultOfRemoval);
        }
Exemple #12
0
        private void Run()
        {
            Console.WriteLine("Demonstration Intelligence Artificielle Système Expert" + Environment.NewLine +
                              "Sébastien ALVAREZ - Septembre 2018" + Environment.NewLine);

            Console.WriteLine("=> Création de la base de règles à partir du fichier xml...");
            XmlRulesBaseParser parser    = new XmlRulesBaseParser();
            RulesBase          rulesBase = parser.CreateRulesBase("RulesBase - polygones.xml");

            if (parser.ErrorCode == XmlRulesBaseParserErrorCode.SUCCESS)
            {
                Console.WriteLine("=> Base de règles chargée pour : " + parser.Name + "...");

                // Résolution du problème d'identification
                Console.WriteLine("=> Création du moteur d'inférence de l'IA...");
                FactsBase factsBase = new FactsBase();
                factsBase.Facts.Add(new IntFact("Ordre", 3, 0, null));
                factsBase.Facts.Add(new BoolFact("Angle droit", true, 0, null));

                Engine ia = new Engine(this, rulesBase, factsBase);

                //Engine ia = new Engine(this, rulesBase);
                Console.WriteLine("=> Résolution du problème d'identification...");
                ia.Solve();

                Console.WriteLine("\n=> Résolution du problème d'identification...");
                List <IFact> newFactsList = new List <IFact>();
                newFactsList.Add(new IntFact("Ordre", 3, 0, null));
                newFactsList.Add(new IntFact("Côtés égaux", 3, 0, null));
                ia.SetFactsBase(newFactsList);
                ia.Solve();

                Console.WriteLine("\n=> Résolution du problème d'identification...");
                ia = new Engine(this, rulesBase);
                ia.Solve();
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Erreur de parsing du fichier xml..." + Environment.NewLine + "Erreur : " + parser.ErrorCode.ToString());
                Console.ReadLine();
            }
        }
        public void CountsTest()
        {
            // Align
            var facts = new FactsBase();
            var today = DateTime.Today;
            // Act
            var countBeforeAdd    = facts.Count();
            var resultOfAdd       = facts.Add(today.DayOfWeek.ToString(), today.ToString());
            var countAfterAdd     = facts.Count();
            var resultOfRead      = facts.Read(today.DayOfWeek.ToString());
            var countAfterRead    = facts.Count();
            var resultOfRemoval   = facts.Remove(today.DayOfWeek.ToString());
            var countAfterRemoval = facts.Count();

            // Assert
            Assert.True(resultOfAdd);
            Assert.NotNull(resultOfRead);
            Assert.True(resultOfRemoval);
            Assert.NotEqual(countBeforeAdd, countAfterAdd);
            Assert.NotEqual(countAfterRead, countAfterRemoval);
            Assert.Equal(countBeforeAdd, countAfterRemoval);
            Assert.Equal(countAfterAdd, countAfterRead);
        }
Exemple #14
0
 public Motor(HumanInterface _ihm)
 {
     ihm = _ihm;
     fDB = new FactsBase();
     rDB = new RulesBase();
 }