/// <summary> /// Adds a <see cref="Condition"/> to the <see cref="FuzzyRule"/> to be built. /// </summary> /// <param name="condition"> /// The condition. /// </param> /// <returns> /// The <see cref="FuzzyRuleBuilder"/>. /// </returns> public FuzzyRuleBuilder Or(ConditionBuilder condition) { Validate.NotNull(condition, nameof(condition)); condition.Connective = LogicOperators.Or(); this.conditions.Add(condition.Build()); return(this); }
/// <summary> /// Adds a <see cref="Condition"/> to the <see cref="FuzzyRule"/> to be built. /// </summary> /// <param name="proposition"> /// The proposition. /// </param> /// <returns> /// A <see cref="FuzzyRuleBuilder"/>. /// </returns> public FuzzyRuleBuilder And(Proposition proposition) { Validate.NotNull(proposition, nameof(proposition)); var condition = ConditionBuilder.If(proposition); condition.Connective = LogicOperators.And(); this.conditions.Add(condition.Build()); return(this); }
/// <summary> /// The create. /// </summary> /// <param name="proposition"> /// The proposition. /// </param> /// <returns> /// The <see cref="ConditionBuilder"/>. /// </returns> public static ConditionBuilder If(Proposition proposition) { Utility.Validate.NotNull(proposition, nameof(proposition)); var conditionBuilder = new ConditionBuilder { Connective = LogicOperators.If() }; conditionBuilder.Premises.Add(new Premise( LogicOperators.If(), proposition.Variable, proposition.Evaluator, proposition.State)); return(conditionBuilder); }