Passed
Branch master (7fff96)
by Jordan
06:01
created

DecimalTrigBasicBench   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 121
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 59
dl 0
loc 121
rs 10
c 1
b 0
f 0
wmc 15
1
<?php
2
3
4
namespace Samsara\Fermat\Values;
5
6
use PhpBench\Attributes\BeforeMethods;
7
use PhpBench\Attributes\Groups;
8
use PhpBench\Attributes\ParamProviders;
9
use PhpBench\Attributes\Revs;
10
use Samsara\Fermat\Enums\CalcMode;
11
12
class DecimalTrigBasicBench
13
{
14
    public ImmutableDecimal $valueA;
15
16
    #[Groups(['trig', 'basic-trig'])]
17
    #[BeforeMethods('setUp')]
18
    #[ParamProviders(['provideNumbers', 'provideModes'])]
19
    public function benchSin()
20
    {
21
        $this->valueA->sin();
22
    }
23
24
    #[Groups(['trig', 'basic-trig'])]
25
    #[BeforeMethods('setUp')]
26
    #[ParamProviders(['provideNumbers', 'provideModes'])]
27
    public function benchCos()
28
    {
29
        $this->valueA->cos();
30
    }
31
32
    #[Groups(['trig', 'basic-trig'])]
33
    #[BeforeMethods('setUp')]
34
    #[ParamProviders(['provideNumbers', 'provideModes'])]
35
    public function benchTan()
36
    {
37
        $this->valueA->tan();
38
    }
39
40
    #[Groups(['trig', 'basic-trig'])]
41
    #[BeforeMethods('setUp')]
42
    #[ParamProviders(['provideNumbers', 'provideModes'])]
43
    public function benchSec()
44
    {
45
        $this->valueA->sec();
46
    }
47
48
    #[Groups(['trig', 'basic-trig'])]
49
    #[BeforeMethods('setUp')]
50
    #[ParamProviders(['provideNumbers', 'provideModes'])]
51
    public function benchCsc()
52
    {
53
        $this->valueA->csc();
54
    }
55
56
    #[Groups(['trig', 'basic-trig'])]
57
    #[BeforeMethods('setUp')]
58
    #[ParamProviders(['provideNumbers', 'provideModes'])]
59
    public function benchCot()
60
    {
61
        $this->valueA->cot();
62
    }
63
64
    #[Groups(['trig', 'basic-trig'])]
65
    #[BeforeMethods('setUp')]
66
    #[ParamProviders(['provideNumbers', 'provideModes'])]
67
    public function benchSinh()
68
    {
69
        $this->valueA->sinh();
70
    }
71
72
    #[Groups(['trig', 'basic-trig'])]
73
    #[BeforeMethods('setUp')]
74
    #[ParamProviders(['provideNumbers', 'provideModes'])]
75
    public function benchCosh()
76
    {
77
        $this->valueA->cosh();
78
    }
79
80
    #[Groups(['trig', 'basic-trig'])]
81
    #[BeforeMethods('setUp')]
82
    #[ParamProviders(['provideNumbers', 'provideModes'])]
83
    public function benchTanh()
84
    {
85
        $this->valueA->tanh();
86
    }
87
88
    #[Groups(['trig', 'basic-trig'])]
89
    #[BeforeMethods('setUp')]
90
    #[ParamProviders(['provideNumbers', 'provideModes'])]
91
    public function benchSech()
92
    {
93
        $this->valueA->sech();
94
    }
95
96
    #[Groups(['trig', 'basic-trig'])]
97
    #[BeforeMethods('setUp')]
98
    #[ParamProviders(['provideNumbers', 'provideModes'])]
99
    public function benchCsch()
100
    {
101
        $this->valueA->csch();
102
    }
103
104
    #[Groups(['trig', 'basic-trig'])]
105
    #[BeforeMethods('setUp')]
106
    #[ParamProviders(['provideNumbers', 'provideModes'])]
107
    public function benchCoth()
108
    {
109
        $this->valueA->coth();
110
    }
111
112
    public function provideNumbers()
113
    {
114
        return [
115
            'near-one' => ['valueA' => 1],
116
            'near-two' => ['valueA' => 2],
117
            'near-zero' => ['valueA' => '0.001'],
118
        ];
119
    }
120
121
    public function provideModes()
122
    {
123
        return [
124
            'auto-mode' => ['mode' => CalcMode::Auto],
125
            'native-mode' => ['mode' => CalcMode::Native],
126
            'precision-mode' => ['mode' => CalcMode::Precision]
127
        ];
128
    }
129
130
    public function setUp(array $params)
131
    {
132
        $this->valueA = (new ImmutableDecimal($params['valueA']))->setMode($params['mode']);
133
    }
134
135
}