def test_cache_sub(self): cdm = CachedDataManager(self.dm, MemoryStorage(), pd.datetime.now()) # get a single field for each sid for i, (sid, fld) in enumerate([('SID1', 'FLDA'), ('SID2', 'FLDB'), ('SID3', 'FLDC')]): res = cdm.get_attributes(sid, fld) pdtest.assert_frame_equal(res, self.dm.df.ix[sid:sid, fld:fld]) self.assertEquals(i+1, self.dm.access_cnt) # now force cache to make multiple requests to build entire frame sids = ['SID1', 'SID2', 'SID3'] flds = ['FLDA', 'FLDB', 'FLDC'] res = cdm.get_attributes(sids, flds) pdtest.assert_frame_equal(res, self.dm.df) # should be since each sid must be made whjole individually self.assertEquals(6, self.dm.access_cnt)
def test_cache_sub(self): cdm = CachedDataManager(self.dm, MemoryStorage(), pd.datetime.now()) # get a single field for each sid for i, (sid, fld) in enumerate([('SID1', 'FLDA'), ('SID2', 'FLDB'), ('SID3', 'FLDC')]): res = cdm.get_attributes(sid, fld) pdtest.assert_frame_equal(res, self.dm.df.ix[sid:sid, fld:fld]) self.assertEquals(i + 1, self.dm.access_cnt) # now force cache to make multiple requests to build entire frame sids = ['SID1', 'SID2', 'SID3'] flds = ['FLDA', 'FLDB', 'FLDC'] res = cdm.get_attributes(sids, flds) pdtest.assert_frame_equal(res, self.dm.df) # should be since each sid must be made whjole individually self.assertEquals(6, self.dm.access_cnt)
def _do_cache_test(self, storage): cdm = CachedDataManager(self.dm, storage, pd.datetime.now()) sids = ['SID1', 'SID2', 'SID3'] flds = ['FLDA', 'FLDB', 'FLDC'] res = cdm.get_attributes(sids, flds) pdtest.assert_frame_equal(res, self.dm.df) self.assertEquals(1, self.dm.access_cnt) # try when reordering sids = ['SID3', 'SID1', 'SID2'] flds = ['FLDB', 'FLDA', 'FLDC'] res = cdm.get_attributes(sids, flds) pdtest.assert_frame_equal(res, self.dm.df.ix[sids, flds]) self.assertEquals(1, self.dm.access_cnt) # miss the cache by setting an override which is none - this should not effect anything res = cdm.get_attributes(sids, flds, fake=None) pdtest.assert_frame_equal(res, self.dm.df.ix[sids, flds]) self.assertEquals(1, self.dm.access_cnt) # REAL cache miss res = cdm.get_attributes(sids, flds, fake='value') pdtest.assert_frame_equal(res, self.dm.df.ix[sids, flds]) self.assertEquals(2, self.dm.access_cnt)