MovedFunctionsTest.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\MathTrig;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Functions;
  4. use PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
  5. use PHPUnit\Framework\TestCase;
  6. // Sanity tests for functions which have been moved out of MathTrig
  7. // to their own classes. A deprecated version remains in MathTrig;
  8. // this class contains cursory tests to ensure that those work properly.
  9. // If Scrutinizer fails the PR because of these deprecations, I will
  10. // remove this class from the PR.
  11. class MovedFunctionsTest extends TestCase
  12. {
  13. public function testMovedFunctions(): void
  14. {
  15. self::assertSame(1, MathTrig::builtinABS(1));
  16. self::assertEqualsWithDelta(0, MathTrig::builtinACOS(1), 1E-9);
  17. self::assertEqualsWithDelta(0, MathTrig::builtinACOSH(1), 1E-9);
  18. self::assertEqualsWithDelta(3.04192400109863, MathTrig::ACOT(-10), 1E-9);
  19. self::assertEqualsWithDelta(-0.20273255405408, MathTrig::ACOTH(-5), 1E-9);
  20. self::assertSame(49, MathTrig::ARABIC('XLIX'));
  21. self::assertEqualsWithDelta(0, MathTrig::builtinASIN(0), 1E-9);
  22. self::assertEqualsWithDelta(0, MathTrig::builtinASINH(0), 1E-9);
  23. self::assertEqualsWithDelta(0, MathTrig::builtinATAN(0), 1E-9);
  24. self::assertEqualsWithDelta(0, MathTrig::builtinATANH(0), 1E-9);
  25. self::assertEqualsWithDelta('#DIV/0!', MathTrig::ATAN2(0, 0), 1E-9);
  26. self::assertEquals('12', MathTrig::BASE(10, 8));
  27. self::assertEquals(-6, MathTrig::CEILING(-4.5, -2));
  28. self::assertEquals(15, MathTrig::COMBIN(6, 2));
  29. self::assertEquals(1, MathTrig::builtinCOS(0));
  30. self::assertEquals(1, MathTrig::builtinCOSH(0));
  31. self::assertEquals('#DIV/0!', MathTrig::COT(0));
  32. self::assertEquals('#DIV/0!', MathTrig::COTH(0));
  33. self::assertEquals('#DIV/0!', MathTrig::CSC(0));
  34. self::assertEquals('#DIV/0!', MathTrig::CSCH(0));
  35. self::assertEquals(0, MathTrig::builtinDEGREES(0));
  36. self::assertEquals(6, MathTrig::EVEN(4.5));
  37. self::assertEquals(1, MathTrig::builtinEXP(0));
  38. self::assertEquals(6, MathTrig::FACT(3));
  39. self::assertEquals(105, MathTrig::FACTDOUBLE(7));
  40. self::assertEquals(-6, MathTrig::FLOOR(-4.5, 2));
  41. self::assertEquals(0.23, MathTrig::FLOORMATH(0.234, 0.01));
  42. self::assertEquals(-4, MathTrig::FLOORPRECISE(-2.5, 2));
  43. self::assertEquals(2, MathTrig::GCD(4, 6));
  44. self::assertEquals(-9, MathTrig::INT(-8.3));
  45. self::assertEquals(12, MathTrig::LCM(4, 6));
  46. self::assertEqualswithDelta(2.302585, MathTrig::builtinLN(10), 1E-6);
  47. self::assertEqualswithDelta(0.306762486567556, MathTrig::logBase(1.5, 3.75), 1E-6);
  48. self::assertEqualswithDelta(0.301030, MathTrig::builtinLOG10(2), 1E-6);
  49. self::assertEquals(1, MathTrig::MDETERM([1]));
  50. self::assertEquals(
  51. [[2, 2], [2, 1]],
  52. MathTrig::MINVERSE([[-0.5, 1.0], [1.0, -1.0]])
  53. );
  54. self::assertEquals(
  55. [[23], [53]],
  56. MathTrig::MMULT([[1, 2], [3, 4]], [[7], [8]])
  57. );
  58. self::assertEquals(1, MathTrig::MOD(5, 2));
  59. self::assertEquals(6, MathTrig::MROUND(7.3, 3));
  60. self::assertEquals(1, MathTrig::MULTINOMIAL(1));
  61. self::assertEquals(0, MathTrig::numberOrNan(0));
  62. self::assertEquals(5, MathTrig::ODD(4.5));
  63. self::assertEquals(8, MathTrig::POWER(2, 3));
  64. self::assertEquals(8, MathTrig::PRODUCT(1, 2, 4));
  65. self::assertEquals(8, MathTrig::QUOTIENT(17, 2));
  66. self::assertEquals(0, MathTrig::builtinRADIANS(0));
  67. self::assertGreaterThanOrEqual(0, MATHTRIG::RAND());
  68. self::assertEquals('I', MathTrig::ROMAN(1));
  69. self::assertEquals(3.3, MathTrig::builtinROUND(3.27, 1));
  70. self::assertEquals(662, MathTrig::ROUNDDOWN(662.79, 0));
  71. self::assertEquals(663, MathTrig::ROUNDUP(662.79, 0));
  72. self::assertEquals(1, MathTrig::SEC(0));
  73. self::assertEquals(1, MathTrig::SECH(0));
  74. self::assertEquals(3780, MathTrig::SERIESSUM(5, 1, 1, [1, 1, 0, 1, 1]));
  75. self::assertEquals(1, MathTrig::SIGN(79.2));
  76. self::assertEquals(0, MathTrig::builtinSIN(0));
  77. self::assertEquals(0, MathTrig::builtinSINH(0));
  78. self::assertEquals(0, MathTrig::builtinSQRT(0));
  79. self::assertEqualswithDelta(3.54490770181103, MathTrig::SQRTPI(4), 1E-6);
  80. self::assertEquals(0, MathTrig::SUBTOTAL(2, [0, 0]));
  81. self::assertEquals(7, MathTrig::SUM(1, 2, 4));
  82. self::assertEquals(4, MathTrig::SUMIF([[2], [4]], '>2'));
  83. self::assertEquals(2, MathTrig::SUMIFS(
  84. [[1], [1], [1]],
  85. [['Y'], ['Y'], ['N']],
  86. '=Y',
  87. [['H'], ['H'], ['H']],
  88. '=H'
  89. ));
  90. self::assertEquals(17, MathTrig::SUMPRODUCT([1, 2, 3], [5, 0, 4]));
  91. self::assertEquals(21, MathTrig::SUMSQ(1, 2, 4));
  92. self::assertEquals(-20, MathTrig::SUMX2MY2([1, 2], [3, 4]));
  93. self::assertEquals(30, MathTrig::SUMX2PY2([1, 2], [3, 4]));
  94. self::assertEquals(8, MathTrig::SUMXMY2([1, 2], [3, 4]));
  95. self::assertEquals(0, MathTrig::builtinTAN(0));
  96. self::assertEquals(0, MathTrig::builtinTANH(0));
  97. self::assertEquals(70, MathTrig::TRUNC(79.2, -1));
  98. self::assertEquals(1, MathTrig::returnSign(79.2));
  99. self::assertEquals(80, MathTrig::getEven(79.2));
  100. $nullVal = null;
  101. MathTrig::nullFalseTrueToNumber($nullVal);
  102. self::assertSame(0, $nullVal);
  103. $nullVal = true;
  104. MathTrig::nullFalseTrueToNumber($nullVal);
  105. self::assertSame(1, $nullVal);
  106. }
  107. }