| 
									
										
										
										
											2019-11-25 16:00:15 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Reader\Xlsx as Reader; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Settings; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Shared\File; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Spreadsheet; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Writer\Xlsx as Writer; | 
					
						
							|  |  |  | use PHPUnit\Framework\TestCase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FloatsRetainedTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider providerIntyFloatsRetainedByWriter | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param float|int $value | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2020-05-18 04:49:57 +00:00
										 |  |  |     public function testIntyFloatsRetainedByWriter($value): void | 
					
						
							| 
									
										
										
										
											2019-11-25 16:00:15 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         $outputFilename = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test'); | 
					
						
							|  |  |  |         Settings::setLibXmlLoaderOptions(null); | 
					
						
							|  |  |  |         $sheet = new Spreadsheet(); | 
					
						
							|  |  |  |         $sheet->getActiveSheet()->getCell('A1')->setValue($value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $writer = new Writer($sheet); | 
					
						
							|  |  |  |         $writer->save($outputFilename); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $reader = new Reader(); | 
					
						
							|  |  |  |         $sheet = $reader->load($outputFilename); | 
					
						
							| 
									
										
										
										
											2020-05-24 11:03:07 +00:00
										 |  |  |         unlink($outputFilename); | 
					
						
							| 
									
										
										
										
											2019-11-25 16:00:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 04:49:57 +00:00
										 |  |  |         self::assertSame($value, $sheet->getActiveSheet()->getCell('A1')->getValue()); | 
					
						
							| 
									
										
										
										
											2019-11-25 16:00:15 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function providerIntyFloatsRetainedByWriter() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return [ | 
					
						
							|  |  |  |             [-1.0], | 
					
						
							|  |  |  |             [-1], | 
					
						
							|  |  |  |             [0.0], | 
					
						
							|  |  |  |             [0], | 
					
						
							|  |  |  |             [1.0], | 
					
						
							|  |  |  |             [1], | 
					
						
							|  |  |  |             [1e-3], | 
					
						
							|  |  |  |             [1.3e-10], | 
					
						
							|  |  |  |             [1e10], | 
					
						
							|  |  |  |             [3.00000000000000000001], | 
					
						
							|  |  |  |             [99999999999999999], | 
					
						
							|  |  |  |             [99999999999999999.0], | 
					
						
							|  |  |  |             [999999999999999999999999999999999999999999], | 
					
						
							|  |  |  |             [999999999999999999999999999999999999999999.0], | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |