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,])