26 lines
614 B
Python
26 lines
614 B
Python
import sys, os
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
from egcd import egcd, gcd, lcm
|
|
|
|
def test_basic():
|
|
assert egcd(30, 12) == (6, -1, 3) or egcd(30,12)[0]==6
|
|
assert gcd(30,12)==6
|
|
assert lcm(4,6)==12
|
|
|
|
def test_negatives():
|
|
g,x,y = egcd(-30,12)
|
|
assert g==6 and -30*x + 12*y == g
|
|
|
|
def test_zero():
|
|
assert gcd(0,5)==5
|
|
assert gcd(5,0)==5
|
|
assert lcm(0,5)==0
|
|
|
|
def test_identity():
|
|
g,x,y = egcd(17,31)
|
|
assert g==1 and 17*x+31*y==1
|
|
if __name__=="__main__":
|
|
for f in [test_basic,test_negatives,test_zero,test_identity]:
|
|
f()
|
|
print("ALL PASS")
|