math/number-theory_test.sage
number-theory_test.sageRaw
1load("number-theory.sage")
2
3#####
4# Chinese Remainder Theorem tests
5a_i = [5, 3, 10]
6m_i = [7, 11, 13]
7assert crt(a_i, m_i) == 894
8
9a_i = [3, 8]
10m_i = [13, 17]
11assert crt(a_i, m_i) == 42
12
13
14#####
15# gcd, using Binary Euclidean algorithm tests
16assert gcd(21, 12) == 3
17assert gcd(1_426_668_559_730, 810_653_094_756) == 1_417_082
18
19assert gcd_recursive(21, 12) == 3
20
21#####
22# Extended Euclidean algorithm tests
23assert egcd(7, 19) == (1, -8, 3)
24assert egcd_recursive(7, 19) == (1, -8, 3)
25
26#####
27# Inverse modulo N tests
28assert inv_mod(7, 19) == 11