@@ 680-686 (lines=7) @@ | ||
677 | if ( ! empty($operandsByOperator[ InRule::operator ])) { |
|
678 | $inRule = $operandsByOperator[ InRule::operator ][0]; |
|
679 | ||
680 | if ( ! empty($operandsByOperator[ NotInRule::operator ])) { |
|
681 | $notInRule = reset($operandsByOperator[ NotInRule::operator ]); |
|
682 | $operandsByOperator[ InRule::operator ][0]->setPossibilities( |
|
683 | array_diff( $inRule->getPossibilities(), $notInRule->getPossibilities()) |
|
684 | ); |
|
685 | unset($operandsByOperator[ NotInRule::operator ]); |
|
686 | } |
|
687 | ||
688 | if ( ! empty($operandsByOperator[ BelowRule::operator ])) { |
|
689 | $upper_limit = reset($operandsByOperator[ BelowRule::operator ])->getUpperLimit(); |
|
@@ 688-698 (lines=11) @@ | ||
685 | unset($operandsByOperator[ NotInRule::operator ]); |
|
686 | } |
|
687 | ||
688 | if ( ! empty($operandsByOperator[ BelowRule::operator ])) { |
|
689 | $upper_limit = reset($operandsByOperator[ BelowRule::operator ])->getUpperLimit(); |
|
690 | ||
691 | $operandsByOperator[ InRule::operator ][0]->setPossibilities( |
|
692 | array_filter( $inRule->getPossibilities(), function ($possibility) use ($upper_limit) { |
|
693 | return $possibility < $upper_limit; |
|
694 | } ) |
|
695 | ); |
|
696 | ||
697 | unset($operandsByOperator[ BelowRule::operator ]); |
|
698 | } |
|
699 | ||
700 | if ( ! empty($operandsByOperator[ AboveRule::operator ])) { |
|
701 | $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit(); |
|
@@ 700-710 (lines=11) @@ | ||
697 | unset($operandsByOperator[ BelowRule::operator ]); |
|
698 | } |
|
699 | ||
700 | if ( ! empty($operandsByOperator[ AboveRule::operator ])) { |
|
701 | $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit(); |
|
702 | ||
703 | $operandsByOperator[ InRule::operator ][0]->setPossibilities( |
|
704 | array_filter( $inRule->getPossibilities(), function ($possibility) use ($lower_limit) { |
|
705 | return $possibility > $lower_limit; |
|
706 | } ) |
|
707 | ); |
|
708 | ||
709 | unset($operandsByOperator[ AboveRule::operator ]); |
|
710 | } |
|
711 | } |
|
712 | ||
713 | // Comparison between NotInRules and > or < |
|
@@ 717-725 (lines=9) @@ | ||
714 | if ( ! empty($operandsByOperator[ NotInRule::operator ])) { |
|
715 | $notInRule = $operandsByOperator[ NotInRule::operator ][0]; |
|
716 | ||
717 | if ( ! empty($operandsByOperator[ BelowRule::operator ])) { |
|
718 | $upper_limit = reset($operandsByOperator[ BelowRule::operator ])->getUpperLimit(); |
|
719 | ||
720 | $operandsByOperator[ NotInRule::operator ][0]->setPossibilities( |
|
721 | array_filter( $notInRule->getPossibilities(), function ($possibility) use ($upper_limit) { |
|
722 | return $possibility < $upper_limit; |
|
723 | } ) |
|
724 | ); |
|
725 | } |
|
726 | ||
727 | if ( ! empty($operandsByOperator[ AboveRule::operator ])) { |
|
728 | $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit(); |
|
@@ 727-735 (lines=9) @@ | ||
724 | ); |
|
725 | } |
|
726 | ||
727 | if ( ! empty($operandsByOperator[ AboveRule::operator ])) { |
|
728 | $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit(); |
|
729 | ||
730 | $operandsByOperator[ NotInRule::operator ][0]->setPossibilities( |
|
731 | array_filter( $notInRule->getPossibilities(), function ($possibility) use ($lower_limit) { |
|
732 | return $possibility > $lower_limit; |
|
733 | } ) |
|
734 | ); |
|
735 | } |
|
736 | } |
|
737 | ||
738 | // Comparison between <= and > or < |