Passed
Push — master ( c77022...c70656 )
by Ken M.
02:20
created

Tests.test_Extra()   A

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
import unittest
2
3
from brackets import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "1. Basics": [
9
            {"input": "((5+3)*2+1)", "answer": True},
10
            {"input": "{[(3+1)+2]+}", "answer": True},
11
            {"input": "(3+{1-1)}", "answer": False},
12
            {"input": "[1+1]+(2*2)-{3/3}", "answer": True},
13
            {"input": "(({[(((1)-2)+3)-3]/3}-3)", "answer": False},
14
            {"input": "[(3)+(-1)]*{3}", "answer": True},
15
            {"input": "(((([[[{{{3}}}]]]]))))", "answer": False},
16
            {"input": "[1+202]*3*({4+3)}", "answer": False},
17
            {"input": "({[3]})-[4/(3*{1001-1000}*3)/4]", "answer": True},
18
            {"input": "[[[1+[1+1]]])", "answer": False},
19
            {"input": "(((1+(1+1))))]", "answer": False},
20
            {"input": "2+3", "answer": True},
21
        ],
22
        "2. Extra": [
23
            {"input": "[[5+3]*2+1]", "answer": True},
24
            {"input": "{([3+1]+2)+}", "answer": True},
25
            {"input": "[3+{1-1]}", "answer": False},
26
            {"input": "(1+1)+[2*2]-{3/3}", "answer": True},
27
            {"input": "[[{([[[1]-2]+3]-3)/3}-3]", "answer": False},
28
            {"input": "([3]+[-1])*{3}", "answer": True},
29
            {"input": "[[[[((({{{3}}}))))]]]]", "answer": False},
30
            {"input": "(1+202)*3*[{4+3]}", "answer": False},
31
            {"input": "[{(3)}]-(4/[3*{1001-1000}*3]/4)", "answer": True},
32
            {"input": "(((1+(1+1))))]", "answer": False},
33
        ],
