Passed
Push — master ( 0854d8...7c3a3b )
by Ken M.
01:14
created

test_simplification.Tests.test_Basics()   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 simplification import simplify
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {"input": "(x-1)*(x+1)", "answer": "x**2-1"},
10
            {"input": "(x+1)*(x+1)", "answer": "x**2+2*x+1"},
11
            {"input": "(x+3)*x*2-x*x", "answer": "x**2+6*x"},
12
            {"input": "x+x*x+x*x*x", "answer": "x**3+x**2+x"},
13
            {"input": "(2*x+3)*2-x+x*x*x*x", "answer": "x**4+3*x+6"},
14
            {"input": "x*x-(x-1)*(x+1)-1", "answer": "0"},
15
            {"input": "5-5-x", "answer": "-x"},
16
            {"input": "x*x*x-x*x*x-1", "answer": "-1"},
17
        ],
18
        "Extra": [
19
            {"input": "(x-1)*(x-1)", "answer": "x**2-2*x+1"},
20
            {"input": "(x+3)*(x+3)", "answer": "x**2+6*x+9"},
21
            {"input": "(x+4)*x*3-x*x", "answer": "2*x**2+12*x"},
22
            {"input": "x+x*x+x*x*x*x", "answer": "x**4+x**2+x"},
23
            {"input": "2*(2*x+3)-x+x*x*x*x", "answer": "x**4+3*x+6"},
24
            {"input": "3+4*x-24-2*x", "answer": "2*x-21"},
25
            {"input": "(x+1)*x*(x+1)", "answer": "x**3+2*x**2+x"},
26
            {"input": "x*x*x*x*x+100-2", "answer": "x**5+98"},
27
            {"input": "(x-500)*(x+500)", "answer": "x**2-250000"},
28
            {"input": "(x-2)*(x+2)*(x+2)", "answer": "x**3+2*x**2-4*x-8"},
29
        ],
30
        "Generated": [
31
            {
32
                "input": "84-x+x*37*80+78-98+x-(x)+(23)*x+x-x+x+78-(x*32+61+x-10*x*x)-(59*x)-(x)-x*49+x+23*72+0+(x+x)+(x*(x))",
33
                "answer": "11*x**2+2844*x+1737",
34
            },
35
            {
36
                "input": "74-x-15+x+31*x+95*(x+88)*38-x-25-23+x*x+49+x-(47+x+28-43*x-x-39+x-x-83*62)",
37
                "answer": "x**2+3684*x+322850",
38
            },
39
            {
40
                "input": "(x+13-(x*x*x)*x-(x)-x+19-x*10*(x*62)+x-x*0*(66)*83-93+x-(21*x+(85-77+x-x)))",
41
                "answer": "-x**4-620*x**2-20*x-69",
42
            },
43
            {
44
                "input": "79+15*7-x+x-x+48-65+x-38+x+46*x*x*(3)+0+(45)",
45
                "answer": "138*x**2+x+174",
46
            },
47
            {
48
                "input": "98*85*x*(x-x-(x*(x-41-(x)+3-31+(41)*54*13-x+(x))))",
49
                "answer": "-239179290*x**2",
50
            },
51
            {
52
                "input": "24*45*(23*42+73-x)-x-75-13-41*(47-49*(x*25*(x*(x-(x-48*16+55*97)+x-54))))",
53
                "answer": "50225*x**3-232089725*x**2-1081*x+1120105",
54
            },
55
            {
56
                "input": "x+x-x+x*x+x*x*x-x*x*x*(4*x+84*x*x-x*x*x-x-x)+x-x-x",
57
                "answer": "x**6-84*x**5-2*x**4+x**3+x**2",
58
            },
59
            {"input": "72*x*x-(x+x-x*x)+x*81", "answer": "73*x**2+79*x"},
60
            {
61
                "input": "11+(x)*(x*x)*x*(x+x*20-(15)*x-(40+(x)-(x*x*x+x+x)*x+47-(x)))",
62
                "answer": "x**8+2*x**6+6*x**5-87*x**4+11",
63
            },
64
        ],
65
    }
66
67
    def test_Basics(self):
68
        for i in self.TESTS['Basics']:
69
            assert simplify(i['input']) == i['answer']
70
71
    def test_Extra(self):
72
        for i in self.TESTS['Extra']:
73
            assert simplify(i['input']) == i['answer']
74
75
    def test_Generated(self):
76
        for i in self.TESTS['Generated']:
77
            assert simplify(i['input']) == i['answer']
78