This repository has been archived by the owner on Dec 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
71 lines (58 loc) · 2.11 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import unittest
from random import randint
from bigint import GCD, BigInt
class TestBigInt(unittest.TestCase):
MIN = -10 ** 30
MAX = 10 ** 30
SIMPLE_MIN = -10 ** 10
SIMPLE_MAX = 10 ** 10
TESTS_COUNT = 10 ** 5
def test_add(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.MIN, self.MAX)
y = randint(self.MIN, self.MAX)
big_x = BigInt(str(x))
big_y = BigInt(str(y))
self.assertEqual(x + y, big_x + big_y)
def test_sub(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.MIN, self.MAX)
y = randint(self.MIN, self.MAX)
big_x = BigInt(str(x))
big_y = BigInt(str(y))
self.assertEqual(x - y, big_x - big_y)
def test_mul(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.MIN, self.MAX)
y = randint(self.MIN, self.MAX)
big_x = BigInt(str(x))
big_y = BigInt(str(y))
self.assertEqual(x * y, big_x * big_y)
def test_div(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.MIN, self.MAX)
y = randint(self.MIN, self.MAX)
big_x = BigInt(str(x))
big_y = BigInt(str(y))
self.assertEqual(int(x / y), big_x / big_y)
def test_mod(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.MIN, self.MAX)
y = randint(self.MIN, self.MAX)
big_x = BigInt(str(x))
big_y = BigInt(str(y))
self.assertEqual(x % y, big_x % big_y)
def test_pow(self):
for _ in range(self.TESTS_COUNT):
x = randint(self.SIMPLE_MIN, self.SIMPLE_MAX)
y = randint(1, 10)
big_x = BigInt(str(x))
self.assertEqual(x**y, big_x.bipow(y))
# def test_rt(self):
# for _ in range(self.TESTS_COUNT):
# x = randint(self.MIN, self.MAX)
# y = randint(1, 10)
# big_x = BigInt(str(x))
# self.assertEqual(int(x**(1 / y)), big_x.birt(y))
if __name__ == '__main__':
unittest.main()