arnaucube
arnaucube/mathPublic Self-hosted repository
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