Completed
Push — master ( d62f94...2c3725 )
by Jordan
15s queued 13s
created

CalculationModeTrait::getMode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
namespace Samsara\Fermat\Core\Types\Traits;
4
5
use Samsara\Fermat\Complex\Types\ComplexNumber;
6
use Samsara\Fermat\Core\Enums\CalcMode;
7
use Samsara\Fermat\Core\Provider\CalculationModeProvider;
8
use Samsara\Fermat\Core\Types\Base\Number;
9
10
/**
11
 *
12
 */
13
trait CalculationModeTrait
14
{
15
    /** @var CalcMode|null */
16
    protected ?CalcMode $calcMode = null;
17
18
    /**
19
     * @return CalcMode
20
     */
21 3908
    public function getResolvedMode(): CalcMode
22
    {
23
24 3908
        return $this->calcMode ?? CalculationModeProvider::getCurrentMode();
25
26
    }
27
28
    /**
29
     * @return CalcMode|null
30
     */
31 2985
    public function getMode(): ?CalcMode
32
    {
33
34 2985
        return $this->calcMode;
35
36
    }
37
38
    /**
39
     * Allows you to set a mode on a number to select the calculation methods.
40
     *
41
     * @param CalcMode|null $mode
42
     * @return $this
43
     */
44 3463
    public function setMode(?CalcMode $mode): self
45
    {
46 3463
        $this->calcMode = $mode;
47
48 3463
        return $this;
49
    }
50
}