45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import unittest
|
|
|
|
from Cryptotools.Numbers.carmi import carmi_numbers, is_carmichael, carmichael_lambda
|
|
|
|
|
|
class TestCarmichael(unittest.TestCase):
|
|
def _generate_carmi(self):
|
|
# Source: https://oeis.org/A002322
|
|
with open("tests/carmi_function_oeis", "r") as f:
|
|
data = f.readlines()
|
|
carmi_s = data[0].split(",")
|
|
carmi = list()
|
|
for entry in carmi_s:
|
|
carmi.append(entry.strip())
|
|
return carmi
|
|
|
|
def _generate_carmi_numbers(self):
|
|
# Source: https://oeis.org/A002997
|
|
with open("tests/carmi_numbers_oeis", "r") as f:
|
|
data = f.readlines()
|
|
carmi_s = data[0].split(",")
|
|
carmi = list()
|
|
for entry in carmi_s:
|
|
carmi.append(entry.strip())
|
|
return carmi # len 69
|
|
|
|
def test_carmi_lambda(self):
|
|
carmi_list = self._generate_carmi()
|
|
index = 2
|
|
for i in range(2, len(carmi_list)):
|
|
res = carmichael_lambda(index)
|
|
print(f"{res} {carmi_list[i]}")
|
|
index += 1
|
|
# self.assertEqual(res, carmi_list[i], "Wrong value")
|
|
|
|
def test_carmi_number(self):
|
|
pass
|
|
#carmi_list = self._generate_carmi_numbers()
|
|
#for i in range(0, len(carmi_list) - 10):
|
|
# value = int(carmi_list[i])
|
|
# l = carmi_numbers(value)
|
|
# r = is_carmichael(value, l)
|
|
# self.assertTrue(r)
|
|
unittest.main()
|