def test_cvf_nomasked(self):
     (mdeaths, fdeaths) = (self.mdeaths, self.fdeaths)
     cvfm = cvf(mdeaths, mdeaths)
     assert_almost_equal(avf(mdeaths), cvfm)
     cvfmf = cvf(mdeaths, fdeaths)
     assert_almost_equal(cvfmf[:16].round(), [
         74941, 56473, 27961, -820, -29395, -47777, -52855, -46871, -29427,
         -1390, 30090, 50403, 55378, 49061, 27739, -260
     ])
     assert_almost_equal(cvfmf[-15:].round(), [
         1156,
         28067,
         47243,
         54365,
         47740,
         26100,
         -1883,
         -29299,
         -46964,
         -52031,
         -46368,
         -26827,
         1517,
         31105,
         57137,
     ])
 def test_avf_masked(self):
     presidents = ma.fix_invalid(self.presidents)
     # periodogram : True
     avfp = avf(presidents)
     assert_almost_equal(avfp[:21].round(2),
                         [241.74,185.75,159.63,116.92, 95.91, 60.36, 45.69,
                           34.97, 31.74, 10.91,  7.48,  1.32, 11.70,  7.71,
                           13.57,  4.16, -1.05, -9.76,-11.24,-15.67,-12.32])
     # preiodogram : False
     avfp = avf(presidents,0)
     pz = presidents.anom()
     mz = (~pz.mask).astype(int)
     assert_almost_equal(avfp[:21],
                         np.r_[[pz.var()],
                               [(pz[k:]*pz[:-k]).sum()/(mz[k:]*mz[:-k]).sum()
                                for k in range(1,21)]])
 def test_avf_masked(self):
     presidents = ma.fix_invalid(self.presidents)
     # periodogram : True
     avfp = avf(presidents)
     assert_almost_equal(avfp[:21].round(2), [
         241.74, 185.75, 159.63, 116.92, 95.91, 60.36, 45.69, 34.97, 31.74,
         10.91, 7.48, 1.32, 11.70, 7.71, 13.57, 4.16, -1.05, -9.76, -11.24,
         -15.67, -12.32
     ])
     # preiodogram : False
     avfp = avf(presidents, 0)
     pz = presidents.anom()
     mz = (~pz.mask).astype(int)
     assert_almost_equal(
         avfp[:21],
         np.r_[[pz.var()],
               [(pz[k:] * pz[:-k]).sum() / (mz[k:] * mz[:-k]).sum()
                for k in range(1, 21)]])
 def test_avf_nomasked(self):
     "Tests avf - no masked values"
     n = 100
     x = np.random.rand(n)
     x = x - x.mean()
     # periodogram = True
     avfx = avf(x)
     assert_almost_equal(avfx[0], x.var(ddof=0))
     assert_almost_equal(avfx[:n],
                         np.r_[float(x.var()),
                               np.fromiter(((x[k:]*x[:-k]).sum()/n
                                            for k in range(1,n)), float)])
     # periodogram = False
     avfx = avf(x,False)
     assert_almost_equal(avfx[0], x.var(ddof=0))
     assert_almost_equal(avfx[:n],
                         np.r_[float(x.var()),
                               np.fromiter(((x[k:]*x[:-k]).mean()
                                            for k in range(1,n)), float)])
 def test_avf_nomasked(self):
     "Tests avf - no masked values"
     n = 100
     x = np.random.rand(n)
     x = x - x.mean()
     # periodogram = True
     avfx = avf(x)
     assert_almost_equal(avfx[0], x.var(ddof=0))
     assert_almost_equal(
         avfx[:n], np.r_[float(x.var()),
                         np.fromiter(((x[k:] * x[:-k]).sum() / n
                                      for k in range(1, n)), float)])
     # periodogram = False
     avfx = avf(x, False)
     assert_almost_equal(avfx[0], x.var(ddof=0))
     assert_almost_equal(
         avfx[:n],
         np.r_[float(x.var()),
               np.fromiter(
                   ((x[k:] * x[:-k]).mean() for k in range(1, n)), float)])
 def test_cvf_nomasked(self):
     (mdeaths, fdeaths) = (self.mdeaths, self.fdeaths)
     cvfm = cvf(mdeaths,mdeaths)
     assert_almost_equal(avf(mdeaths), cvfm)
     cvfmf = cvf(mdeaths,fdeaths)
     assert_almost_equal(cvfmf[:16].round(),
                         [ 74941, 56473, 27961, -820,-29395,-47777,-52855,
                          -46871,-29427, -1390, 30090, 50403,55378, 49061,
                          27739,-260])
     assert_almost_equal(cvfmf[-15:].round(),
                         [  1156, 28067, 47243, 54365, 47740, 26100, -1883,
                          -29299,-46964,-52031,-46368,-26827,  1517, 31105,
                           57137,])