コード例 #1
0
    def test_calculate_worker(self):
        calculator = calc.Calculator(db)
        task = {'expression_id': 1, 'expression': 'a+1', 'variables': {'a': 1}}
        calculator.calculate_worker(task)
        res = calc.result_queue.get()
        self.assertEqual(res[4], 0)  # check results error code (0 is no error)
        self.assertEqual(res[3], 2)  # check result

        task = {'expression_id': 2, 'expression': 'a/0', 'variables': {'a': 1}}
        calculator.calculate_worker(task)
        res = calc.result_queue.get()
        # check results error code (1 is ZeroDivision)
        self.assertEqual(res[4], 1)
        self.assertIsNone(res[3])  # check result

        task = {
            'expression_id': 3,
            'expression': 'a*1000000000000000000**100000000',
            'variables': {
                'a': 1
            }
        }
        calculator.calculate_worker(task)
        res = calc.result_queue.get()
        self.assertEqual(res[4], 2)  # check results error code (2 is Overflow)
        self.assertIsNone(res[3])  # check result
コード例 #2
0
def test_calculator_simple_evaluate_without_arg():
    """
    Test the calculator with a very basic function not containing
    functions like sin() or cos(). No parameter is specified for evaluate.
    """
    func = "x * x - 2"
    x = 4
    solution = 14

    c = calculator.Calculator(func, x)

    assert c.evaluate() == solution
コード例 #3
0
def test_calculator_complex_evaluate_with_arg():
    """
    Test the calculator with a more complex function containing
    functions like sin() or cos(). A parameter is specified for evaluate.
    """
    func = "sin(pi) + x * 3"
    x = 8
    solution = 24

    c = calculator.Calculator(func)

    assert c.evaluate(x) == solution
コード例 #4
0
def test_calculator_simple_evaluate_with_arg():
    """
    Test the calculator with a very basic function not containing
    functions like sin() or cos(). A parameter is specified for evaluate.
    """
    func = "x ** x - 8"
    x = 3
    solution = 19

    c = calculator.Calculator(func)

    assert c.evaluate(x) == solution
コード例 #5
0
 def test_process_tasks(self):
     calculator = calc.Calculator(db)
     tasks = [{
         'expression_id': 1,
         'expression': 'a+1',
         'variables': {
             'a': 1
         }
     }, {
         'expression_id': 2,
         'expression': 'a/0',
         'variables': {
             'a': 1
         }
     }, {
         'expression_id': 3,
         'expression': 'a*1000000000000000000**100000000',
         'variables': {
             'a': 1
         }
     }]
     self.assertEqual(len(calculator.process_tasks(tasks)), len(tasks))