NotTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Logical;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
  4. use PhpOffice\PhpSpreadsheet\Calculation\Logical;
  5. use PHPUnit\Framework\TestCase;
  6. class NotTest extends TestCase
  7. {
  8. /**
  9. * @dataProvider providerNOT
  10. *
  11. * @param mixed $expectedResult
  12. */
  13. public function testNOT($expectedResult, ...$args): void
  14. {
  15. if (count($args) === 0) {
  16. $result = Logical::NOT();
  17. } else {
  18. $result = Logical::NOT($args[0]);
  19. }
  20. self::assertEquals($expectedResult, $result);
  21. }
  22. public function providerNOT(): array
  23. {
  24. return require 'tests/data/Calculation/Logical/NOT.php';
  25. }
  26. /**
  27. * @dataProvider providerNotArray
  28. */
  29. public function testNotArray(array $expectedResult, string $argument1): void
  30. {
  31. $calculation = Calculation::getInstance();
  32. $formula = "=NOT({$argument1})";
  33. $result = $calculation->_calculateFormulaValue($formula);
  34. self::assertEquals($expectedResult, $result);
  35. }
  36. public function providerNotArray(): array
  37. {
  38. return [
  39. 'vector' => [
  40. [[false, true, true, false]],
  41. '{TRUE, FALSE, FALSE, TRUE}',
  42. ],
  43. ];
  44. }
  45. }