NullEqualsZeroTest.php 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PHPUnit\Framework\TestCase;
  5. class NullEqualsZeroTest extends TestCase
  6. {
  7. public function testNullEqualsZero(): void
  8. {
  9. // Confirm that NULL<>0 returns false
  10. $spreadsheet = new Spreadsheet();
  11. $sheet = $spreadsheet->getActiveSheet();
  12. $sheet->fromArray([
  13. ['Item', 'QTY', 'RATE', 'RATE', 'Total'],
  14. ['Bricks', 1000, 'Each', 0.55, '=IF(B2<>0,B2*D2,"INCL.")'],
  15. ['Cement', null, null, null, '=IF(B3<>0,B3*D3,"INCL.")'],
  16. ['Labour', 10, 'Hour', 45.00, '=IF(B4<>0,B4*D4,"INCL.")'],
  17. ]);
  18. $sheet->setCellValue('A6', 'Total');
  19. $sheet->setCellValue('E6', '=SUM(E1:E5)');
  20. self::assertEquals(550.00, $sheet->getCell('E2')->getCalculatedValue());
  21. self::assertSame('INCL.', $sheet->getCell('E3')->getCalculatedValue());
  22. self::assertEquals(450.00, $sheet->getCell('E4')->getCalculatedValue());
  23. self::assertEquals(1000.00, $sheet->getCell('E6')->getCalculatedValue());
  24. $sheet->setCellValue('Z1', '=Z2=0');
  25. self::assertTrue($sheet->getCell('Z1')->getCalculatedValue());
  26. $spreadsheet->disconnectWorksheets();
  27. }
  28. }