|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* User: alec |
|
4
|
|
|
* Date: 07.11.18 |
|
5
|
|
|
* Time: 15:36 |
|
6
|
|
|
*/ |
|
7
|
|
|
|
|
8
|
|
|
namespace Unit\DataProviders; |
|
9
|
|
|
|
|
10
|
|
|
|
|
11
|
|
|
use AlecRabbit\Money\Money; |
|
12
|
|
|
|
|
13
|
|
|
class MoneyBasicDataProvider |
|
14
|
|
|
{ |
|
15
|
|
|
public static function equalityDataProvider(): array |
|
16
|
|
|
{ |
|
17
|
|
|
return [ |
|
18
|
|
|
// [$amount, $currency, $resulted_amount, $resulted_currency, $equality], |
|
19
|
|
|
[null, 'eUr', '0', 'EUR', true], |
|
20
|
|
|
[6, 'usdEt', '5', 'USDET', false], |
|
21
|
|
|
[5.2, 'eUr', '5.2', 'EUR', true], |
|
22
|
|
|
[-0.1232, 'usd', '-0.1232', 'USD', true], |
|
23
|
|
|
[-0.1232, 'usd', null, 'USD', false], |
|
24
|
|
|
[5, 'usd', '5', 'USD', true], |
|
25
|
|
|
[5, 'usdEt', '5', 'USDET', true], |
|
26
|
|
|
[5, 'usdEt', '5', 'eur', false], |
|
27
|
|
|
|
|
28
|
|
|
]; |
|
29
|
|
|
} |
|
30
|
|
|
|
|
31
|
|
|
public static function divideDataProvider(): array |
|
32
|
|
|
{ |
|
33
|
|
|
return [ |
|
34
|
|
|
// [$result, $amount, $divisor], |
|
35
|
|
|
['1', 1, 1], |
|
36
|
|
|
['1.24124', 1.24124, 1], |
|
37
|
|
|
['0.5', 3, 6], |
|
38
|
|
|
['0.68492305413977', 2.22, 3.24124], |
|
39
|
|
|
['0.68940613061185', 2.23453462623452, 3.24124565624525], |
|
40
|
|
|
]; |
|
41
|
|
|
} |
|
42
|
|
|
|
|
43
|
|
|
public static function comparisonDataProvider(): array |
|
44
|
|
|
{ |
|
45
|
|
|
return [ |
|
46
|
|
|
// [$expected, $amount, $currency, $second_amount] |
|
47
|
|
|
[0, 1, 'eur', 1], |
|
48
|
|
|
[1, 2, 'eur', 1], |
|
49
|
|
|
[-1, 0, 'eur', 1], |
|
50
|
|
|
]; |
|
51
|
|
|
} |
|
52
|
|
|
|
|
53
|
|
|
public static function invalidOperandDataProvider(): array |
|
54
|
|
|
{ |
|
55
|
|
|
return [ |
|
56
|
|
|
[[]], |
|
57
|
|
|
[false], |
|
58
|
|
|
['operand'], |
|
59
|
|
|
[null], |
|
60
|
|
|
[new \stdClass()], |
|
61
|
|
|
]; |
|
62
|
|
|
} |
|
63
|
|
|
|
|
64
|
|
|
public static function allocationDataProvider(): array |
|
65
|
|
|
{ |
|
66
|
|
|
return [ |
|
67
|
|
|
[32453.34, [1, 1, 1], [10818, 10818, 10817.34], 0], |
|
68
|
|
|
[32453, [1, 1, 1], [10818, 10818, 10817], 0], |
|
69
|
|
|
[32453, [1, 1, 1], [10817.67, 10817.67, 10817.66], null], |
|
70
|
|
|
[100, [1, 1, 1], [33.34, 33.33, 33.33], null], |
|
71
|
|
|
[100, [1, 1, 1], [34, 33, 33], 0], |
|
72
|
|
|
[101, [1, 1, 1], [33.67, 33.67, 33.66], null], |
|
73
|
|
|
[-101, [1, 1, 1], [-33.66, -33.67, -33.67], null], |
|
74
|
|
|
[-101, [0, 1, 1, 1], [0, -33.66, -33.67, -33.67], null], |
|
75
|
|
|
[5, [3, 7], [2, 3], 0], |
|
76
|
|
|
[5, [3, 7], [1.5, 3.5], 2], |
|
77
|
|
|
[5, [3, 8], [1.36, 3.64], 2], |
|
78
|
|
|
[5, [7, 3], [4, 1], 0], |
|
79
|
|
|
[5, [7, 3], [3.5, 1.5], 2], |
|
80
|
|
|
[5, [0, 5, 3], [0, 3.13, 1.87], 2], |
|
81
|
|
|
[5, [7, 3, 0], [4, 1, 0], 0], |
|
82
|
|
|
[5, [7, 3, 0], [3.5, 1.5, 0], 3], |
|
83
|
|
|
[6.34, [7, 3, 0], [4.438, 1.902, 0], 5], |
|
84
|
|
|
[6.34456456, [5, 3, 1], [3.52475809, 2.11485485, 0.70495162], 8], |
|
85
|
|
|
[-5, [7, 3], [-3, -2], 0], |
|
86
|
|
|
[-5, [7, 3], [-3.5, -1.5], 2], |
|
87
|
|
|
[-2, [3, 5], [-0.75, -1.25], 4], |
|
88
|
|
|
[5, [0, 7, 3], [0, 4, 1], 0], |
|
89
|
|
|
[5, [7, 0, 3], [4, 0, 1], 0], |
|
90
|
|
|
[7, [7, 0, 3], [4.9, 0, 2.1], 2], |
|
91
|
|
|
[5, [0, 0, 1], [0, 0, 5], 0], |
|
92
|
|
|
[5, [0, 3, 7], [0, 2, 3], 0], |
|
93
|
|
|
[0, [0, 0, 1], [0, 0, 0], 0], |
|
94
|
|
|
[2, [1, 1, 1], [1, 1, 0], 0], |
|
95
|
|
|
[1, [1, 1], [1, 0], 0], |
|
96
|
|
|
]; |
|
97
|
|
|
} |
|
98
|
|
|
|
|
99
|
|
|
public static function allocationTargetDataProvider(): array |
|
100
|
|
|
{ |
|
101
|
|
|
return [ |
|
102
|
|
|
[15, 2, [7.5, 7.5], null], |
|
103
|
|
|
[10, 2, [5, 5], null], |
|
104
|
|
|
[15, 3, [5, 5, 5], null], |
|
105
|
|
|
[10, 3, [3.34, 3.33, 3.33], null], |
|
106
|
|
|
[10, 3, [3.33333334, 3.33333333, 3.33333333], 8], |
|
107
|
|
|
]; |
|
108
|
|
|
} |
|
109
|
|
|
|
|
110
|
|
|
public static function comparatorDataProvider(): array |
|
111
|
|
|
{ |
|
112
|
|
|
return [ |
|
113
|
|
|
// [$amount, $isZero, $isPositive, $isNegative], |
|
114
|
|
|
[1, false, true, false], |
|
115
|
|
|
[0, true, false, false], |
|
116
|
|
|
[-1, false, false, true], |
|
117
|
|
|
['1', false, true, false], |
|
118
|
|
|
['0', true, false, false], |
|
119
|
|
|
['-1', false, false, true], |
|
120
|
|
|
]; |
|
121
|
|
|
} |
|
122
|
|
|
public static function comparatorDataProviderTwo(): array |
|
123
|
|
|
{ |
|
124
|
|
|
return [ |
|
125
|
|
|
// [$amount, $isNotZero, $isNotPositive, $isNotNegative], |
|
126
|
|
|
[1, true, false, true], |
|
127
|
|
|
[0, false, true, true], |
|
128
|
|
|
[-1, true, true, false], |
|
129
|
|
|
['1', true, false, true], |
|
130
|
|
|
['0', false, true, true], |
|
131
|
|
|
['-1', true, true, false], |
|
132
|
|
|
]; |
|
133
|
|
|
} |
|
134
|
|
|
|
|
135
|
|
|
public static function absoluteDataProvider(): array |
|
136
|
|
|
{ |
|
137
|
|
|
return [ |
|
138
|
|
|
[1, 1], |
|
139
|
|
|
[1, -1], |
|
140
|
|
|
[21, -21], |
|
141
|
|
|
[2, 2], |
|
142
|
|
|
[0, 0], |
|
143
|
|
|
[0.234, -0.234], |
|
144
|
|
|
['0.2349', -0.234900000], |
|
145
|
|
|
]; |
|
146
|
|
|
} |
|
147
|
|
|
|
|
148
|
|
|
public static function negativeDataProvider(): array |
|
149
|
|
|
{ |
|
150
|
|
|
return [ |
|
151
|
|
|
[1, -1], |
|
152
|
|
|
[0, 0], |
|
153
|
|
|
[-1, 1], |
|
154
|
|
|
['1', -1], |
|
155
|
|
|
['0', 0], |
|
156
|
|
|
['-1', 1], |
|
157
|
|
|
]; |
|
158
|
|
|
} |
|
159
|
|
|
|
|
160
|
|
|
public static function modDataProvider(): array |
|
161
|
|
|
{ |
|
162
|
|
|
return [ |
|
163
|
|
|
[11, 5, '1'], |
|
164
|
|
|
[9, 3, '0'], |
|
165
|
|
|
[1006, 10, '6'], |
|
166
|
|
|
[1007, 10, '7'], |
|
167
|
|
|
]; |
|
168
|
|
|
} |
|
169
|
|
|
|
|
170
|
|
|
public static function sumDataProvider(): array |
|
171
|
|
|
{ |
|
172
|
|
|
return [ |
|
173
|
|
|
[[Money::EUR(5), Money::EUR(10), Money::EUR(15)], Money::EUR(30.000)], |
|
174
|
|
|
[[Money::EUR(-5), Money::EUR(-10.000), Money::EUR(-15)], Money::EUR(-30)], |
|
175
|
|
|
[[Money::EUR(-5), Money::EUR(10.000), Money::EUR(-15)], Money::EUR(-10.0)], |
|
176
|
|
|
[[Money::EUR(0)], Money::EUR(0)], |
|
177
|
|
|
[[Money::EUR(0), Money::EUR(0), Money::EUR(0)], Money::EUR(0)], |
|
178
|
|
|
[[Money::EUR(0), Money::EUR(0.001), Money::EUR(0)], Money::EUR('0.00100')], |
|
179
|
|
|
]; |
|
180
|
|
|
} |
|
181
|
|
|
|
|
182
|
|
|
public static function minDataProvider(): array |
|
183
|
|
|
{ |
|
184
|
|
|
return [ |
|
185
|
|
|
[[Money::EUR(5), Money::EUR(10), Money::EUR(15.0032323000)], Money::EUR(5)], |
|
186
|
|
|
[[Money::EUR(-5), Money::EUR(-10), Money::EUR(-15)], Money::EUR(-15)], |
|
187
|
|
|
[[Money::EUR(0)], Money::EUR(0)], |
|
188
|
|
|
]; |
|
189
|
|
|
} |
|
190
|
|
|
|
|
191
|
|
|
public static function maxDataProvider(): array |
|
192
|
|
|
{ |
|
193
|
|
|
return [ |
|
194
|
|
|
[[Money::EUR(5), Money::EUR(10), Money::EUR(15.0032323000)], Money::EUR('15.0032323')], |
|
195
|
|
|
[[Money::EUR(-5), Money::EUR(-10), Money::EUR(-15)], Money::EUR(-5)], |
|
196
|
|
|
[[Money::EUR(0)], Money::EUR(0)], |
|
197
|
|
|
]; |
|
198
|
|
|
} |
|
199
|
|
|
|
|
200
|
|
|
public static function avgDataProvider(): array |
|
201
|
|
|
{ |
|
202
|
|
|
return [ |
|
203
|
|
|
[[Money::EUR(5), Money::EUR(1.5077), Money::EUR(8.2), Money::EUR(10), Money::EUR(15)], Money::EUR(7.94154)], |
|
204
|
|
|
[[Money::EUR(5), Money::EUR(10), Money::EUR(15)], Money::EUR(10)], |
|
205
|
|
|
[[Money::EUR(-5), Money::EUR(-10), Money::EUR(-15)], Money::EUR(-10)], |
|
206
|
|
|
[[Money::EUR(0)], Money::EUR(0)], |
|
207
|
|
|
[[Money::EUR(1)], Money::EUR(1)], |
|
208
|
|
|
]; |
|
209
|
|
|
} |
|
210
|
|
|
|
|
211
|
|
|
public static function multiplyDataProvider(): array |
|
212
|
|
|
{ |
|
213
|
|
|
return [ |
|
214
|
|
|
// [$result, $amount, $multiplier], |
|
215
|
|
|
['1', 1, 1], |
|
216
|
|
|
['1.24124', 1, 1.24124], |
|
217
|
|
|
['7.1955528', 2.22, 3.24124], |
|
218
|
|
|
['7.24267565101206', 2.23453462623452, 3.24124565624525], |
|
219
|
|
|
]; |
|
220
|
|
|
} |
|
221
|
|
|
|
|
222
|
|
|
public static function newInstanceDataProvider(): array |
|
223
|
|
|
{ |
|
224
|
|
|
return [ |
|
225
|
|
|
// [$amount, $currency, $resulted_amount, $resulted_currency], |
|
226
|
|
|
[null, 'eUr', '0', 'EUR'], |
|
227
|
|
|
[5.2, 'eUr', '5.2', 'EUR'], |
|
228
|
|
|
[-0.1232, 'usd', '-0.1232', 'USD'], |
|
229
|
|
|
[5, 'usd', '5', 'USD'], |
|
230
|
|
|
[5, 'usdEt', '5', 'USDET'], |
|
231
|
|
|
]; |
|
232
|
|
|
} |
|
233
|
|
|
|
|
234
|
|
|
public function newInstanceBadDataProvider(): array |
|
235
|
|
|
{ |
|
236
|
|
|
return [ |
|
237
|
|
|
// [$amount, $currency], |
|
238
|
|
|
[false, 'eUr'], |
|
239
|
|
|
[new \stdClass(), 'eUr'], |
|
240
|
|
|
[null, true], |
|
241
|
|
|
[1, 'CODETOOLONG'], |
|
242
|
|
|
]; |
|
243
|
|
|
} |
|
244
|
|
|
} |