|
1
|
|
|
import unittest |
|
2
|
|
|
|
|
3
|
|
|
from repeating_decimals import convert |
|
4
|
|
|
|
|
5
|
|
|
|
|
6
|
|
|
class Tests(unittest.TestCase): |
|
7
|
|
|
TESTS = { |
|
8
|
|
|
"Basics": [ |
|
9
|
|
|
{"input": [1, 3], "answer": "0.(3)"}, |
|
10
|
|
|
{"input": [5, 3], "answer": "1.(6)"}, |
|
11
|
|
|
{"input": [3, 8], "answer": "0.375"}, |
|
12
|
|
|
{"input": [7, 11], "answer": "0.(63)"}, |
|
13
|
|
|
{"input": [29, 12], "answer": "2.41(6)"}, |
|
14
|
|
|
{"input": [11, 7], "answer": "1.(571428)"}, |
|
15
|
|
|
{"input": [23, 2], "answer": "11.5"}, |
|
16
|
|
|
{"input": [2, 21], "answer": "0.(095238)"}, |
|
17
|
|
|
{"input": [1, 17], "answer": "0.(0588235294117647)"}, |
|
18
|
|
|
{"input": [58, 23], "answer": "2.(5217391304347826086956)"}, |
|
19
|
|
|
{"input": [0, 117], "answer": "0."}, |
|
20
|
|
|
{"input": [4, 2], "answer": "2."}, |
|
21
|
|
|
], |
|
22
|
|
|
"Edge": [ |
|
23
|
|
|
{"input": [0, 1], "answer": "0."}, |
|
24
|
|
|
{"input": [0, 1000], "answer": "0."}, |
|
25
|
|
|
{"input": [1, 1], "answer": "1."}, |
|
26
|
|
|
{"input": [1, 1000], "answer": "0.001"}, |
|
27
|
|
|
{"input": [1000, 1], "answer": "1000."}, |
|
28
|
|
|
{"input": [1, 999], "answer": "0.(001)"}, |
|
29
|
|
|
{ |
|
30
|
|
|
"input": [1, 776], |
|
31
|
|
|
"answer": "0.001(288659793814432989690721649484536082474226804123711340206185567010309278350515463917525773195876)", |
|
32
|
|
|
}, |
|
33
|
|
|
], |
|
34
|
|
|
"Extra": [ |
|
35
|
|
|
{"input": [2, 3], "answer": "0.(6)"}, |
|
36
|
|
|
{"input": [5, 2], "answer": "2.5"}, |
|
37
|
|
|
{"input": [6, 4], "answer": "1.5"}, |
|
38
|
|
|
{"input": [20, 6], "answer": "3.(3)"}, |
|
39
|
|
|
{"input": [11, 13], "answer": "0.(846153)"}, |
|
40
|
|
|
{"input": [22, 13], "answer": "1.(692307)"}, |
|
41
|
|
|
{"input": [18, 23], "answer": "0.(7826086956521739130434)"}, |
|
42
|
|
|
{"input": [30, 23], "answer": "1.(3043478260869565217391)"}, |
|
43
|
|
|
{"input": [10, 12], "answer": "0.8(3)"}, |
|
44
|
|
|
{"input": [41, 12], "answer": "3.41(6)"}, |
|
45
|
|
|
{"input": (408, 77), "answer": "5.(298701)"}, |
|
46
|
|
|
{ |
|
47
|
|
|
"input": (944, 547), |
|
48
|
|
|
"answer": "1.(7257769652650822669104204753199268738574040219378427787934186471663619744058500914076782449)", |
|
49
|
|
|
}, |
|
50
|
|
|
{"input": (113, 927), "answer": "0.(1218985976267529665587918015102481)"}, |
|
51
|
|
|
], |
|
52
|
|
|
} |
|
53
|
|
|
|
|
54
|
|
|
def test_Basics(self): |
|
55
|
|
|
for i in self.TESTS['Basics']: |
|
56
|
|
|
assert convert(*i['input']) == i['answer'] |
|
57
|
|
|
|
|
58
|
|
|
def test_Edge(self): |
|
59
|
|
|
for i in self.TESTS['Edge']: |
|
60
|
|
|
assert convert(*i['input']) == i['answer'] |
|
61
|
|
|
|
|
62
|
|
|
def test_Extra(self): |
|
63
|
|
|
for i in self.TESTS['Extra']: |
|
64
|
|
|
assert convert(*i['input']) == i['answer'] |
|
65
|
|
|
|