コード例 #1
0
 def test_negative(self):
     e = Equation(-1)
     self.assertEqual(str(e), '-1')
     e = Equation()
     e.create_negation(-1)
     self.assertEqual(str(e), '-(-1)')
     e = Equation(-1)
     e.create_negation(-1)
     self.assertEqual(str(e), '-(-(-1))')
コード例 #2
0
 def test_division(self):
     e = Equation()
     e.create_division(-1, Element('1/2'))
     self.assertEqual(str(e), '1/2 : 1/2')
     e = Equation(Element('2/3'))
     e.create_division(-1, Element('1/2'))
     self.assertEqual(str(e), '1/3 : 1/2')
     e = Equation(Element('5/3'))
     e.create_division(-1, Element(2))
     self.assertEqual(str(e), '3 1/3 : 2')
コード例 #3
0
 def test_multiplication(self):
     e = Equation()
     e.create_multiplication(-1, Element(2))
     self.assertEqual(str(e), '1/2 * 2')
     e = Equation()
     e.create_multiplication(-1, Element(-2))
     self.assertEqual(str(e), '(-1/2) * (-2)')
     e = Equation(1)
     e.create_multiplication(-1, Element(3, 2))
     self.assertEqual(str(e), '2/3 * 1 1/2')
     e = Equation(1)
     e.create_multiplication(-1, Element('-3/2'))
     self.assertEqual(str(e), '(-2/3) * (-1 1/2)')
コード例 #4
0
 def test_sum_equation(self):
     e = Equation()
     for i in range(5):
         x = e.element(-1)
         e.create_sum(-1, x / 2)
     s = str(e)
     self.assertEqual(s, '1/2 + 1/4 + 1/8 + 1/16 + 1/32 + 1/32')
コード例 #5
0
 def test_negation(self):
     e = Equation()
     x = e.element(-1)
     e.create_sub(-1, x / 2)
     e.create_negation(-1)
     self.assertEqual(str(e), '1 1/2 + (-1/2)')
     e.create_negation(-1)
     self.assertEqual(str(e), '1 1/2 - (-(-1/2))')
コード例 #6
0
    def test_complication(self):
        e = Equation(1)
        for m, n, x, y in [[0, 4, 1, 5], [1, 3, 1, 5], [1, 2, 1, 4]]:
            e.complicate(m, n, x, y)
        self.assertEqual(str(e), '1/5 : ((-1) * 1/5)')
        e = Equation(1)
        tab = [[0, 3, 1, 5], [1, 0, 1, 9], [0, 4, 1, 6], [1, 0, 1, 2],
               [0, 1, 1, 9], [5, 0, 1, 5], [3, 3, 1, 9], [1, 0, 1, 3]]
        for m, n, x, y in tab:
            e.complicate(m, n, x, y)

        e.tab = e.tab[0][0]
        e.tab[1] = Element(1)
        self.assertEqual(str(e), '17/18 - (-2/9 + 1/3) : 1')
        self.assertEqual(str(e), '17/18 - (-2/9 + 1/3)')
        e.tab = e.tab[0]
        print(e)
コード例 #7
0
 def test_sub_equation(self):
     e = Equation()
     x = e.element(-1)
     e.create_sub(-1, x / 2)
     self.assertEqual(str(e), '1 1/2 - 1/2')
     x = e.element(-1)
     e.create_sub(-1, x / 2)
     self.assertEqual(str(e), '1 1/2 - (3/4 - 1/4)')
     x = e.element(-1)
     e.create_sub(-1, x / 2)
     self.assertEqual(str(e), '1 1/2 - (3/4 - (3/8 - 1/8))')
コード例 #8
0
def run_balance():
    """
    Runs the chemical equation balance algorithm
    """
    print('=================================================')
    print(
        'Insert chemical equation with element followed by the number of atoms:'
    )
    print('Example: H2 + O2 => H2O')
    user_input = input('>>> ')
    try:
        equation = Equation(user_input)
        print('Balanced equation: ' + equation.equation_balancer())
        # sleep(3)
        # run_balance()
    except IndexError:
        print('Invalid input...')
コード例 #9
0
    def solve(self):
        """Returns the solution to this system of equation."""

        if self.is_compatible() is False:
            return None
        if self.get_number_of_solutions() == 'Infinitely many solutions':
            raise InfinitelySolutionsError

        x_coefficient = str(
            num(self.linear_2.x_coefficient) -
            num(self.linear_1.x_coefficient))
        x_coefficient = '' if x_coefficient == '1' else x_coefficient
        equation = x_coefficient + 'x' + '=' + str(
            self.linear_1.y_intercept) + '-' + str(self.linear_2.y_intercept)

        x_value = Equation(equation).solve()

        return self.linear_1.get_point(x_value)
コード例 #10
0
from fractions import Element
from equations import Equation
from random import randint

print(r'\documentclass[8pt]{article}')
print(r'\usepackage[utf8]{inputenc}')
print(r'\usepackage{polski}')
print(r'\usepackage{amsmath}')
print(r'\begin{document}')

N = 15

for _ in range(100):
    print(r'\begin{align}')
    for i in range(N):
        e = Equation()
        # print('[')
        for j in range(5):
            m, n, x, y = randint(0, len(e) - 1), randint(0, 4), 1, randint(2, 10)
            e.complicate(m, n, x, y)
        if i < N - 1:
            print(e.tex(), r'\\')
        else:
            print(e.tex())
    print(r'\end{align}')

print(r'\end{document}')