From 9893926ff90a5475a7e2c87b1f6480342d5b688e Mon Sep 17 00:00:00 2001 From: oleibman <10341515+oleibman@users.noreply.github.com> Date: Sat, 19 Feb 2022 13:12:44 -0800 Subject: [PATCH] Add Test For NULL=0 (#2607) Fix #2523. This isn't actually a fix; the problem was reported and confirmed for 1.21, but had already been fixed in master (and remains fixed in 1.22). This PR just adds a unit test for the original problem. --- .../Calculation/NullEqualsZeroTest.php | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/PhpSpreadsheetTests/Calculation/NullEqualsZeroTest.php diff --git a/tests/PhpSpreadsheetTests/Calculation/NullEqualsZeroTest.php b/tests/PhpSpreadsheetTests/Calculation/NullEqualsZeroTest.php new file mode 100644 index 00000000..0168e080 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Calculation/NullEqualsZeroTest.php @@ -0,0 +1,32 @@ +0 returns false + $spreadsheet = new Spreadsheet(); + $sheet = $spreadsheet->getActiveSheet(); + $sheet->fromArray([ + ['Item', 'QTY', 'RATE', 'RATE', 'Total'], + ['Bricks', 1000, 'Each', 0.55, '=IF(B2<>0,B2*D2,"INCL.")'], + ['Cement', null, null, null, '=IF(B3<>0,B3*D3,"INCL.")'], + ['Labour', 10, 'Hour', 45.00, '=IF(B4<>0,B4*D4,"INCL.")'], + ]); + $sheet->setCellValue('A6', 'Total'); + $sheet->setCellValue('E6', '=SUM(E1:E5)'); + self::assertEquals(550.00, $sheet->getCell('E2')->getCalculatedValue()); + self::assertSame('INCL.', $sheet->getCell('E3')->getCalculatedValue()); + self::assertEquals(450.00, $sheet->getCell('E4')->getCalculatedValue()); + self::assertEquals(1000.00, $sheet->getCell('E6')->getCalculatedValue()); + + $sheet->setCellValue('Z1', '=Z2=0'); + self::assertTrue($sheet->getCell('Z1')->getCalculatedValue()); + $spreadsheet->disconnectWorksheets(); + } +}