Example #1
0
 def test_is_valid(self):
     gen = NumPrimeGenerator([2, 5, 7, 13])
     self.assertTrue(gen.is_valid(1))
     self.assertTrue(gen.is_valid(7))
     self.assertTrue(gen.is_valid(52))
     self.assertTrue(gen.is_valid(384475))
     self.assertFalse(gen.is_valid(-1))
     self.assertFalse(gen.is_valid(-0))
     self.assertFalse(gen.is_valid(30))
     self.assertFalse(gen.is_valid(176))
     self.assertTrue(gen.is_valid(70, 100))
     self.assertFalse(gen.is_valid(70, 50))
Example #2
0
 def test_gen_numbers_with_difference(self):
     gen = NumPrimeGenerator([2, 7, 13, 29])
     random.seed(23456)
     maxval = 2000
     success_count = 0
     for i in range(1000, 1500):
         with self.subTest(i=i):
             pair = gen.gen_numbers_with_difference(maxval, i, 10)
             if pair is not None:
                 self.assertEqual(len(pair), 2)
                 success_count += 1
                 self.assertTrue(gen.is_valid(pair[0], maxval))
                 self.assertTrue(gen.is_valid(pair[1], maxval))
                 self.assertEqual(pair[0] - pair[1], i)
     # At least some reasonable number of success
     self.assertGreaterEqual(success_count, 50)
Example #3
0
 def test_gen_pairwise_coprime_numbers(self):
     gen = NumPrimeGenerator([2, 3, 7, 13, 17, 29])
     random.seed(12345)
     test_cases = [
         ((100,), 1000),
         ((500,), 300),
         ((1000,), 100),
         ((200, 200), 500),
         ((100, 1000), 500),
         ((100, 500, 300), 300),
         ((400, 200, 300, 100), 100),
     ]
     for maxvals, test_count in test_cases:
         for i in range(test_count):
             with self.subTest(maxvals=maxvals, i=i):
                 vals = gen.gen_pairwise_coprime_numbers(maxvals)
                 self.assertEqual(len(vals), len(maxvals))
                 for val, maxval in zip(vals, maxvals):
                     self.assertTrue(gen.is_valid(val, maxval))
                 for pair in combinations(vals, 2):
                     self.assertEqual(gcd(pair[0], pair[1]), 1)