Code Duplication    Length = 8-10 lines in 3 locations

src/Rule/AndRule.php 3 locations

@@ 583-592 (lines=10) @@
580
                // $notInRule->dump(true);
581
            }
582
583
            if ( ! empty($operandsByOperator[ BelowOrEqualRule::operator ])) {
584
                $belowOrEqualRule = reset($operandsByOperator[ BelowOrEqualRule::operator ]);
585
                if ($equalRule->getValue() <= $belowOrEqualRule->getMaximum()) {
586
                    unset($operandsByOperator[ BelowOrEqualRule::operator ]);
587
                }
588
                else {
589
                    // ['field', '=', 4] && ['field', '<=', [3]...] <=> false
590
                    return [];
591
                }
592
            }
593
594
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
595
                $aboveOrEqualRule = reset($operandsByOperator[ AboveOrEqualRule::operator ]);
@@ 594-603 (lines=10) @@
591
                }
592
            }
593
594
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
595
                $aboveOrEqualRule = reset($operandsByOperator[ AboveOrEqualRule::operator ]);
596
                if ($equalRule->getValue() >= $aboveOrEqualRule->getMinimum()) {
597
                    unset($operandsByOperator[ AboveOrEqualRule::operator ]);
598
                }
599
                else {
600
                    // ['field', '=', 4] && ['field', '<=', [3]...] <=> false
601
                    return [];
602
                }
603
            }
604
        }
605
606
        // NotEqualRule null comparisons
@@ 743-750 (lines=8) @@
740
                }
741
            }
742
743
            if ( ! empty($operandsByOperator[ AboveRule::operator ])) {
744
                $lower_limit = reset($operandsByOperator[ AboveRule::operator ])->getLowerLimit();
745
746
                if ($belowOrEqualRule->getMaximum() <= $lower_limit) {
747
                    // [field > 3] && [field <= 2] <=> false
748
                    return [];
749
                }
750
            }
751
752
            if ( ! empty($operandsByOperator[ AboveOrEqualRule::operator ])) {
753
                $minimum = reset($operandsByOperator[ AboveOrEqualRule::operator ])->getMinimum();