Passed
Push — master ( 955217...cf30c2 )
by Adrien
27:35 queued 19:31
created

testIntyFloatsRetainedByWriter()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 9
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 14
rs 9.9666
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx;
4
5
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as Reader;
6
use PhpOffice\PhpSpreadsheet\Settings;
7
use PhpOffice\PhpSpreadsheet\Shared\File;
8
use PhpOffice\PhpSpreadsheet\Spreadsheet;
9
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as Writer;
10
use PHPUnit\Framework\TestCase;
11
12
class FloatsRetainedTest extends TestCase
13
{
14
    /**
15
     * @dataProvider providerIntyFloatsRetainedByWriter
16
     *
17
     * @param float|int $value
18
     */
19
    public function testIntyFloatsRetainedByWriter($value)
20
    {
21
        $outputFilename = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test');
22
        Settings::setLibXmlLoaderOptions(null);
23
        $sheet = new Spreadsheet();
24
        $sheet->getActiveSheet()->getCell('A1')->setValue($value);
25
26
        $writer = new Writer($sheet);
27
        $writer->save($outputFilename);
28
29
        $reader = new Reader();
30
        $sheet = $reader->load($outputFilename);
31
32
        $this->assertSame($value, $sheet->getActiveSheet()->getCell('A1')->getValue());
33
    }
34
35
    public function providerIntyFloatsRetainedByWriter()
36
    {
37
        return [
38
            [-1.0],
39
            [-1],
40
            [0.0],
41
            [0],
42
            [1.0],
43
            [1],
44
            [1e-3],
45
            [1.3e-10],
46
            [1e10],
47
            [3.00000000000000000001],
48
            [99999999999999999],
49
            [99999999999999999.0],
50
            [999999999999999999999999999999999999999999],
51
            [999999999999999999999999999999999999999999.0],
52
        ];
53
    }
54
}
55