Esempio n. 1
0
 internal IEnumerable <ulong> AttemptMatch(ulong trigger, RuleInvocationContext context)
 {
     foreach (Rule rule in _Rules)
     {
         if (rule.IsTrue(trigger, context))
         {
             yield return(rule.Result);
         }
     }
 }
Esempio n. 2
0
 internal bool IsTrue(ulong trigger, RuleInvocationContext context)
 {
     if (Trigger != trigger)
     {
         return(false);
     }
     foreach (RuleCondition condition in Conditions)
     {
         if (!condition.IsTrue(context))
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 3
0
 internal bool IsTrue(RuleInvocationContext context)
 {
     if (!context.TryGetValue(VarNameBitString, out double value))
     {
         return(false);
     }
     if (value == Min && value == Max)
     {
         return(true);
     }
     if (value + Epsilon >= Min && value - Epsilon <= Max)
     {
         return(true);
     }
     return(false);
 }