Exemplo n.º 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)
Exemplo n.º 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_synchronize_catch_former_bug2(self):
   ''' Given un-synched excludeList and excludePairs,
         verify that the synchronization will discover (correctly)
         that no pairs are left
       This prevents relapse of a bug captured in Jan 2013
   '''
   MT = MergeTracker(6)
   MT.excludeList = set([1, 4, 2, 3])
   MT.excludePairs[0] = set([0, 1, 3, 4, 5])
   MT.excludePairs[1] = set([0, 1, 2, 3, 4, 5])
   MT.excludePairs[2] = set([0, 1, 2, 3, 4, 5])
   MT.excludePairs[3] = set([0, 1, 2, 3, 4, 5])
   MT.excludePairs[4] = set([0, 1, 2, 3, 4, 5])
   MT.excludePairs[5] = set([0, 1, 3, 4, 5])
   MT._synchronize_and_verify()
   for k in range(6):
     assert k in MT.excludeList
   assert not MT.hasAvailablePairs()
Exemplo n.º 5
0
 def test_synchronize_catch_former_bug2(self):
     ''' Given un-synched excludeList and excludePairs,
       verify that the synchronization will discover (correctly)
       that no pairs are left
     This prevents relapse of a bug captured in Jan 2013
 '''
     MT = MergeTracker(6)
     MT.excludeList = set([1, 4, 2, 3])
     MT.excludePairs[0] = set([0, 1, 3, 4, 5])
     MT.excludePairs[1] = set([0, 1, 2, 3, 4, 5])
     MT.excludePairs[2] = set([0, 1, 2, 3, 4, 5])
     MT.excludePairs[3] = set([0, 1, 2, 3, 4, 5])
     MT.excludePairs[4] = set([0, 1, 2, 3, 4, 5])
     MT.excludePairs[5] = set([0, 1, 3, 4, 5])
     MT._synchronize_and_verify()
     for k in range(6):
         assert k in MT.excludeList
     assert not MT.hasAvailablePairs()
 def test_synchronize_catch_former_bug3(self):
   ''' 
       This prevents relapse of a bug captured in Jan 2013
   '''
   MT = MergeTracker(7)
   MT.excludeList = set([3, 0, 2, 6])
   MT.excludePairs[0] = set([0, 1, 2, 3, 4, 5, 6])
   MT.excludePairs[1] = set([0, 1, 2, 3, 5])
   MT.excludePairs[2] = set([0, 1, 2, 3, 4, 5, 6])
   MT.excludePairs[3] = set([0, 1, 2, 3, 4, 5, 6])
   MT.excludePairs[4] = set([0, 2, 3, 4, 5])
   MT.excludePairs[5] = set([0, 1, 2, 3, 4, 5])
   MT.excludePairs[6] = set([0, 1, 2, 3, 4, 5, 6])
   MT._synchronize_and_verify()
   assert 1 in MT.getAvailableComps()
   assert 4 in MT.getAvailableComps()
   assert 5 in MT.excludePairs[1]
   assert 1 in MT.excludePairs[5]
   assert 6 in MT.excludePairs[4]
   assert 6 in MT.excludePairs[1]
Exemplo n.º 7
0
 def test_synchronize_catch_former_bug3(self):
     ''' 
     This prevents relapse of a bug captured in Jan 2013
 '''
     MT = MergeTracker(7)
     MT.excludeList = set([3, 0, 2, 6])
     MT.excludePairs[0] = set([0, 1, 2, 3, 4, 5, 6])
     MT.excludePairs[1] = set([0, 1, 2, 3, 5])
     MT.excludePairs[2] = set([0, 1, 2, 3, 4, 5, 6])
     MT.excludePairs[3] = set([0, 1, 2, 3, 4, 5, 6])
     MT.excludePairs[4] = set([0, 2, 3, 4, 5])
     MT.excludePairs[5] = set([0, 1, 2, 3, 4, 5])
     MT.excludePairs[6] = set([0, 1, 2, 3, 4, 5, 6])
     MT._synchronize_and_verify()
     assert 1 in MT.getAvailableComps()
     assert 4 in MT.getAvailableComps()
     assert 5 in MT.excludePairs[1]
     assert 1 in MT.excludePairs[5]
     assert 6 in MT.excludePairs[4]
     assert 6 in MT.excludePairs[1]
  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)