Code Duplication    Length = 8-8 lines in 2 locations

src/Zicht/Itertools/itertools.php 2 locations

@@ 563-570 (lines=8) @@
560
561
    $args = func_get_args();
562
    switch (sizeof($args)) {
563
        case 2:
564
            $strategy = conversions\mixed_to_value_getter($args[0]);
565
            $closure = function ($value, $key) use ($strategy) {
566
                $tempVarPhp54 = call_user_func($strategy, $value, $key);
567
                return !empty($tempVarPhp54);
568
            };
569
            $iterable = conversions\mixed_to_iterator($args[1]);
570
            break;
571
572
        case 3:
573
            $strategy = conversions\mixed_to_value_getter($args[0]);
@@ 572-579 (lines=8) @@
569
            $iterable = conversions\mixed_to_iterator($args[1]);
570
            break;
571
572
        case 3:
573
            $strategy = conversions\mixed_to_value_getter($args[0]);
574
            $userClosure = $args[1];
575
            $closure = function ($value, $key) use ($strategy, $userClosure) {
576
                return call_user_func($userClosure, call_user_func($strategy, $value, $key));
577
            };
578
            $iterable = conversions\mixed_to_iterator($args[2]);
579
            break;
580
581
        default:
582
            throw new \InvalidArgumentException('filterBy requires either two (strategy, iterable) or three (strategy, closure, iterable) arguments');