PageRenderTime 50ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/pandas/stats/tests/test_math.py

http://github.com/pydata/pandas
Python | 67 lines | 51 code | 16 blank | 0 comment | 6 complexity | e1400d2b0c98be4597273ebfac487a8a MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0
  1. import nose
  2. from datetime import datetime
  3. from numpy.random import randn
  4. import numpy as np
  5. from pandas.core.api import Series, DataFrame, date_range
  6. from pandas.util.testing import assert_almost_equal
  7. import pandas.core.datetools as datetools
  8. import pandas.stats.moments as mom
  9. import pandas.util.testing as tm
  10. import pandas.stats.math as pmath
  11. import pandas.tests.test_series as ts
  12. from pandas import ols
  13. N, K = 100, 10
  14. _have_statsmodels = True
  15. try:
  16. import statsmodels.api as sm
  17. except ImportError:
  18. try:
  19. import scikits.statsmodels.api as sm
  20. except ImportError:
  21. _have_statsmodels = False
  22. class TestMath(tm.TestCase):
  23. _nan_locs = np.arange(20, 40)
  24. _inf_locs = np.array([])
  25. def setUp(self):
  26. arr = randn(N)
  27. arr[self._nan_locs] = np.NaN
  28. self.arr = arr
  29. self.rng = date_range(datetime(2009, 1, 1), periods=N)
  30. self.series = Series(arr.copy(), index=self.rng)
  31. self.frame = DataFrame(randn(N, K), index=self.rng,
  32. columns=np.arange(K))
  33. def test_rank_1d(self):
  34. self.assertEqual(1, pmath.rank(self.series))
  35. self.assertEqual(0, pmath.rank(Series(0, self.series.index)))
  36. def test_solve_rect(self):
  37. if not _have_statsmodels:
  38. raise nose.SkipTest("no statsmodels")
  39. b = Series(np.random.randn(N), self.frame.index)
  40. result = pmath.solve(self.frame, b)
  41. expected = ols(y=b, x=self.frame, intercept=False).beta
  42. self.assertTrue(np.allclose(result, expected))
  43. def test_inv_illformed(self):
  44. singular = DataFrame(np.array([[1, 1], [2, 2]]))
  45. rs = pmath.inv(singular)
  46. expected = np.array([[0.1, 0.2], [0.1, 0.2]])
  47. self.assertTrue(np.allclose(rs, expected))
  48. if __name__ == '__main__':
  49. import nose
  50. nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
  51. exit=False)