Example #1
0
    def test_select_merge_components_random_raisesError(self):
        ''' Verify that when comp 0 is excluded with K=3
          we cannot provide comp 0 as kA, [error is raised]
          AND
          in free choice, we only choose kA=1, kB=2
    '''
        MT = MergeTracker(3)
        MSelector = MergePairSelector()

        MT.excludeList = set([0])
        MT._synchronize_and_verify()
        for trial in range(10):
            kA, kB = MSelector.select_merge_components(None,
                                                       None,
                                                       MT,
                                                       kA=1,
                                                       mergename='random')
            assert kA == 1
            assert kB == 2
        for trial in range(10):
            kA, kB = MSelector.select_merge_components(None,
                                                       None,
                                                       MT,
                                                       kA=2,
                                                       mergename='random')
            assert kA == 1
            assert kB == 2
        with self.assertRaises(AssertionError):
            kA, kB = MSelector.select_merge_components(None,
                                                       None,
                                                       MT,
                                                       mergename='random',
                                                       kA=0)
  def test_select_merge_components_random_raisesErrorAllButOneExcluded(self):
    ''' Verify that when comps 0,1 are excluded with K=3
          we cannot provide comp 2 as kA, [error is raised]
    '''
    MT = MergeTracker(3)
    MSelector = MergePairSelector()

    MT.excludeList = set([1, 0])
    MT._synchronize_and_verify()
    with self.assertRaises(AssertionError):
      kA, kB = MSelector.select_merge_components(None, None, MT, mergename='random', kA=2)
Example #3
0
    def test_select_merge_components_random_raisesErrorAllButOneExcluded(self):
        ''' Verify that when comps 0,1 are excluded with K=3
          we cannot provide comp 2 as kA, [error is raised]
    '''
        MT = MergeTracker(3)
        MSelector = MergePairSelector()

        MT.excludeList = set([1, 0])
        MT._synchronize_and_verify()
        with self.assertRaises(AssertionError):
            kA, kB = MSelector.select_merge_components(None,
                                                       None,
                                                       MT,
                                                       mergename='random',
                                                       kA=2)
 def test_select_merge_components_random(self):
   ''' Verify that under random choices, we select among 3 components
         equally often
   '''
   MT = MergeTracker(3)
   MSelector = MergePairSelector()
   counts = np.zeros(3)
   for trial in range(1000):
     kA, kB = MSelector.select_merge_components(None, None, MT, mergename='random')
     counts[kA] += 1
     counts[kB] += 1
   counts /= np.sum(counts)
   minFrac = 0.25
   maxFrac = 0.4
   # Uniform at random means fraction of choice should be ~1/3 for each
   assert np.all(counts > minFrac)
   assert np.all(counts < maxFrac)
Example #5
0
    def test_reindexAfterMerge(self):
        MSelector = MergePairSelector()
        MSelector.MScores[0] = 5
        MSelector.MScores[3] = 5
        MSelector.MScores[4] = 5
        MSelector.PairMScores[(0, 1)] = 5
        MSelector.PairMScores[(3, 4)] = 5
        MSelector.PairMScores[(5, 6)] = 5

        MSelector.reindexAfterMerge(2, 3)

        assert MSelector.MScores[0] == 5
        assert MSelector.MScores[3] == 5
        assert 2 not in MSelector.MScores

        assert len(MSelector.PairMScores.keys()) == 2
        assert (0, 1) in MSelector.PairMScores
        assert (4, 5) in MSelector.PairMScores
        assert (2, 3) not in MSelector.PairMScores
Example #6
0
 def test_select_merge_components_random(self):
     ''' Verify that under random choices, we select among 3 components
       equally often
 '''
     MT = MergeTracker(3)
     MSelector = MergePairSelector()
     counts = np.zeros(3)
     for trial in range(1000):
         kA, kB = MSelector.select_merge_components(None,
                                                    None,
                                                    MT,
                                                    mergename='random')
         counts[kA] += 1
         counts[kB] += 1
     counts /= np.sum(counts)
     minFrac = 0.25
     maxFrac = 0.4
     # Uniform at random means fraction of choice should be ~1/3 for each
     assert np.all(counts > minFrac)
     assert np.all(counts < maxFrac)
  def test_select_merge_components_random_raisesError(self):
    ''' Verify that when comp 0 is excluded with K=3
          we cannot provide comp 0 as kA, [error is raised]
          AND
          in free choice, we only choose kA=1, kB=2
    '''
    MT = MergeTracker(3)
    MSelector = MergePairSelector()

    MT.excludeList = set([0])
    MT._synchronize_and_verify()
    for trial in range(10):
      kA, kB = MSelector.select_merge_components(None, None, MT, kA=1, mergename='random')
      assert kA == 1
      assert kB == 2
    for trial in range(10):
      kA, kB = MSelector.select_merge_components(None, None, MT, kA=2, mergename='random')
      assert kA == 1
      assert kB == 2
    with self.assertRaises(AssertionError):
      kA, kB = MSelector.select_merge_components(None, None, MT, mergename='random', kA=0)
  def test_reindexAfterMerge(self):
    MSelector = MergePairSelector()
    MSelector.MScores[0] = 5
    MSelector.MScores[3] = 5
    MSelector.MScores[4] = 5
    MSelector.PairMScores[(0,1)] = 5
    MSelector.PairMScores[(3,4)] = 5
    MSelector.PairMScores[(5,6)] = 5

    MSelector.reindexAfterMerge(2,3)

    assert MSelector.MScores[0] == 5
    assert MSelector.MScores[3] == 5
    assert 2 not in MSelector.MScores

    assert len(MSelector.PairMScores.keys()) == 2
    assert (0,1) in MSelector.PairMScores
    assert (4,5) in MSelector.PairMScores
    assert (2,3) not in MSelector.PairMScores