Пример #1
0
        public ConditionAtTimeQuery(QuestionType questionType, string condition, int time = -1)
            : base(QueryType.SatisfyConditionAtTime, questionType)
        {
            _condition   = condition;
            _time        = time;
            _logicExp    = new SimpleLogicExpression(_condition);
            _fluentNames = _logicExp.GetFluentNames();

            _logger.Info("Creates:\n " + this);
        }
Пример #2
0
        public void AddExpression_Simple_Test()
        {
            var firstExpression  = new SimpleLogicExpression("a || b");
            var secondExpression = new SimpleLogicExpression("a && c");

            firstExpression.AddExpression(secondExpression);

            Assert.AreEqual("(a || b) && (a && c)", firstExpression.ToString());
            Assert.AreEqual("a && c", secondExpression.ToString());
        }
Пример #3
0
        public void AddExpression_AllEmpty_Test()
        {
            var firstExpression  = new SimpleLogicExpression(string.Empty);
            var secondExpression = new SimpleLogicExpression(string.Empty);

            firstExpression.AddExpression(secondExpression);

            Assert.AreEqual(string.Empty, firstExpression.ToString());
            Assert.AreEqual(string.Empty, secondExpression.ToString());
        }
        public AccesibleConditionQuery(QuestionType questionType, string condition, ScenarioDescription scenario)
            : base(QueryType.AccesibleCondition, questionType)
        {
            _queryType = QueryType.AccesibleCondition;
            _condition = condition;
            var logicExp = new SimpleLogicExpression(this._condition);

            _fluentNames = logicExp.GetFluentNames();
            _scenario    = scenario;


            ExecQuery       = new ExecutableScenarioQuery(QuestionType.Ever, _scenario);
            CondAtTimeQuery = new ConditionAtTimeQuery(QuestionType.Ever, _condition);


            _logger.Info("Creates:\n " + this);
        }
Пример #5
0
        public void AddExpression_Complex_Test()
        {
            var firstExpression  = new SimpleLogicExpression("(!a || b) && c");
            var secondExpression = new SimpleLogicExpression("a && c || !(b && !a)");
            var thirdExpression  = new SimpleLogicExpression("!a && !b || (!a)");

            secondExpression.AddExpression(thirdExpression);

            var expected = "(a && c || !(b && !a)) && (!a && !b || (!a))".Trim().Normalize();
            var actual   = secondExpression.ToString().Trim().Normalize();

            Assert.AreEqual(expected, actual);

            firstExpression.AddExpression(secondExpression);

            var expected2 = "((!a || b) && c) && ((a && c || !(b && !a)) && (!a && !b || (!a)))".Trim().Normalize();
            var actual2   = firstExpression.ToString().Trim().Normalize();

            Assert.AreEqual(expected2, actual2);
        }
 private void ButtonAddObservation_Click(object sender, RoutedEventArgs e)
 {
     if (String.IsNullOrEmpty(ObservationAdd.Expression))
     {
         ObservationAdd.LabelValidation.Content = "It is necessary to fill expression.";
     }
     else
     {
         ILogicExpression expression = new SimpleLogicExpression(ObservationAdd.Expression);
         if (ValidationExpression(expression) && ActionList.AddObservation(ObservationAdd.Time, ObservationAdd.Expression))
         {
             _scenarioDescription.observations.Add(new ScenarioObservationRecord(expression, ObservationAdd.Time));
             ObservationAdd.CleanValues();
         }
         else
         {
             ObservationAdd.LabelValidation.Content = "Expression is incorrect.";
         }
     }
 }