Completed
Branch develop (b42baf)
by Adrien
11:23
created

FinancialTest::testPRICE()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 9
rs 9.6666
1
<?php
2
3
namespace PhpSpreadsheetTests\Calculation;
4
5
use PhpSpreadsheet\Calculation\Financial;
6
use PhpSpreadsheet\Calculation\Functions;
7
8
class FinancialTest extends \PHPUnit_Framework_TestCase
9
{
10
    public function setUp()
11
    {
12
        Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
13
    }
14
15
    /**
16
     * @dataProvider providerACCRINT
17
     * @group fail19
18
     */
19
    public function testACCRINT()
20
    {
21
        $args = func_get_args();
22
        $expectedResult = array_pop($args);
23
        $result = call_user_func_array([Financial::class, 'ACCRINT'], $args);
24
        $this->assertEquals($expectedResult, $result, null, 1E-8);
25
    }
26
27
    public function providerACCRINT()
28
    {
29
        return require 'data/Calculation/Financial/ACCRINT.php';
30
    }
31
32
    /**
33
     * @dataProvider providerACCRINTM
34
     */
35
    public function testACCRINTM()
36
    {
37
        $args = func_get_args();
38
        $expectedResult = array_pop($args);
39
        $result = call_user_func_array([Financial::class, 'ACCRINTM'], $args);
40
        $this->assertEquals($expectedResult, $result, null, 1E-8);
41
    }
42
43
    public function providerACCRINTM()
44
    {
45
        return require 'data/Calculation/Financial/ACCRINTM.php';
46
    }
47
48
    /**
49
     * @dataProvider providerAMORDEGRC
50
     */
51
    public function testAMORDEGRC()
52
    {
53
        $args = func_get_args();
54
        $expectedResult = array_pop($args);
55
        $result = call_user_func_array([Financial::class, 'AMORDEGRC'], $args);
56
        $this->assertEquals($expectedResult, $result, null, 1E-8);
57
    }
58
59
    public function providerAMORDEGRC()
60
    {
61
        return require 'data/Calculation/Financial/AMORDEGRC.php';
62
    }
63
64
    /**
65
     * @dataProvider providerAMORLINC
66
     */
67
    public function testAMORLINC()
68
    {
69
        $args = func_get_args();
70
        $expectedResult = array_pop($args);
71
        $result = call_user_func_array([Financial::class, 'AMORLINC'], $args);
72
        $this->assertEquals($expectedResult, $result, null, 1E-8);
73
    }
74
75
    public function providerAMORLINC()
76
    {
77
        return require 'data/Calculation/Financial/AMORLINC.php';
78
    }
79
80
    /**
81
     * @dataProvider providerCOUPDAYBS
82
     */
83
    public function testCOUPDAYBS()
84
    {
85
        $args = func_get_args();
86
        $expectedResult = array_pop($args);
87
        $result = call_user_func_array([Financial::class, 'COUPDAYBS'], $args);
88
        $this->assertEquals($expectedResult, $result, null, 1E-8);
89
    }
90
91
    public function providerCOUPDAYBS()
92
    {
93
        return require 'data/Calculation/Financial/COUPDAYBS.php';
94
    }
95
96
    /**
97
     * @dataProvider providerCOUPDAYS
98
     */
99
    public function testCOUPDAYS()
100
    {
101
        $args = func_get_args();
102
        $expectedResult = array_pop($args);
103
        $result = call_user_func_array([Financial::class, 'COUPDAYS'], $args);
104
        $this->assertEquals($expectedResult, $result, null, 1E-8);
105
    }
106
107
    public function providerCOUPDAYS()
108
    {
109
        return require 'data/Calculation/Financial/COUPDAYS.php';
110
    }
111
112
    /**
113
     * @dataProvider providerCOUPDAYSNC
114
     */
115
    public function testCOUPDAYSNC()
116
    {
117
        $args = func_get_args();
118
        $expectedResult = array_pop($args);
119
        $result = call_user_func_array([Financial::class, 'COUPDAYSNC'], $args);
120
        $this->assertEquals($expectedResult, $result, null, 1E-8);
121
    }
122
123
    public function providerCOUPDAYSNC()
124
    {
125
        return require 'data/Calculation/Financial/COUPDAYSNC.php';
126
    }
127
128
    /**
129
     * @dataProvider providerCOUPNCD
130
     */
131
    public function testCOUPNCD()
132
    {
133
        $args = func_get_args();
134
        $expectedResult = array_pop($args);
135
        $result = call_user_func_array([Financial::class, 'COUPNCD'], $args);
136
        $this->assertEquals($expectedResult, $result, null, 1E-8);
137
    }
138
139
    public function providerCOUPNCD()
140
    {
141
        return require 'data/Calculation/Financial/COUPNCD.php';
142
    }
143
144
    /**
145
     * @dataProvider providerCOUPNUM
146
     */
147
    public function testCOUPNUM()
148
    {
149
        $args = func_get_args();
150
        $expectedResult = array_pop($args);
151
        $result = call_user_func_array([Financial::class, 'COUPNUM'], $args);
152
        $this->assertEquals($expectedResult, $result, null, 1E-8);
153
    }
154
155
    public function providerCOUPNUM()
156
    {
157
        return require 'data/Calculation/Financial/COUPNUM.php';
158
    }
159
160
    /**
161
     * @dataProvider providerCOUPPCD
162
     */
163
    public function testCOUPPCD()
164
    {
165
        $args = func_get_args();
166
        $expectedResult = array_pop($args);
167
        $result = call_user_func_array([Financial::class, 'COUPPCD'], $args);
168
        $this->assertEquals($expectedResult, $result, null, 1E-8);
169
    }
170
171
    public function providerCOUPPCD()
172
    {
173
        return require 'data/Calculation/Financial/COUPPCD.php';
174
    }
175
176
    /**
177
     * @dataProvider providerCUMIPMT
178
     */
179
    public function testCUMIPMT()
180
    {
181
        $args = func_get_args();
182
        $expectedResult = array_pop($args);
183
        $result = call_user_func_array([Financial::class, 'CUMIPMT'], $args);
184
        $this->assertEquals($expectedResult, $result, null, 1E-8);
185
    }
186
187
    public function providerCUMIPMT()
188
    {
189
        return require 'data/Calculation/Financial/CUMIPMT.php';
190
    }
191
192
    /**
193
     * @dataProvider providerCUMPRINC
194
     */
195
    public function testCUMPRINC()
196
    {
197
        $args = func_get_args();
198
        $expectedResult = array_pop($args);
199
        $result = call_user_func_array([Financial::class, 'CUMPRINC'], $args);
200
        $this->assertEquals($expectedResult, $result, null, 1E-8);
201
    }
202
203
    public function providerCUMPRINC()
204
    {
205
        return require 'data/Calculation/Financial/CUMPRINC.php';
206
    }
207
208
    /**
209
     * @dataProvider providerDB
210
     */
211
    public function testDB()
212
    {
213
        $args = func_get_args();
214
        $expectedResult = array_pop($args);
215
        $result = call_user_func_array([Financial::class, 'DB'], $args);
216
        $this->assertEquals($expectedResult, $result, null, 1E-8);
217
    }
218
219
    public function providerDB()
220
    {
221
        return require 'data/Calculation/Financial/DB.php';
222
    }
223
224
    /**
225
     * @dataProvider providerDDB
226
     */
227
    public function testDDB()
228
    {
229
        $args = func_get_args();
230
        $expectedResult = array_pop($args);
231
        $result = call_user_func_array([Financial::class, 'DDB'], $args);
232
        $this->assertEquals($expectedResult, $result, null, 1E-8);
233
    }
234
235
    public function providerDDB()
236
    {
237
        return require 'data/Calculation/Financial/DDB.php';
238
    }
239
240
    /**
241
     * @dataProvider providerDISC
242
     */
243
    public function testDISC()
244
    {
245
        $args = func_get_args();
246
        $expectedResult = array_pop($args);
247
        $result = call_user_func_array([Financial::class, 'DISC'], $args);
248
        $this->assertEquals($expectedResult, $result, null, 1E-8);
249
    }
250
251
    public function providerDISC()
252
    {
253
        return require 'data/Calculation/Financial/DISC.php';
254
    }
255
256
    /**
257
     * @dataProvider providerDOLLARDE
258
     */
259
    public function testDOLLARDE()
260
    {
261
        $args = func_get_args();
262
        $expectedResult = array_pop($args);
263
        $result = call_user_func_array([Financial::class, 'DOLLARDE'], $args);
264
        $this->assertEquals($expectedResult, $result, null, 1E-8);
265
    }
266
267
    public function providerDOLLARDE()
268
    {
269
        return require 'data/Calculation/Financial/DOLLARDE.php';
270
    }
271
272
    /**
273
     * @dataProvider providerDOLLARFR
274
     */
275
    public function testDOLLARFR()
276
    {
277
        $args = func_get_args();
278
        $expectedResult = array_pop($args);
279
        $result = call_user_func_array([Financial::class, 'DOLLARFR'], $args);
280
        $this->assertEquals($expectedResult, $result, null, 1E-8);
281
    }
282
283
    public function providerDOLLARFR()
284
    {
285
        return require 'data/Calculation/Financial/DOLLARFR.php';
286
    }
287
288
    /**
289
     * @dataProvider providerEFFECT
290
     */
291
    public function testEFFECT()
292
    {
293
        $args = func_get_args();
294
        $expectedResult = array_pop($args);
295
        $result = call_user_func_array([Financial::class, 'EFFECT'], $args);
296
        $this->assertEquals($expectedResult, $result, null, 1E-8);
297
    }
298
299
    public function providerEFFECT()
300
    {
301
        return require 'data/Calculation/Financial/EFFECT.php';
302
    }
303
304
    /**
305
     * @dataProvider providerFV
306
     */
307
    public function testFV()
308
    {
309
        $args = func_get_args();
310
        $expectedResult = array_pop($args);
311
        $result = call_user_func_array([Financial::class, 'FV'], $args);
312
        $this->assertEquals($expectedResult, $result, null, 1E-8);
313
    }
314
315
    public function providerFV()
316
    {
317
        return require 'data/Calculation/Financial/FV.php';
318
    }
319
320
    /**
321
     * @dataProvider providerFVSCHEDULE
322
     */
323
    public function testFVSCHEDULE()
324
    {
325
        $args = func_get_args();
326
        $expectedResult = array_pop($args);
327
        $result = call_user_func_array([Financial::class, 'FVSCHEDULE'], $args);
328
        $this->assertEquals($expectedResult, $result, null, 1E-8);
329
    }
330
331
    public function providerFVSCHEDULE()
332
    {
333
        return require 'data/Calculation/Financial/FVSCHEDULE.php';
334
    }
335
336
    /**
337
     * @dataProvider providerINTRATE
338
     */
339
    public function testINTRATE()
340
    {
341
        $args = func_get_args();
342
        $expectedResult = array_pop($args);
343
        $result = call_user_func_array([Financial::class, 'INTRATE'], $args);
344
        $this->assertEquals($expectedResult, $result, null, 1E-8);
345
    }
346
347
    public function providerINTRATE()
348
    {
349
        return require 'data/Calculation/Financial/INTRATE.php';
350
    }
351
352
    /**
353
     * @dataProvider providerIPMT
354
     */
355
    public function testIPMT()
356
    {
357
        $args = func_get_args();
358
        $expectedResult = array_pop($args);
359
        $result = call_user_func_array([Financial::class, 'IPMT'], $args);
360
        $this->assertEquals($expectedResult, $result, null, 1E-8);
361
    }
362
363
    public function providerIPMT()
364
    {
365
        return require 'data/Calculation/Financial/IPMT.php';
366
    }
367
368
    /**
369
     * @dataProvider providerIRR
370
     */
371
    public function testIRR()
372
    {
373
        $args = func_get_args();
374
        $expectedResult = array_pop($args);
375
        $result = call_user_func_array([Financial::class, 'IRR'], $args);
376
        $this->assertEquals($expectedResult, $result, null, 1E-8);
377
    }
378
379
    public function providerIRR()
380
    {
381
        return require 'data/Calculation/Financial/IRR.php';
382
    }
383
384
    /**
385
     * @dataProvider providerISPMT
386
     */
387
    public function testISPMT()
388
    {
389
        $args = func_get_args();
390
        $expectedResult = array_pop($args);
391
        $result = call_user_func_array([Financial::class, 'ISPMT'], $args);
392
        $this->assertEquals($expectedResult, $result, null, 1E-8);
393
    }
394
395
    public function providerISPMT()
396
    {
397
        return require 'data/Calculation/Financial/ISPMT.php';
398
    }
399
400
    /**
401
     * @dataProvider providerMIRR
402
     */
403
    public function testMIRR()
404
    {
405
        $args = func_get_args();
406
        $expectedResult = array_pop($args);
407
        $result = call_user_func_array([Financial::class, 'MIRR'], $args);
408
        $this->assertEquals($expectedResult, $result, null, 1E-8);
409
    }
410
411
    public function providerMIRR()
412
    {
413
        return require 'data/Calculation/Financial/MIRR.php';
414
    }
415
416
    /**
417
     * @dataProvider providerNOMINAL
418
     */
419
    public function testNOMINAL()
420
    {
421
        $args = func_get_args();
422
        $expectedResult = array_pop($args);
423
        $result = call_user_func_array([Financial::class, 'NOMINAL'], $args);
424
        $this->assertEquals($expectedResult, $result, null, 1E-8);
425
    }
426
427
    public function providerNOMINAL()
428
    {
429
        return require 'data/Calculation/Financial/NOMINAL.php';
430
    }
431
432
    /**
433
     * @dataProvider providerNPER
434
     */
435
    public function testNPER()
436
    {
437
        $args = func_get_args();
438
        $expectedResult = array_pop($args);
439
        $result = call_user_func_array([Financial::class, 'NPER'], $args);
440
        $this->assertEquals($expectedResult, $result, null, 1E-8);
441
    }
442
443
    public function providerNPER()
444
    {
445
        return require 'data/Calculation/Financial/NPER.php';
446
    }
447
448
    /**
449
     * @dataProvider providerNPV
450
     */
451
    public function testNPV()
452
    {
453
        $args = func_get_args();
454
        $expectedResult = array_pop($args);
455
        $result = call_user_func_array([Financial::class, 'NPV'], $args);
456
        $this->assertEquals($expectedResult, $result, null, 1E-8);
457
    }
458
459
    public function providerNPV()
460
    {
461
        return require 'data/Calculation/Financial/NPV.php';
462
    }
463
464
    /**
465
     * @dataProvider providerPRICE
466
     * @group fail19
467
     */
468
    public function testPRICE()
469
    {
470
        $this->markTestIncomplete('TODO: This test should be fixed');
471
472
        $args = func_get_args();
473
        $expectedResult = array_pop($args);
474
        $result = call_user_func_array([Financial::class, 'PRICE'], $args);
475
        $this->assertEquals($expectedResult, $result, null, 1E-8);
476
    }
477
478
    public function providerPRICE()
479
    {
480
        return require 'data/Calculation/Financial/PRICE.php';
481
    }
482
483
    /**
484
     * @dataProvider providerRATE
485
     * @group fail19
486
     */
487
    public function testRATE()
488
    {
489
        $this->markTestIncomplete('TODO: This test should be fixed');
490
491
        $args = func_get_args();
492
        $expectedResult = array_pop($args);
493
        $result = call_user_func_array([Financial::class, 'RATE'], $args);
494
        $this->assertEquals($expectedResult, $result, null, 1E-8);
495
    }
496
497
    public function providerRATE()
498
    {
499
        return require 'data/Calculation/Financial/RATE.php';
500
    }
501
502
    /**
503
     * @dataProvider providerXIRR
504
     * @group fail19
505
     */
506
    public function testXIRR()
507
    {
508
        $this->markTestIncomplete('TODO: This test should be fixed');
509
510
        $args = func_get_args();
511
        $expectedResult = array_pop($args);
512
        $result = call_user_func_array([Financial::class, 'XIRR'], $args);
513
        $this->assertEquals($expectedResult, $result, null, 1E-8);
514
    }
515
516
    public function providerXIRR()
517
    {
518
        return require 'data/Calculation/Financial/XIRR.php';
519
    }
520
}
521