Failed Conditions
Branch master (01ba0d)
by Arnold
06:58 queued 01:45
created

IterableReduceTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 28
rs 10
c 0
b 0
f 0
wmc 3
1
<?php
2
3
namespace Jasny\Tests;
4
5
use PHPUnit\Framework\TestCase;
6
use function Jasny\iterable_reduce;
7
8
/**
9
 * @covers \Jasny\iterable_reduce
10
 */
11
class IterableReduceTest extends TestCase
12
{
13
    use ProvideIterablesTrait;
14
15
    public function provider()
16
    {
17
        return $this->provideIterables([2, 3, 4], true);
18
    }
19
20
    /**
21
     * @dataProvider provider
22
     */
23
    public function test($values)
24
    {
25
        $result = iterable_reduce($values, function ($product, $value) {
26
            return $product * $value;
27
        }, 1);
28
29
        $this->assertEquals(24, $result);
30
    }
31
32
    public function testEmpty()
33
    {
34
        $result = iterable_reduce(new \EmptyIterator(), function () {
35
            return 10;
36
        }, 1);
37
38
        $this->assertEquals(1, $result);
39
    }
40
}
41