def format_useranswer(user_answer, display=False):
     user_answer = user_answer.replace('X', 'x')
     user_answer = user_answer.replace('Y', 'y')
     user_answer = user_answer.replace('Z', 'z')
     user_answer = user_answer.replace('abs', 'Abs')
     user_answer = fmt_abs_value(user_answer)
     user_answer = user_answer.replace('^', '**')
     user_answer = parse_expr(user_answer, transformations=transformations, evaluate=False)
     # user_answer = commute_AbsMul_to_MulAbs(user_answer)
     # user_answer = commute_AbsMul_to_MulAbs(user_answer)
     # user_answer = drop_redundant_abs(user_answer)
     # print('user stuff', user_answer, type(user_answer))
     # if isinstance(user_answer, sy.Pow):
     #     if user_answer.args[1] == -1:
     #         # print('My fault!')
     #         # print(user_answer.args)
     #         if isinstance(user_answer.args[0], sy.Pow):
     #             user_base = user_answer.args[0].args[0]
     #             user_expo = -user_answer.args[0].args[1]
     #             user_answer = sy.Pow(user_base, sy.simplify(user_expo))
     #             # print('alt', user_answer, type(user_answer))
     #             # for arg in sy.preorder_traversal(user_answer):
     #             #     print(arg)
     #         else:
     #
     #     else:
     #         user_base = user_answer.args[0]
     #         user_expo = user_answer.args[1]
     #         user_answer = sy.Pow(user_base, sy.simplify(user_expo))
     #         # print('standard', user_answer, type(user_answer))
     #         # for arg in sy.preorder_traversal(user_answer):
     #         #     print(arg)
     #     return f'\\(  {sy.latex(user_base)}^{{ {sy.latex(user_expo)} }} \\)'
     return f'\({sy.latex(user_answer)}\)'
Example #2
0
 def format_useranswer(self, user_answer, display=False):
     user_answer = user_answer.replace('X', 'x')
     user_answer = user_answer.replace('Y', 'y')
     user_answer = user_answer.replace('abs', 'Abs')
     user_answer = fmt_abs_value(user_answer)
     user_answer = user_answer.replace('^', '**')
     lhs, rhs = user_answer.split('=')
     lhs = parse_expr(lhs, transformations=transformations)
     rhs = parse_expr(rhs, transformations=transformations)
     user_answer = sy.Eq(lhs, rhs)
     y = sy.Symbol('y')
     user_answer = sy.solve(user_answer, y)[0]
     return f'\(y = {sy.latex(user_answer)}\)'
Example #3
0
 def validator(user_answer):
     try:
         user_answer = user_answer.replace('X', 'x')
         user_answer = user_answer.replace('Y', 'y')
         user_answer = user_answer.replace('abs', 'Abs')
         user_answer = fmt_abs_value(user_answer)
         user_answer = user_answer.replace('^', '**')
         lhs, rhs = user_answer.split('=')
         lhs = parse_expr(lhs, transformations=transformations)
         rhs = parse_expr(rhs, transformations=transformations)
         user_answer = sy.Eq(lhs, rhs)
         y = sy.Symbol('y')
         user_answer = sy.solve(user_answer, y)[0]
     except:
         raise SyntaxError
Example #4
0
 def checkanswer(self, user_answer):
     user_answer = user_answer.replace('X', 'x')
     user_answer = user_answer.replace('Y', 'y')
     user_answer = user_answer.replace('abs', 'Abs')
     user_answer = fmt_abs_value(user_answer)
     if 'y' not in user_answer:
         return False
     user_answer = user_answer.replace('^', '**')
     lhs, rhs = user_answer.split('=')
     lhs = parse_expr(lhs, transformations=transformations)
     rhs = parse_expr(rhs, transformations=transformations)
     user_answer = sy.Eq(lhs, rhs)
     y = sy.Symbol('y')
     user_answer = sy.solve(user_answer, y)[0]
     return self.answer.equals(user_answer)
 def validator(user_answer):
     try:
         # pass
         user_answer = user_answer.replace('X', 'x')
         user_answer = user_answer.replace('Y', 'y')
         user_answer = user_answer.replace('Z', 'z')
         user_answer = user_answer.replace('abs', 'Abs')
         user_answer = fmt_abs_value(user_answer)
         user_answer = user_answer.replace('^', '**')
         user_answer = parse_expr(user_answer, transformations=transformations)
         # user_answer = commute_AbsMul_to_MulAbs(user_answer)
         # user_answer = commute_AbsMul_to_MulAbs(user_answer)
         # user_answer = drop_redundant_abs(user_answer)
         f'\({sy.latex(user_answer)}\)'
     except:
         raise SyntaxError
 def checkanswer(self, user_answer):
     user_answer = user_answer.replace('X', 'x')
     user_answer = user_answer.replace('Y', 'y')
     user_answer = user_answer.replace('Z', 'z')
     user_answer = user_answer.replace('abs', 'Abs')
     user_answer = fmt_abs_value(user_answer)
     user_answer = user_answer.replace('^', '**')
     user_answer = parse_expr(user_answer, transformations=transformations, evaluate=False)
     # user_answer = commute_AbsMul_to_MulAbs(user_answer)
     # user_answer = commute_AbsMul_to_MulAbs(user_answer) #second time really commutes AbsPow to PowAbs
     # user_answer = drop_redundant_abs(user_answer)
     # if has_rational_power(user_answer):
     #     return False
     # print('user stuff', user_answer, type(user_answer))
     # for arg in sy.preorder_traversal(user_answer):
     #     print(arg)
     # if isinstance(user_answer, sy.Pow):
     #     if user_answer.args[1] == -1:
     #         # print('My fault!')
     #         # print(user_answer.args)
     #         if isinstance(user_answer.args[0], sy.Pow):
     #             user_base = user_answer.args[0].args[0]
     #             user_expo = -user_answer.args[0].args[1]
     #             user_answer = sy.Pow(user_base, sy.simplify(user_expo))
     #             # print('alt', user_answer, type(user_answer))
     #             # for arg in sy.preorder_traversal(user_answer):
     #             #     print(arg)
     #     else:
     #         user_base = user_answer.args[0]
     #         user_expo = user_answer.args[1]
     #         user_answer = sy.Pow(user_base, sy.simplify(user_expo))
     #         # print('standard', user_answer, type(user_answer))
     #         # for arg in sy.preorder_traversal(user_answer):
     #         #     print(arg)
     # print(self.answer)
     # answer = parse_expr(str(self.answer), transformations=transformations, evaluate=False)
     answer = parse_expr(self.answer, transformations=transformations, evaluate=False)
     # print('answer stuff', answer, type(answer))
     # for arg in sy.preorder_traversal(answer):
     #     print(arg)
     return user_answer == answer