test_pdtr.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import numpy as np
  2. import scipy.special as sc
  3. from numpy.testing import assert_almost_equal, assert_array_equal
  4. class TestPdtr:
  5. def test(self):
  6. val = sc.pdtr(0, 1)
  7. assert_almost_equal(val, np.exp(-1))
  8. def test_m_zero(self):
  9. val = sc.pdtr([0, 1, 2], 0)
  10. assert_array_equal(val, [1, 1, 1])
  11. def test_rounding(self):
  12. double_val = sc.pdtr([0.1, 1.1, 2.1], 1.0)
  13. int_val = sc.pdtr([0, 1, 2], 1.0)
  14. assert_array_equal(double_val, int_val)
  15. def test_inf(self):
  16. val = sc.pdtr(np.inf, 1.0)
  17. assert_almost_equal(val, 1.0)
  18. def test_domain(self):
  19. val = sc.pdtr(-1.1, 1.0)
  20. assert np.isnan(val)
  21. class TestPdtrc:
  22. def test_value(self):
  23. val = sc.pdtrc(0, 1)
  24. assert_almost_equal(val, 1 - np.exp(-1))
  25. def test_m_zero(self):
  26. val = sc.pdtrc([0, 1, 2], 0.0)
  27. assert_array_equal(val, [0, 0, 0])
  28. def test_rounding(self):
  29. double_val = sc.pdtrc([0.1, 1.1, 2.1], 1.0)
  30. int_val = sc.pdtrc([0, 1, 2], 1.0)
  31. assert_array_equal(double_val, int_val)
  32. def test_inf(self):
  33. val = sc.pdtrc(np.inf, 1.0)
  34. assert_almost_equal(val, 0.0)
  35. def test_domain(self):
  36. val = sc.pdtrc(-1.1, 1.0)
  37. assert np.isnan(val)