Beispiel #1
0
 def testTopologicalSortSimpleExceptions(self):
     test_cases = (
         ([None, None, -3], 'Negative value in ideps: ideps[2] = -3'),
         ([None, None, None, None,
           7], 'Value in ideps exceeds its length: ideps[4] = 7 >= 5'),
         ([None, None, None,
           3], 'Trivial cyclic dependency in ideps: ideps[3] = 3'),
         ([1, 0], 'Cyclic dependency in ideps:'
          ' following dependencies from 0 leads back to 0.'),
     )
     for ideps, expected_message in test_cases:
         with self.assertRaises(ValueError) as ctx:
             gen.TopologicalSortSimple(ideps)
         self.assertEqual(str(ctx.exception), expected_message)
Beispiel #2
0
 def testTopologicalSortSimpleTabulatedTestCases(self):
     test_cases = (
         ([], []),
         ([None], [0]),
         ([None, None], [0, 1]),
         ([None, 0], [0, 1]),
         ([1, None], [1, 0]),
         ([1, 2, None], [2, 1, 0]),
         ([2, None, 1], [1, 2, 0]),
         ([1, 3, None, None], [3, 1, 0, 2]),
         ([2, 2, None], [2, 0, 1]),
         ([1, 3, 3, None], [3, 1, 0, 2]),
         ([3, 2, None, 1], [2, 1, 3, 0]),
     )
     for ideps, expected_permutation in test_cases:
         permutation = gen.TopologicalSortSimple(ideps)
         self.assertEqual(permutation, expected_permutation)
         self.ValidateTopologicalSortPermutation(ideps, permutation)
Beispiel #3
0
 def testTopologicalSortSimpleRandomTestCases(self):
     for n in range(2, 10):
         for unused_trial_counter in range(100):
             ideps = BuildRandomIdepsForTopologicalSortSimple(n)
             permutation = gen.TopologicalSortSimple(ideps)
             self.ValidateTopologicalSortPermutation(ideps, permutation)