-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathRoundExamples.php
83 lines (79 loc) · 3.45 KB
/
RoundExamples.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
declare(strict_types=1);
namespace Tests\Money;
use Money\Money;
/**
* Mocking with typehints usage won't work here as the trait is autoloaded.
*
* @see https://github.com/phpspec/phpspec/issues/825
*/
trait RoundExamples
{
/**
* @phpstan-return non-empty-list<array{
* 0: int|numeric-string,
* 1: Money::ROUND_*,
* 2: numeric-string
* }>
*/
public static function roundingExamples(): array
{
return [
['2.6', Money::ROUND_HALF_EVEN, '3'],
['2.5', Money::ROUND_HALF_EVEN, '2'],
['3.5', Money::ROUND_HALF_EVEN, '4'],
['-2.6', Money::ROUND_HALF_EVEN, '-3'],
['-2.5', Money::ROUND_HALF_EVEN, '-2'],
['-3.5', Money::ROUND_HALF_EVEN, '-4'],
['2.1', Money::ROUND_HALF_ODD, '2'],
['2.5', Money::ROUND_HALF_ODD, '3'],
['3.5', Money::ROUND_HALF_ODD, '3'],
['-2.1', Money::ROUND_HALF_ODD, '-2'],
['-2.5', Money::ROUND_HALF_ODD, '-3'],
['-3.5', Money::ROUND_HALF_ODD, '-3'],
['2', Money::ROUND_HALF_EVEN, '2'],
[2, Money::ROUND_HALF_EVEN, '2'],
['2', Money::ROUND_HALF_ODD, '2'],
[2, Money::ROUND_HALF_ODD, '2'],
['-2', Money::ROUND_HALF_ODD, '-2'],
[-2, Money::ROUND_HALF_ODD, '-2'],
['2.5', Money::ROUND_HALF_DOWN, '2'],
['2.6', Money::ROUND_HALF_DOWN, '3'],
['-2.5', Money::ROUND_HALF_DOWN, '-2'],
['-2.6', Money::ROUND_HALF_DOWN, '-3'],
['2.2', Money::ROUND_HALF_UP, '2'],
['2.5', Money::ROUND_HALF_UP, '3'],
['2', Money::ROUND_HALF_UP, '2'],
[2, Money::ROUND_HALF_UP, '2'],
['-2.5', Money::ROUND_HALF_UP, '-3'],
['-2', Money::ROUND_HALF_UP, '-2'],
['2', Money::ROUND_HALF_DOWN, '2'],
[2, Money::ROUND_HALF_DOWN, '2'],
['12.50', Money::ROUND_HALF_DOWN, '12'],
['-12.50', Money::ROUND_HALF_DOWN, '-12'],
['-1.5', Money::ROUND_HALF_UP, '-2'],
['-8328.578947368', Money::ROUND_HALF_UP, '-8329'],
['-8328.5', Money::ROUND_HALF_UP, '-8329'],
['-8328.5', Money::ROUND_HALF_DOWN, '-8328'],
['2.5', Money::ROUND_HALF_POSITIVE_INFINITY, '3'],
['2.6', Money::ROUND_HALF_POSITIVE_INFINITY, '3'],
['-2.5', Money::ROUND_HALF_POSITIVE_INFINITY, '-2'],
['-2.6', Money::ROUND_HALF_POSITIVE_INFINITY, '-3'],
['2', Money::ROUND_HALF_POSITIVE_INFINITY, '2'],
[2, Money::ROUND_HALF_POSITIVE_INFINITY, '2'],
['12.50', Money::ROUND_HALF_POSITIVE_INFINITY, '13'],
['-12.50', Money::ROUND_HALF_POSITIVE_INFINITY, '-12'],
['-8328.5', Money::ROUND_HALF_POSITIVE_INFINITY, '-8328'],
['2.2', Money::ROUND_HALF_NEGATIVE_INFINITY, '2'],
['2.5', Money::ROUND_HALF_NEGATIVE_INFINITY, '2'],
['2', Money::ROUND_HALF_NEGATIVE_INFINITY, '2'],
[2, Money::ROUND_HALF_NEGATIVE_INFINITY, '2'],
['-2.5', Money::ROUND_HALF_NEGATIVE_INFINITY, '-3'],
['-2', Money::ROUND_HALF_NEGATIVE_INFINITY, '-2'],
[-2, Money::ROUND_HALF_NEGATIVE_INFINITY, '-2'],
['-1.5', Money::ROUND_HALF_NEGATIVE_INFINITY, '-2'],
['-8328.578947368', Money::ROUND_HALF_NEGATIVE_INFINITY, '-8329'],
['-8328.5', Money::ROUND_HALF_NEGATIVE_INFINITY, '-8329'],
];
}
}