factorialize_negativeNumber_wrongArgumentException()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
1
<?php
2
3
namespace Tests;
4
5
use Vehsamrak\Factorial\Factorial;
6
7
class FactorialTest extends \PHPUnit_Framework_TestCase
8
{
9
10
    public function provideFactorialsWithResults(): array
11
    {
12
        return [
13
            [0, 1],
14
            [1, 1],
15
            [2, 2],
16
            [3, 6],
17
            [4, 24],
18
            [5, 120],
19
            [6, 720],
20
        ];
21
    }
22
23
    public function provideNegativeNumbers(): array
24
    {
25
        return [
26
            [-1],
27
            [-2],
28
            [-3],
29
            [-4],
30
            [-5],
31
            [-6],
32
            [-7],
33
            [-8],
34
            [-9],
35
            [-10],
36
        ];
37
    }
38
39
    /**
40
     * @test
41
     * @dataProvider provideFactorialsWithResults
42
     */
43
    public function factorialize_numberToFactorialize_factorizationResult(int $numberToFactorialize, int $result): void
44
    {
45
        $factorial = new Factorial();
46
47
        $factorialResult = $factorial->factorialize($numberToFactorialize);
48
49
        $this->assertEquals($result, $factorialResult);
50
    }
51
52
    /**
53
     * @test
54
     * @dataProvider provideNegativeNumbers
55
     */
56
    public function factorialize_negativeNumber_wrongArgumentException(int $numberToFactorialize): void
57
    {
58
        $factorial = new Factorial();
59
60
        $this->expectException(\InvalidArgumentException::class);
61
        $factorial->factorialize($numberToFactorialize);
62
    }
63
}
64