LimitsTest.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace MathPHP\Tests\Probability\Distribution\Discrete;
  3. use MathPHP\Probability\Distribution\Discrete;
  4. class LimitsTest extends \PHPUnit\Framework\TestCase
  5. {
  6. /**
  7. * Limits should look like:
  8. * (a,b)
  9. * [a,b)
  10. * (a,b]
  11. * [a,b]
  12. */
  13. private function limitTest($limits)
  14. {
  15. foreach ($limits as $parameter => $limit) {
  16. $this->assertRegExp('/^ ([[(]) (.+) , (.+?) ([])]) $/x', $limit);
  17. }
  18. }
  19. /**
  20. * @test Limits constant is correct format
  21. */
  22. public function testBernoulliParameterLimits()
  23. {
  24. $this->limitTest(Discrete\Bernoulli::PARAMETER_LIMITS);
  25. }
  26. /**
  27. * @test Limits constant is correct format
  28. */
  29. public function testBernoulliSupportLimits()
  30. {
  31. $this->limitTest(Discrete\Bernoulli::SUPPORT_LIMITS);
  32. }
  33. /**
  34. * @test Limits constant is correct format
  35. */
  36. public function testBinomialParameterLimits()
  37. {
  38. $this->limitTest(Discrete\Binomial::PARAMETER_LIMITS);
  39. }
  40. /**
  41. * @test Limits constant is correct format
  42. */
  43. public function testBinomialSupportLimits()
  44. {
  45. $this->limitTest(Discrete\Binomial::SUPPORT_LIMITS);
  46. }
  47. /**
  48. * @test Limits constant is correct format
  49. */
  50. public function testGeometricParameterLimits()
  51. {
  52. $this->limitTest(Discrete\Geometric::PARAMETER_LIMITS);
  53. }
  54. /**
  55. * @test Limits constant is correct format
  56. */
  57. public function testGeometricSupportLimits()
  58. {
  59. $this->limitTest(Discrete\Geometric::SUPPORT_LIMITS);
  60. }
  61. /**
  62. * @test Limits constant is correct format
  63. */
  64. public function testShiftedGeometricLimits()
  65. {
  66. $this->limitTest(Discrete\ShiftedGeometric::PARAMETER_LIMITS);
  67. $this->limitTest(Discrete\ShiftedGeometric::SUPPORT_LIMITS);
  68. }
  69. /**
  70. * @test Limits constant is correct format
  71. */
  72. public function testNegativeBinomialLimits()
  73. {
  74. $this->limitTest(Discrete\NegativeBinomial::PARAMETER_LIMITS);
  75. $this->limitTest(Discrete\NegativeBinomial::SUPPORT_LIMITS);
  76. }
  77. /**
  78. * @test Limits constant is correct format
  79. */
  80. public function testPoissonLimits()
  81. {
  82. $this->limitTest(Discrete\Poisson::PARAMETER_LIMITS);
  83. $this->limitTest(Discrete\Poisson::SUPPORT_LIMITS);
  84. }
  85. }