def test_structure_local_side(self): print "====================================" print "simple local-side test of structures" print "====================================" rw_lock = ReadWriteLock() #: :type: FeatureMemory fm = FeatureMemory(self.id_vec, self.bg_ids, self.feature_mat, self.dk_mat, rw_lock) rw2 = fm.get_lock() print "FM lock type:", type(rw2) rw_lock.acquireRead() rw2.releaseRead() print type(rw2.read_lock()) with rw2.read_lock(): #: :type: DistanceKernel dk = fm.get_distance_kernel() print type(dk.row_id_map()) with SimpleTimer("Getting kernel shape via attribute"): _ = dk.get_kernel_matrix().shape with SimpleTimer("Getting kernel shape via copy"): _ = dk.get_kernel_matrix()[:].shape
def test_feature_updating_local(self): print "=====================================" print "Feature updating with local variables" print "=====================================" print "Type of imported SimpleTimer:", type(SimpleTimer) rw_lock = ReadWriteLock() #: :type: FeatureMemory fm = FeatureMemory(self.id_vec, self.bg_ids, self.feature_mat, self.dk_mat, rw_lock) self._update_test_helper(fm)
def test_feature_updating_existing(self): print "===============================" print "Feature updating - existing CID" print "===============================" print "( should fail, not implemented yet )" fm = FeatureMemory(self.id_vec, self.bg_ids, self.feature_mat, self.dk_mat) # new feature info new_id = 0 new_feature = np.random.random((self.M,)) is_bg = True # # Pre-condition checks # rw_lock = fm.get_lock() # get the distance kernel reference to check later that it mirrors # changes made in parent structure. print 'getting dist kernel container' dk = fm.get_distance_kernel() rw_lock.acquireRead() assert new_id in fm.get_ids() assert dk.is_symmetric() assert new_id in dk.row_id_map() assert new_id in dk.col_id_map() assert new_id in dk.get_background_ids() rw_lock.releaseRead() # # The update call # try: fm.update(new_id, new_feature, is_bg) except NotImplementedError, ex: pass