def test_run_many_merge_moves_trueModel_random(self):
   LP, SS = self.getSuffStatsPrepForMerge(self.hmodel)
   PRNG = np.random.RandomState(0)
   mergeKwArgs = dict(mergename='random')
   a, b, c, MTracker = MergeMove.run_many_merge_moves(self.hmodel, 
                              self.Data, SS,
                              nMergeTrials=100, randstate=PRNG,
                              **mergeKwArgs)
   assert MTracker.nTrial == SS.K * (SS.K-1)/2
   assert MTracker.nSuccess == 0
 def test_run_many_merge_moves_removes_duplicates(self):
   ''' Verify run_many_merge_moves method on duplicated model
        produces a new model with K=Ktrue components (duplicates gone)
   '''
   PRNG = np.random.RandomState(12345)
   newModel, newSS, ev, MTracker = MergeMove.run_many_merge_moves(
                   self.dupModel, self.Data, self.dupSS, nMergeTrials=6,
                   randstate=PRNG)
   assert newSS.K == self.SS.K
   assert newModel.allocModel.K == self.SS.K
   assert newModel.obsModel.K == self.SS.K
예제 #3
0
 def test_run_many_merge_moves_trueModel_random(self):
     LP, SS = self.getSuffStatsPrepForMerge(self.hmodel)
     PRNG = np.random.RandomState(0)
     mergeKwArgs = dict(mergename='random')
     a, b, c, MTracker = MergeMove.run_many_merge_moves(self.hmodel,
                                                        self.Data,
                                                        SS,
                                                        nMergeTrials=100,
                                                        randstate=PRNG,
                                                        **mergeKwArgs)
     assert MTracker.nTrial == SS.K * (SS.K - 1) / 2
     assert MTracker.nSuccess == 0
예제 #4
0
 def test_run_many_merge_moves_changes_nothing_on_true_model(self):
     ''' Verify run_many_merge_moves method on true model
      produces a new model with K=Ktrue components (no merges accepted)
 '''
     PRNG = np.random.RandomState(12345)
     newModel, newSS, ev, MTracker = MergeMove.run_many_merge_moves(
         self.hmodel, self.Data, self.SS, nMergeTrials=100, randstate=PRNG)
     assert newSS.K == self.SS.K
     assert newModel.allocModel.K == self.SS.K
     assert newModel.obsModel.K == self.SS.K
     assert MTracker.nSuccess == 0
     K = self.SS.K
     assert MTracker.nTrial == K * (K - 1) / 2
 def test_run_many_merge_moves_dupModel_random(self):
   self.MakeModelWithDuplicatedComps()
   LP, SS = self.getSuffStatsPrepForMerge(self.dupModel)
   PRNG = np.random.RandomState(0)
   mergeKwArgs = dict(mergename='random')
   a, b, c, MTracker = MergeMove.run_many_merge_moves(self.dupModel, 
                              self.Data, SS,
                              nMergeTrials=100, randstate=PRNG,
                              **mergeKwArgs)
   assert MTracker.nSuccess == 4
   assert (0,4) in MTracker.acceptedOrigIDs
   assert (1,5) in MTracker.acceptedOrigIDs
   assert (2,6) in MTracker.acceptedOrigIDs
   assert (3,7) in MTracker.acceptedOrigIDs
예제 #6
0
 def test_run_many_merge_moves_removes_duplicates(self):
     ''' Verify run_many_merge_moves method on duplicated model
      produces a new model with K=Ktrue components (duplicates gone)
 '''
     PRNG = np.random.RandomState(12345)
     newModel, newSS, ev, MTracker = MergeMove.run_many_merge_moves(
         self.dupModel,
         self.Data,
         self.dupSS,
         nMergeTrials=6,
         randstate=PRNG)
     assert newSS.K == self.SS.K
     assert newModel.allocModel.K == self.SS.K
     assert newModel.obsModel.K == self.SS.K
 def test_run_many_merge_moves_changes_nothing_on_true_model(self):
   ''' Verify run_many_merge_moves method on true model
        produces a new model with K=Ktrue components (no merges accepted)
   '''
   PRNG = np.random.RandomState(12345)
   newModel, newSS, ev, MTracker = MergeMove.run_many_merge_moves(
                   self.hmodel, self.Data, self.SS, nMergeTrials=100,
                   randstate=PRNG)
   assert newSS.K == self.SS.K
   assert newModel.allocModel.K == self.SS.K
   assert newModel.obsModel.K == self.SS.K
   assert MTracker.nSuccess == 0
   K = self.SS.K
   assert MTracker.nTrial == K * (K-1)/2
예제 #8
0
 def test_run_many_merge_moves_dupModel_random(self):
     self.MakeModelWithDuplicatedComps()
     LP, SS = self.getSuffStatsPrepForMerge(self.dupModel)
     PRNG = np.random.RandomState(0)
     mergeKwArgs = dict(mergename='random')
     a, b, c, MTracker = MergeMove.run_many_merge_moves(self.dupModel,
                                                        self.Data,
                                                        SS,
                                                        nMergeTrials=100,
                                                        randstate=PRNG,
                                                        **mergeKwArgs)
     assert MTracker.nSuccess == 4
     assert (0, 4) in MTracker.acceptedOrigIDs
     assert (1, 5) in MTracker.acceptedOrigIDs
     assert (2, 6) in MTracker.acceptedOrigIDs
     assert (3, 7) in MTracker.acceptedOrigIDs