def test_solution_tree_derivative_part(self):
        derivative_theorems = load_theorems()
        problem_input = {'expression': '\\frac{d(x)}{dx}', 'variables': []}
        data = {'problemInput': problem_input, 'theorems': derivative_theorems}
        response = self.client.post(path='/results/solution-tree',
                                    data=data,
                                    format='json')

        tree = SolutionTreeMapper.parse(json.loads(response.content))
        theorem_names = tree.get_theorem_names()
        self.assertEquals(response.status_code, status.HTTP_200_OK)
        self.assertEquals(theorem_names, {RESOLVER_DERIV})
    def solution_tree_derivative_case(self, case):
        print(case['name'])
        derivative_theorems = load_theorems()
        data = {
            'problem_input': case["problemInput"],
            'theorems': derivative_theorems
        }

        response = self.client.post(path='/results/solution-tree',
                                    data=data,
                                    format='json')

        tree_dict = json.loads(json.loads(response.content))
        #broken_nodes = get_solution_tree_broken_nodes(tree_dict)
        tree = SolutionTreeMapper.parse(json.loads(response.content))
        theorem_names = tree.get_theorem_names()

        # print('Test case: ' + case['name'] + '\n')
        # print('Resulting theorems: ' + str(theorem_names) + '\n')
        # f = open(case['name']+'.txt', "w+")
        # f.write(json.loads(response.content))
        self.assertEquals(response.status_code, status.HTTP_200_OK)
        self.assertEquals(theorem_names, case["theorems"])
Exemplo n.º 3
0
 def test_is_a_result(self):
     tree = SolutionTreeMapper.parse(json.loads(tree_byte_arr))
     self.assertTrue(
         tree.is_a_result(
             Expression(exercise.result['expression'],
                        exercise.result['variables'])))
Exemplo n.º 4
0
import json

import unittest

from mathlearning.mappers.solution_tree_mapper import SolutionTreeMapper
from mathlearning.model.expression import Expression
from test.testutils.solved_exercises import SolvedExercises

tree_byte_arr = ''  # TODO
exercise = SolvedExercises.derivative_e_plus_sin()
tree = SolutionTreeMapper.parse(json.loads(tree_byte_arr))


class TestSolutionTree(unittest.TestCase):
    def test_is_a_result(self):
        tree = SolutionTreeMapper.parse(json.loads(tree_byte_arr))
        self.assertTrue(
            tree.is_a_result(
                Expression(exercise.result['expression'],
                           exercise.result['variables'])))

    def test_is_a_result_steps_are_not_results(self):
        steps = exercise.get_results_as_expressions()
        non_result_steps = exercise.get_results_as_expressions()[:len(steps) -
                                                                 1]
        for non_result in non_result_steps:
            step_is_result = tree.is_a_result(non_result)
            self.assertFalse(step_is_result)
            if step_is_result:
                print('Non result step returned is result True: ' +
                      non_result.to_string())