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
|
|
|
} |