Code Duplication    Length = 8-10 lines in 3 locations

src/Rule/AndRule.php 3 locations

@@ 596-605 (lines=10) @@
593
                // $notInRule->dump(true);
594
            }
595
596
            if ( ! empty($operandsByOperator[ BelowOrEqualRule::operator ])) {
597
                $belowOrEqualRule = reset($operandsByOperator[ BelowOrEqualRule::operator ]);
598
                if ($equalRule->getValue() <= $belowOrEqualRule->getMaximum()) {
599
                    unset($operandsByOperator[ BelowOrEqualRule::operator ]);
600
                }
601
                else {
602
                    // ['field', '=', 4] && ['field', '<=', [3]...] <=> false
603
                    return [];
604
                }
605
            }
606
607
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
608
                $aboveOrEqualRule = reset($operandsByOperator[ AboveOrEqualRule::operator ]);
@@ 607-616 (lines=10) @@
604
                }
605
            }
606
607
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
608
                $aboveOrEqualRule = reset($operandsByOperator[ AboveOrEqualRule::operator ]);
609
                if ($equalRule->getValue() >= $aboveOrEqualRule->getMinimum()) {
610
                    unset($operandsByOperator[ AboveOrEqualRule::operator ]);
611
                }
612
                else {
613
                    // ['field', '=', 4] && ['field', '<=', [3]...] <=> false
614
                    return [];
615
                }
616
            }
617
        }
618
619
        // NotEqualRule null comparisons
@@ 756-763 (lines=8) @@
753
                }
754
            }
755
756
            if ( ! empty($operandsByOperator[ AboveRule::operator ])) {
757
                $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit();
758
759
                if ($belowOrEqualRule->getMaximum() <= $lower_limit) {
760
                    // [field > 3] && [field <= 2] <=> false
761
                    return [];
762
                }
763
            }
764
765
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
766
                $minimum = reset($operandsByOperator[ AboveOrEqualRule::operator ])->getMinimum();