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]
7M = 1001
8assert crt(a_i, m_i, M) == 894
9
10a_i = [3, 8]
11m_i = [13, 17]
12M = 221
13assert crt(a_i, m_i, M) == 42
14
15
16#####
17# gcd, using Binary Euclidean algorithm tests
18assert gcd(21, 12) == 3
19assert gcd(1_426_668_559_730, 810_653_094_756) == 1_417_082
20
21#####
22# Extended Euclidean algorithm tests
23assert egcd(7, 19) == (1, -8, 3)
24
25#####
26# Inverse modulo N tests
27assert inv_mod(7, 19) == 11