Пример #1
0
    def test_len_in_bits(self):
        self.assertEqual(libnum.len_in_bits(1023), 10)
        self.assertEqual(libnum.len_in_bits(1024), 11)
        self.assertEqual(libnum.len_in_bits(1), 1)

        self.assertRaises(ValueError, libnum.len_in_bits, 0)
        self.assertRaises(TypeError, libnum.len_in_bits, "qwe")
Пример #2
0
def test_len_in_bits():
    assert len_in_bits(140737488355328) == 48
    assert len_in_bits(1023) == 10
    assert len_in_bits(1024) == 11
    assert len_in_bits(1) == 1
    assert len_in_bits(0) == 0

    # test number close to powers of two
    for p in (1, 10, 100, 1000, 10000, 100000):
        pow2 = 1 << p
        assert len_in_bits(pow2 + 1), p == 1
        assert len_in_bits(pow2), p == 1
        assert len_in_bits(pow2 - 1) == p

    with pytest.raises(TypeError):
        len_in_bits("qwe")
Пример #3
0
    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, "")
Пример #4
0
def test_genprime():
    for size in (2, 10, 64, 128, 129, 256):
        for ntry in range(10):
            p = generate_prime(size, k=25)
            assert len_in_bits(p) == size

            assert prime_test_ferma(p, k=25)
            assert prime_test_solovay_strassen(p, k=25)
            assert prime_test_miller_rabin(p, k=25)
            assert prime_test(p, k=25)

    with pytest.raises(ValueError):
        generate_prime(1)
    with pytest.raises(TypeError):
        generate_prime("")