34
        "3. Edge": [
35
            {"input": "1", "answer": True},
36
            {"input": "()", "answer": True},
37
            {"input": "{", "answer": False},
38
            {"input": "]", "answer": False},
39
            {
40
                "input": '([{([{(({{{([{[[[{[([((([(({[[[[(([{([[{[[{{({[([([[{((([{{{[{[[([(({((({[((({(([({{{[([({([[{({{[[{[[([[{([{[([([([(([(([({((({(((((({[({([[{[{[([({[[({[[([[[[{{(([{{[{[{{[{[{{[[((((([{[[{({([[[[[({((({{[[{[[[[[({(([[{[{[[{{[{[{([([{{{{{{{((([[{{((({[[[[[([(((({{({{[([[[(({{{([[{{{([[{([({[({[({(([[([{[[[(([[{[{{{{({[[[{[{{([{({[({{({([((([(([{({(({[[([([([{{[([{[[{([({[{({[[(([((({(([[({{({[{({{{[{({{({[({{{{(([{(([(({({[{{[({[({([[[[(([[{(([{[{({(((([[[(([([{[{{(((([[{({{([[{(((((({[[{{(({([[]])}))}}]]}))))))}]])}})}]]))))}}]}])]))]]]))))})}]}]))}]]))]]]])})]})]}}]})}))]))}]))}}}})]})}})}]}}})}]})}})]]))})))]))]]})}]})])}]]}])]}}])])])]]}))})}]))])))])})}})]})}])}}]}]]]})}}}}]}]]))]]]}])]]))})]})]})])}]])}}}]])}}}))]]])]}})}}))))])]]]]]})))}}]])))}}}}}}}])])}]}]}}]]}]}]]))})]]]]]}]]}})))})]]]]])})}]]}])))))]]}}]}]}}]}]}}]))}}]]]])]]})]]})])]}]}]])})]}))))))})))})]))]))])])])]}])}]])]]}]]}})}]])})])]}}})]))})))]})))}))])]]}]}}}])))}]])])]})}}]]}]])}]))]]]]}))])))])]}]]]}])}}}))}])}])',
41
                "answer": True,
42
            },
43
            {
44
                "input": '(][}])[((])}(])}[]{][)]{[)}){{}][]](}([[)})())){{()[]{({]]}{)([)[[])])([[[[](])][{[]]{[]({([{{()}(}[(({}(](]][}}(()]{)][]([)(}}[}(]}}({}][{{][([[{{]((}{{[{][][([}}]}}[({)[]{({(][[}{})}[{][})[(]})[}}{)[}}]]{{[{)}]{(])(}}{)([}]}})}[}}}{]([{[[)}([(}}[]{}]{{{[}}}({[{()}}([]{))[{((}}}{{(}{{[]{){)[}[(]){}]]{)[][}))[}}((][)]])[))(}{]()({([(]{]((([()][}]}))[([)({)()}[{[](]}[{[[[[)}{}][)]})]](})}}[}(}{{[)(}[)(){(({(([}()}}}){])]{}[{{({[][[[(}()((]}(]]}){({(}[)))}](}(][}]]])}}}([)([][[({[{{([)][]((]}][[[[}{[}(}(([[}}}{(]}()[)[}][{([(){)}}([](}({{][(}[[}}}[}{])[]{[(]}}]{{[{](]}})()}{[){}}{({){[)][}([){)]}({{){{[){)[(]))}})}}}{[[[())((}(]}[[)})[)](](})){))]()]}[])})}]]]([({({)([{(}{))})}(){(){{{{(]]]]][]}[[][({]({}]}){)([]][[]{](][{}[})]([])()])[{)][](}))[{[{[(}{([[{[)}(]((]]}{[]}{(}]]][)})}){}[[[((){{}})[)({[]}{[}(}]][]([}[[]]{])]]){[(}}()))]())[()})[}])](}]([[[((]()()])({[){{((()]{(}(}]])}{)[][)})})}]()})]({[}]{])()[{}}{{)()([]{)){)(()[)(){}][[(][))]]}][]]{]]{}()]]}]}}}[{])])]{}({{(][{({}{{]){}[',
45
                "answer": False,
46
            },
47
            {
48
                "input": '{*08/)348+124[7{)7{/[){5[}506(}*178][]/-{71)]7[19{05{-{*)}7(5+2)54]43-*2+(*74]{44}){52{/{0]88{(})9}90}}50[)(*41{{8+)-/38/5/*({0(-28*21/8{+{*9*22-/269+44-[/)298043{40]75/-1[4[26(/4]3-{71-]{554}65*6{20558*6{*/32)-{6++*/92]+623{1-59+/749291)161)(((-21-+++[0138)3*3+]+3{[4)952})124/3]9/)]/2+})(-964*{(]{[{5+-927446}*6]-6883/+463[145705++-{21]5708*0+17/+304-001+5+*8(133[3(0+68]])1[795))})01/8*624[02}[82}14/87357(+5}2)}]}2-988*78{{}28/{]-/{9]491][/602)[7871*54({403{}1][19*2)939[/16]865}}8(+}212+8471+5)65/6(*{{/]]8515+)/4+783-37]0}*57)(8+-12[]21}82]+}3[[28-01899[8[8*53{})0*)(/3(9(737{7/++]{{505--2/+5](]4-4[26/9][45565[{9])2[886[{[(+939}-(6+08/02)652-9}/6{-0{0]1]2*/1873()074[-86/}(1+*)+)*[8/4719997*+9129[6]6(1+))55-{(]4+{([-}2*[9-(}14(*/)11[26903*6*75-]51}67935+(269*21-+(+3/067{][7}4}6**2-46039)0}900+([87]0]714)563+5)-48)+}{[6+(([505/5-7-10*]/1-9838962[97*8)282*[*{*({{]5169]-46+9{])1[{58{[+6{]+2[693/{1]8(62*{((8]]7)8452*[41173**)]}/)93/0518{26-)94{/80+34//[21*63+282/88]79}*8}34)/81(81+-3+*(71]7}',
49
                "answer": False,
50
            },
51
            {
52
                "input": '{9489{({9901075((72[91843{(2(613304[3260038(5{69((6976195771088[96(504697615(8971202732380474(7108845[6(3{91{22(46794011863{(477615121{817528[7(7[7614((9(92625(5({37(64624979[((140899646[860{9[{([3{[21([0840828({44848{248945{{(092(0971[68[5711{81[(59773{02[1067160843139[[9390[582[4[153[55895206(777785[051215090[4890[9061(9(583043{46657[552{(9{157(78542{4768803547022{068512{6(694063675459{4[[65828(0492{6(212{((3[477[88809(5696871{9(0{{916{97850{2[200{50((805{184171[[1734546[[7(83344521338[69(49(77)94)96]83312544338)7]]6454371]]171481}508))05}002]2}05879}619}}0)9}1786965)90888]774]3))}212)6}2940)82856]]4}954576360496)6}215860}2207453088674}24587)751}9)}255]75664}340385)9)1609]0984]090512150]587777)60259855]351]4]285]0939]]9313480617601]20}37795)]18}1175]86]1790)290)}}549842}84844})8280480])12]}3])}]9}068]646998041))]97942646)73})5)52629)9))4167]7)7]825718}121516774)}36811049764)22}19}3)6]5488017)4740832372021798)516796405)69]8801775916796))96}5)8300623]403316)2)}34819]27))5701099})}9849}',
53
                "answer": True,
54
            },
55
            {
56
                "input": '[{(26605888+958*-6179/21820/1688-*4153*-4929173++*67152+*28/0-/5-6+25--6/8*8-36019+*7*035022*14--3*53/5229521/741+42924+3891/551-627+12+4/9047*198468364*854*1687-2/0+11/5840*039775-3/779243-/14584*-25+5/-6376/+0424-2+9/95657+8220769765-6783532511*28+61-+905-1435*-/6395/40619/100-0285*13//4+7+44-64687*+5+2935057+32+9+0+8816-/-28*0+7807/70+790732619737-59//23-7*3*321/7334+04+1*8/02282+/46*-7/--576070/29-0/*748+*//*827426/6/*9+31*56332355/76//27/8/34972/-4*/401+*4488368-*98/459+3176575/110**755-6+6420)}]',
57
                "answer": True,
58
            },
59
            {"input": '{(})({)}', "answer": False},
60
        ],
61
    }
62
63
    def test_Basics(self):
64
        for i in self.TESTS['1. Basics']:
65
            assert checkio(i['input']) == i['answer'], i['input']
66
67
    def test_Extra(self):
68
        for i in self.TESTS['2. Extra']:
69
            assert checkio(i['input']) == i['answer'], i['input']
70
71
    def test_Edge(self):
72
        for i in self.TESTS['3. Edge']:
73
            assert checkio(i['input']) == i['answer'], i['input']
74
75
76
if __name__ == "__main__":  # pragma: no cover
77
    unittest.main()
78