From c73aec959d6cfcba8383d7a71161edbcf6770838 Mon Sep 17 00:00:00 2001 From: mhostetter Date: Tue, 8 Feb 2022 12:20:40 -0500 Subject: [PATCH] Add more `is_prime_power()` unit tests --- scripts/generate_int_test_vectors.py | 22 +++++++++++++++++++++- tests/conftest.py | 5 +++++ tests/data/is_prime_power.pkl | Bin 0 -> 239 bytes tests/test_factor.py | 9 --------- tests/test_primes.py | 11 +++++++++++ 5 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 tests/data/is_prime_power.pkl diff --git a/scripts/generate_int_test_vectors.py b/scripts/generate_int_test_vectors.py index 1b60673d8..3488c17ca 100644 --- a/scripts/generate_int_test_vectors.py +++ b/scripts/generate_int_test_vectors.py @@ -11,7 +11,7 @@ import sage import numpy as np -from sage.all import Integer, Integers, xgcd, lcm, prod, isqrt, log, crt, euler_phi, prime_range, nth_prime, previous_prime, next_prime, is_prime +from sage.all import Integer, Integers, xgcd, lcm, prod, isqrt, log, crt, euler_phi, prime_range, nth_prime, previous_prime, next_prime, is_prime, is_prime_power from sage.crypto.util import carmichael_lambda PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "tests") @@ -230,3 +230,23 @@ def save_pickle(d, folder, name): Z[i] = bool(z) d = {"X": X, "Z": Z} save_pickle(d, FOLDER, "is_prime.pkl") + +# set_seed(SEED + 306) +# X = [random.randint(-100, 100) for _ in range(20)] + [random.randint(100, 1_000_000_000) for _ in range(20)] +# Z = [0,]*len(X) +# for i in range(len(X)): +# x = X[i] +# z = is_prime(x) +# Z[i] = bool(z) +# d = {"X": X, "Z": Z} +# save_pickle(d, FOLDER, "is_composite.pkl") + +set_seed(SEED + 307) +X = [random.randint(-100, 100) for _ in range(20)] + [random.randint(100, 1_000_000_000) for _ in range(20)] +Z = [0,]*len(X) +for i in range(len(X)): + x = X[i] + z = is_prime_power(x) + Z[i] = bool(z) +d = {"X": X, "Z": Z} +save_pickle(d, FOLDER, "is_prime_power.pkl") diff --git a/tests/conftest.py b/tests/conftest.py index 6dd1f574f..b9ad3f89f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -111,3 +111,8 @@ def next_prime(): @pytest.fixture(scope="session") def is_prime(): return read_pickle("is_prime.pkl") + + +@pytest.fixture(scope="session") +def is_prime_power(): + return read_pickle("is_prime_power.pkl") diff --git a/tests/data/is_prime_power.pkl b/tests/data/is_prime_power.pkl new file mode 100644 index 0000000000000000000000000000000000000000..02e6aca07eb4335c764948b90a4e9b7c0703e14b GIT binary patch literal 239 zcmZo*nfinQ0&1sd^e{$DiJhY19q)Db|NsBqir&oL4BkrK3f=)gp*cVyuNxp@K8V;3 zB)oaO=7K13uXiBI&1)G*W)+BFm7JmB_2iYQh?o94Rt_(p<`4Q_>vP|6c%4qar{{HQ z?|d__4<|QsdL52o;_~|X=dQWehei3!UfFHUYF^v>ZH>H&PAeLD^*xDX_L{z`!qn?0 uixaz7&xZSiR