def test_genprime(self): for size in [2, 10, 64, 128, 129]: p = libnum.generate_prime(size, k=25) self.assertEqual(libnum.len_in_bits(p), size) self.assertTrue(libnum.ferma_test(p, k=15)) self.assertRaises(ValueError, libnum.generate_prime, 1) self.assertRaises(TypeError, libnum.generate_prime, "")
def test_genprime_str(self): begin = "preved medved \xde\xad\xbe\xef\x00\x00\x00\x00" n = libnum.generate_prime_from_string(begin) s = libnum.n2s(n) self.assertTrue(s.startswith(begin)) self.assertTrue(libnum.ferma_test(n, 15)) self.assertRaises(TypeError, libnum.generate_prime_from_string, 31337) self.assertRaises(ValueError, libnum.generate_prime_from_string, "test", 8) self.assertRaises(ValueError, libnum.generate_prime_from_string, "test", -8)
def test_fermatest(self): self.assertTrue(libnum.ferma_test(3, 50)) self.assertTrue(libnum.ferma_test(1993, 50)) self.assertTrue(libnum.ferma_test(17333, 50)) self.assertTrue(libnum.ferma_test(1582541, 50)) self.assertTrue(not libnum.ferma_test(4, 50)) self.assertTrue(not libnum.ferma_test(1994, 50)) self.assertTrue(not libnum.ferma_test(1995, 50)) self.assertRaises(TypeError, libnum.ferma_test, "test")