diff --git a/poincare/test/addition.cpp b/poincare/test/addition.cpp index 1e88c65ca..5adf26374 100644 --- a/poincare/test/addition.cpp +++ b/poincare/test/addition.cpp @@ -63,7 +63,7 @@ QUIZ_CASE(poincare_addition_evaluate) { QUIZ_CASE(poincare_addition_simplify) { assert_parsed_expression_simplify_to("1+x", "1+x"); assert_parsed_expression_simplify_to("1/2+1/3+1/4+1/5+1/6+1/7", "223/140"); - assert_parsed_expression_simplify_to("1+x+4-i-2x", "(5-i)-x"); + assert_parsed_expression_simplify_to("1+x+4-i-2x", "5-i-x"); assert_parsed_expression_simplify_to("2+1", "3"); assert_parsed_expression_simplify_to("1+2", "3"); assert_parsed_expression_simplify_to("1+2+3+4+5+6+7", "28"); @@ -76,7 +76,7 @@ QUIZ_CASE(poincare_addition_simplify) { assert_parsed_expression_simplify_to("-A", "-A"); assert_parsed_expression_simplify_to("A-A", "0"); assert_parsed_expression_simplify_to("-5P+3P", "-2*P"); - assert_parsed_expression_simplify_to("1-3+A-5+2A-4A", "(-7)-A"); + assert_parsed_expression_simplify_to("1-3+A-5+2A-4A", "-7-A"); assert_parsed_expression_simplify_to("A+B-A-B", "0"); assert_parsed_expression_simplify_to("A+B+(-1)*A+(-1)*B", "0"); assert_parsed_expression_simplify_to("2+13cos(2)-23cos(2)", "2-10*cos(2)"); diff --git a/poincare/test/complex_to_expression.cpp b/poincare/test/complex_to_expression.cpp index ffed833c8..4d278800c 100644 --- a/poincare/test/complex_to_expression.cpp +++ b/poincare/test/complex_to_expression.cpp @@ -70,15 +70,15 @@ QUIZ_CASE(poincare_complex_to_expression) { assert_parsed_expression_evaluates_to("2+3*I", "3.60555127546*X^(0.982793723247*I)", Radian, Polar, 12); assert_parsed_expression_evaluates_to("3.60555127546*X^(0.982793723247*I)", "2+3*I", Radian, Cartesian, 12); assert_parsed_expression_evaluates_to("12.04159457879229548012824103*X^(1.4876550949*I)", "1+12*I", Radian, Cartesian, 5); - assert_parsed_expression_evaluates_to("-2E20+2E20*I", "(-2E20)+2E20*I"); + assert_parsed_expression_evaluates_to("-2E20+2E20*I", "-2E20+2E20*I"); assert_parsed_expression_evaluates_to("-2E20+2E20*I", "2.828427E20*X^(2.356194*I)", Radian, Polar); assert_parsed_expression_evaluates_to("1E155-1E155*I", "1E155-1E155*I"); assert_parsed_expression_evaluates_to("1E155-1E155*I", "1.41421356237E155*X^(-0.785398163397*I)", Radian, Polar,12); assert_parsed_expression_evaluates_to("-2E100+2E100*I", Undefined::Name()); assert_parsed_expression_evaluates_to("-2E360+2E360*I", Undefined::Name()); - assert_parsed_expression_evaluates_to("-2E100+2E10*I", "(-inf)+2E10*I"); - assert_parsed_expression_evaluates_to("-2E360+2*I", "(-inf)+2*I"); + assert_parsed_expression_evaluates_to("-2E100+2E10*I", "-inf+2E10*I"); + assert_parsed_expression_evaluates_to("-2E360+2*I", "-inf+2*I"); assert_parsed_expression_evaluates_to("undef+2E100*I", Undefined::Name()); assert_parsed_expression_evaluates_to("-2E360+undef*I", Undefined::Name()); diff --git a/poincare/test/function.cpp b/poincare/test/function.cpp index 675a196c3..c3b4cae9a 100644 --- a/poincare/test/function.cpp +++ b/poincare/test/function.cpp @@ -166,8 +166,8 @@ QUIZ_CASE(poincare_function_evaluate) { #if MATRICES_ARE_DEFINED assert_parsed_expression_evaluates_to("inverse([[1,2,3][4,5,-6][7,8,9]])", "[[-1.2917,-0.083333,0.375][1.0833,0.16667,-0.25][0.041667,-0.083333,0.041667]]", Degree, Cartesian, 5); // inverse is not precise enough to display 7 significative digits assert_parsed_expression_evaluates_to("inverse([[1,2,3][4,5,-6][7,8,9]])", "[[-1.2916666666667,-8.3333333333333E-2,0.375][1.0833333333333,1.6666666666667E-1,-0.25][4.1666666666667E-2,-8.3333333333333E-2,4.1666666666667E-2]]"); - assert_parsed_expression_evaluates_to("inverse([[I,23-2I,3*I][4+I,5*I,6][7,8*I+2,9]])", "[[(-0.0118)-0.0455*I,(-0.5)-0.727*I,0.318+0.489*I][0.0409+0.00364*I,0.04-0.0218*I,(-0.0255)+0.00091*I][0.00334-0.00182*I,0.361+0.535*I,(-0.13)-0.358*I]]", Degree, Cartesian, 3); // inverse is not precise enough to display 7 significative digits - assert_parsed_expression_evaluates_to("inverse([[I,23-2I,3*I][4+I,5*I,6][7,8*I+2,9]])", "[[(-0.0118289353958)-0.0454959053685*I,(-0.500454959054)-0.727024567789*I,0.31847133758+0.488626023658*I][0.0409463148317+3.63967242948E-3*I,0.0400363967243-0.0218380345769*I,(-0.0254777070064)+9.0991810737E-4*I][3.33636639369E-3-1.81983621474E-3*I,0.36093418259+0.534728541098*I,(-0.130118289354)-0.357597816197*I]]", Degree, Cartesian, 12); // FIXME: inverse is not precise enough to display 14 significative digits + assert_parsed_expression_evaluates_to("inverse([[I,23-2I,3*I][4+I,5*I,6][7,8*I+2,9]])", "[[-0.0118-0.0455*I,-0.5-0.727*I,0.318+0.489*I][0.0409+0.00364*I,0.04-0.0218*I,-0.0255+0.00091*I][0.00334-0.00182*I,0.361+0.535*I,-0.13-0.358*I]]", Degree, Cartesian, 3); // inverse is not precise enough to display 7 significative digits + assert_parsed_expression_evaluates_to("inverse([[I,23-2I,3*I][4+I,5*I,6][7,8*I+2,9]])", "[[-0.0118289353958-0.0454959053685*I,-0.500454959054-0.727024567789*I,0.31847133758+0.488626023658*I][0.0409463148317+3.63967242948E-3*I,0.0400363967243-0.0218380345769*I,-0.0254777070064+9.0991810737E-4*I][3.33636639369E-3-1.81983621474E-3*I,0.36093418259+0.534728541098*I,-0.130118289354-0.357597816197*I]]", Degree, Cartesian, 12); // FIXME: inverse is not precise enough to display 14 significative digits #endif assert_parsed_expression_evaluates_to("prediction(0.1, 100)", "[[0,0.2]]"); @@ -176,8 +176,8 @@ QUIZ_CASE(poincare_function_evaluate) { assert_parsed_expression_evaluates_to("prediction95(0.1, 100)", "[[0.0412,0.1588]]"); assert_parsed_expression_evaluates_to("prediction95(0.1, 100)", "[[0.0412,0.1588]]"); - assert_parsed_expression_evaluates_to("product(2+k*I,k, 1, 5)", "(-100)-540*I"); - assert_parsed_expression_evaluates_to("product(2+o*I,o, 1, 5)", "(-100)-540*I"); + assert_parsed_expression_evaluates_to("product(2+k*I,k, 1, 5)", "-100-540*I"); + assert_parsed_expression_evaluates_to("product(2+o*I,o, 1, 5)", "-100-540*I"); assert_parsed_expression_evaluates_to("root(3+I, 3)", "1.459366+0.1571201*I"); assert_parsed_expression_evaluates_to("root(3+I, 3)", "1.4593656008684+1.5712012294394E-1*I"); diff --git a/poincare/test/logarithm.cpp b/poincare/test/logarithm.cpp index 7a1d3047b..d2628b7cf 100644 --- a/poincare/test/logarithm.cpp +++ b/poincare/test/logarithm.cpp @@ -34,7 +34,7 @@ QUIZ_CASE(poincare_logarithm_simplify) { assert_parsed_expression_simplify_to("log(x,1)", Undefined::Name()); assert_parsed_expression_simplify_to("log(12925)", "2*log(5)+log(11)+log(47)"); assert_parsed_expression_simplify_to("ln(12925)", "2*ln(5)+ln(11)+ln(47)"); - assert_parsed_expression_simplify_to("log(1742279/12925, 6)", "(-2*log(5,6))+log(7,6)+3*log(11,6)+log(17,6)-log(47,6)"); + assert_parsed_expression_simplify_to("log(1742279/12925, 6)", "-2*log(5,6)+log(7,6)+3*log(11,6)+log(17,6)-log(47,6)"); assert_parsed_expression_simplify_to("ln(2/3)", "ln(2)-ln(3)"); assert_parsed_expression_simplify_to("log(1742279/12925, -6)", "log(158389/1175,-6)"); assert_parsed_expression_simplify_to("ln(R(2))", "ln(2)/2"); @@ -58,6 +58,6 @@ QUIZ_CASE(poincare_logarithm_simplify) { assert_parsed_expression_simplify_to("log(100)", "2"); assert_parsed_expression_simplify_to("log(1000000)", "6"); assert_parsed_expression_simplify_to("log(70992768,14)", "5+2*log(2,14)+log(3,14)+log(11,14)"); - assert_parsed_expression_simplify_to("log(1/6991712,14)", "(-5)-log(13,14)"); + assert_parsed_expression_simplify_to("log(1/6991712,14)", "-5-log(13,14)"); assert_parsed_expression_simplify_to("log(4,10)", "2*log(2)"); } diff --git a/poincare/test/multiplication.cpp b/poincare/test/multiplication.cpp index 795d85e94..69c34e72b 100644 --- a/poincare/test/multiplication.cpp +++ b/poincare/test/multiplication.cpp @@ -53,7 +53,7 @@ QUIZ_CASE(poincare_multiplication_simplify) { assert_parsed_expression_simplify_to("2^P*(1/2)^P", "1"); assert_parsed_expression_simplify_to("A^3*A^(-3)", "1"); assert_parsed_expression_simplify_to("(x+1)*(x+2)", "2+3*x+x^2"); - assert_parsed_expression_simplify_to("(x+1)*(x-1)", "(-1)+x^2"); + assert_parsed_expression_simplify_to("(x+1)*(x-1)", "-1+x^2"); assert_parsed_expression_simplify_to("11P/(22P+11P)", "1/3"); assert_parsed_expression_simplify_to("11/(22P+11P)", "1/(3*P)"); assert_parsed_expression_simplify_to("-11/(22P+11P)", "-1/(3*P)"); diff --git a/poincare/test/power.cpp b/poincare/test/power.cpp index 26ff90d38..45e51b00b 100644 --- a/poincare/test/power.cpp +++ b/poincare/test/power.cpp @@ -10,7 +10,7 @@ QUIZ_CASE(poincare_power_evaluate) { assert_parsed_expression_evaluates_to("2^3", "8"); assert_parsed_expression_evaluates_to("(3+I)^4", "28+96*I"); assert_parsed_expression_evaluates_to("4^(3+I)", "11.74125+62.91378*I"); - assert_parsed_expression_evaluates_to("(3+I)^(3+I)", "(-11.898191759852)+19.592921596609*I"); + assert_parsed_expression_evaluates_to("(3+I)^(3+I)", "-11.898191759852+19.592921596609*I"); assert_parsed_expression_evaluates_to("0^0", Undefined::Name()); assert_parsed_expression_evaluates_to("0^2", "0"); @@ -61,8 +61,8 @@ QUIZ_CASE(poincare_power_simplify) { assert_parsed_expression_simplify_to("R(x*144)", "12*R(x)"); assert_parsed_expression_simplify_to("R(x*144*P^2)", "12*R(x)*P"); assert_parsed_expression_simplify_to("R(x*144*P)", "12*R(x)*R(P)"); - assert_parsed_expression_simplify_to("(-1)*(2+(-4*R(2)))", "(-2)+4*R(2)"); - assert_parsed_expression_simplify_to("R(2-4*R(2))", "R((-2)+4*R(2))*I"); + assert_parsed_expression_simplify_to("(-1)*(2+(-4*R(2)))", "-2+4*R(2)"); + assert_parsed_expression_simplify_to("R(2-4*R(2))", "R(-2+4*R(2))*I"); assert_parsed_expression_simplify_to("x^(1/2)", "R(x)"); assert_parsed_expression_simplify_to("x^(-1/2)", "1/R(x)"); assert_parsed_expression_simplify_to("x^(1/7)", "root(x,7)"); diff --git a/poincare/test/simplify_mix.cpp b/poincare/test/simplify_mix.cpp index 6ba6b14ff..4db707824 100644 --- a/poincare/test/simplify_mix.cpp +++ b/poincare/test/simplify_mix.cpp @@ -12,10 +12,10 @@ using namespace Poincare; QUIZ_CASE(poincare_simplify_mix) { // Root at denominator - assert_parsed_expression_simplify_to("1/(R(2)+R(3))", "(-R(2))+R(3)"); + assert_parsed_expression_simplify_to("1/(R(2)+R(3))", "-R(2)+R(3)"); assert_parsed_expression_simplify_to("1/(5+R(3))", "(5-R(3))/22"); assert_parsed_expression_simplify_to("1/(R(2)+4)", "(4-R(2))/14"); - assert_parsed_expression_simplify_to("1/(2R(2)-4)", "((-2)-R(2))/4"); + assert_parsed_expression_simplify_to("1/(2R(2)-4)", "(-2-R(2))/4"); assert_parsed_expression_simplify_to("1/(-2R(2)+4)", "(2+R(2))/4"); assert_parsed_expression_simplify_to("45^2", "2025"); assert_parsed_expression_simplify_to("1/(R(2)ln(3))", "R(2)/(2*ln(3))"); @@ -25,14 +25,14 @@ QUIZ_CASE(poincare_simplify_mix) { assert_parsed_expression_simplify_to("(R(2)*P + R(2)*X)/R(2)", "P+X"); assert_parsed_expression_simplify_to("P+(3R(2)-2R(3))/25", "(3*R(2)-2*R(3)+25*P)/25"); assert_parsed_expression_simplify_to("ln(2+3)", "ln(5)"); - assert_parsed_expression_simplify_to("3*A*B*C+4*cos(2)-2*A*B*C+A*B*C+ln(3)+4*A*B-5*A*B*C+cos(3)*ln(5)+cos(2)-45*cos(2)", "(-40*cos(2))+ln(3)+cos(3)*ln(5)+4*A*B-3*A*B*C"); + assert_parsed_expression_simplify_to("3*A*B*C+4*cos(2)-2*A*B*C+A*B*C+ln(3)+4*A*B-5*A*B*C+cos(3)*ln(5)+cos(2)-45*cos(2)", "-40*cos(2)+ln(3)+cos(3)*ln(5)+4*A*B-3*A*B*C"); assert_parsed_expression_simplify_to("2*A+3*cos(2)+3+4*ln(5)+5*A+2*ln(5)+1+0", "4+3*cos(2)+6*ln(5)+7*A"); assert_parsed_expression_simplify_to("2.3*A+3*cos(2)+3+4*ln(5)+5*A+2*ln(5)+1.2+0.235", "(887+600*cos(2)+1200*ln(5)+1460*A)/200"); assert_parsed_expression_simplify_to("2*A*B*C+2.3*A*B+3*A^2+5.2*A*B*C+4*A^2", "(70*A^2+23*A*B+72*A*B*C)/10"); assert_parsed_expression_simplify_to("(A*B)^2*A+4*A^3", "4*A^3+A^3*B^2"); assert_parsed_expression_simplify_to("(A*3)^2*A+4*A^3", "13*A^3"); assert_parsed_expression_simplify_to("A^2^2*A+4*A^3", "4*A^3+A^5"); - assert_parsed_expression_simplify_to("0.5+4*A*B-2.3+2*A*B-2*B*A^C-cos(4)+2*A^C*B+A*B*C*D", "((-9)-5*cos(4)+30*A*B+5*A*B*C*D)/5"); + assert_parsed_expression_simplify_to("0.5+4*A*B-2.3+2*A*B-2*B*A^C-cos(4)+2*A^C*B+A*B*C*D", "(-9-5*cos(4)+30*A*B+5*A*B*C*D)/5"); assert_parsed_expression_simplify_to("(1+R(2))/5", "(1+R(2))/5"); assert_parsed_expression_simplify_to("(2+R(6))^2", "10+4*R(6)"); assert_parsed_expression_simplify_to("tan(3)ln(2)+P", "tan(3)*ln(2)+P"); diff --git a/poincare/test/subtraction.cpp b/poincare/test/subtraction.cpp index cd3817fd3..905e54b7c 100644 --- a/poincare/test/subtraction.cpp +++ b/poincare/test/subtraction.cpp @@ -11,9 +11,9 @@ QUIZ_CASE(poincare_subtraction_evaluate) { #if MATRICES_ARE_DEFINED assert_parsed_expression_evaluates_to("[[1,2][3,4][5,6]]-3", "[[-2,-1][0,1][2,3]]"); - assert_parsed_expression_evaluates_to("[[1,2+I][3,4][5,6]]-(4+I)", "[[(-3)-I,-2][(-1)-I,-I][1-I,2-I]]"); + assert_parsed_expression_evaluates_to("[[1,2+I][3,4][5,6]]-(4+I)", "[[-3-I,-2][-1-I,-I][1-I,2-I]]"); assert_parsed_expression_evaluates_to("3-[[1,2][3,4][5,6]]", "[[2,1][0,-1][-2,-3]]"); - assert_parsed_expression_evaluates_to("3+I-[[1,2+I][3,4][5,6]]", "[[2+I,1][I,(-1)+I][(-2)+I,(-3)+I]]"); + assert_parsed_expression_evaluates_to("3+I-[[1,2+I][3,4][5,6]]", "[[2+I,1][I,-1+I][-2+I,-3+I]]"); assert_parsed_expression_evaluates_to("[[1,2][3,4][5,6]]-[[6,5][4,3][2,1]]", "[[-5,-3][-1,1][3,5]]"); assert_parsed_expression_evaluates_to("[[1,2+I][3,4][5,6]]-[[1,2+I][3,4][5,6]]", "[[0,0][0,0][0,0]]"); #endif diff --git a/poincare/test/trigo.cpp b/poincare/test/trigo.cpp index 58ce6b143..62cd65e48 100644 --- a/poincare/test/trigo.cpp +++ b/poincare/test/trigo.cpp @@ -40,7 +40,7 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("cos(2*I)", "3.7621956910836", Radian); assert_parsed_expression_evaluates_to("cos(2*I)", "1.0006092967033", Degree); // On C - assert_parsed_expression_evaluates_to("cos(I-4)", "(-1.008625)-0.8893952*I", Radian); + assert_parsed_expression_evaluates_to("cos(I-4)", "-1.008625-0.8893952*I", Radian); assert_parsed_expression_evaluates_to("cos(I-4)", "0.997716+0.00121754*I", Degree, Cartesian, 6); /* sin: R -> R (oscillator) @@ -62,7 +62,7 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("sin(-3*I)", "-0.05238381*I", Degree); // On: C assert_parsed_expression_evaluates_to("sin(I-4)", "1.16781-0.768163*I", Radian, Cartesian, 6); - assert_parsed_expression_evaluates_to("sin(I-4)", "(-0.0697671)+0.0174117*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("sin(I-4)", "-0.0697671+0.0174117*I", Degree, Cartesian, 6); assert_parsed_expression_evaluates_to("sin(1.234567890123456E-15)", "1.23457E-15", Radian, Cartesian, 6); /* tan: R -> R (tangent-style) @@ -83,8 +83,8 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("tan(2*I)", "9.6402758007582E-1*I", Radian); assert_parsed_expression_evaluates_to("tan(2*I)", "0.03489241*I", Degree); // On C - assert_parsed_expression_evaluates_to("tan(I-4)", "(-0.273553)+1.00281*I", Radian, Cartesian, 6); - assert_parsed_expression_evaluates_to("tan(I-4)", "(-0.0699054)+0.0175368*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("tan(I-4)", "-0.273553+1.00281*I", Radian, Cartesian, 6); + assert_parsed_expression_evaluates_to("tan(I-4)", "-0.0699054+0.0175368*I", Degree, Cartesian, 6); /* acos: [-1,1] -> R * ]-inf,-1[ -> Pi+R*i (odd imaginary) @@ -129,18 +129,18 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("asin(2)", "1.5707963267949-1.3169578969248*I", Radian); assert_parsed_expression_evaluates_to("asin(2)", "90-75.456129290217*I", Degree); // Symmetry: odd - assert_parsed_expression_evaluates_to("asin(-2)", "(-1.5707963267949)+1.3169578969248*I", Radian); - assert_parsed_expression_evaluates_to("asin(-2)", "(-90)+75.456129290217*I", Degree); + assert_parsed_expression_evaluates_to("asin(-2)", "-1.5707963267949+1.3169578969248*I", Radian); + assert_parsed_expression_evaluates_to("asin(-2)", "-90+75.456129290217*I", Degree); // On ]-inf, -1[ - assert_parsed_expression_evaluates_to("asin(-32)", "(-1.571)+4.159*I", Radian, Cartesian, 4); - assert_parsed_expression_evaluates_to("asin(-32)", "(-90)+238*I", Degree, Cartesian, 3); + assert_parsed_expression_evaluates_to("asin(-32)", "-1.571+4.159*I", Radian, Cartesian, 4); + assert_parsed_expression_evaluates_to("asin(-32)", "-90+238*I", Degree, Cartesian, 3); // On R*i assert_parsed_expression_evaluates_to("asin(3*I)", "1.8184464592321*I", Radian); // Symmetry: odd assert_parsed_expression_evaluates_to("asin(-3*I)", "-1.8184464592321*I", Radian); // On C - assert_parsed_expression_evaluates_to("asin(I-4)", "(-1.3186)+2.0966*I", Radian, Cartesian, 5); - assert_parsed_expression_evaluates_to("asin(I-4)", "(-75.551)+120.13*I", Degree, Cartesian, 5); + assert_parsed_expression_evaluates_to("asin(I-4)", "-1.3186+2.0966*I", Radian, Cartesian, 5); + assert_parsed_expression_evaluates_to("asin(I-4)", "-75.551+120.13*I", Degree, Cartesian, 5); // Key values assert_parsed_expression_evaluates_to("asin(0)", "0", Degree); assert_parsed_expression_evaluates_to("asin(-1)", "-90", Degree); @@ -165,13 +165,13 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("atan(26*I)", "1.5707963267949+3.8480520568064E-2*I", Radian); assert_parsed_expression_evaluates_to("atan(26*I)", "90+2.2047714220164*I", Degree); // Symmetry: odd - assert_parsed_expression_evaluates_to("atan(-26*I)", "(-1.5707963267949)-3.8480520568064E-2*I", Radian); + assert_parsed_expression_evaluates_to("atan(-26*I)", "-1.5707963267949-3.8480520568064E-2*I", Radian); // On ]-inf*i, -i[ - assert_parsed_expression_evaluates_to("atan(-3.4*I)", "(-1.570796)-0.3030679*I", Radian); - assert_parsed_expression_evaluates_to("atan(-3.4*I)", "(-90)-17.3645*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("atan(-3.4*I)", "-1.570796-0.3030679*I", Radian); + assert_parsed_expression_evaluates_to("atan(-3.4*I)", "-90-17.3645*I", Degree, Cartesian, 6); // On C - assert_parsed_expression_evaluates_to("atan(I-4)", "(-1.338973)+0.05578589*I", Radian); - assert_parsed_expression_evaluates_to("atan(I-4)", "(-76.7175)+3.1963*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("atan(I-4)", "-1.338973+0.05578589*I", Radian); + assert_parsed_expression_evaluates_to("atan(I-4)", "-76.7175+3.1963*I", Degree, Cartesian, 6); // Key values assert_parsed_expression_evaluates_to("atan(0)", "0", Degree); assert_parsed_expression_evaluates_to("atan(-I)", "-inf*I", Radian); @@ -214,8 +214,8 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("sinh(8*P*I/2)", "0", Radian); assert_parsed_expression_evaluates_to("sinh(9*P*I/2)", "I", Radian); // On C - assert_parsed_expression_evaluates_to("sinh(I-4)", "(-14.7448)+22.9791*I", Radian, Cartesian, 6); - assert_parsed_expression_evaluates_to("sinh(I-4)", "(-14.7448)+22.9791*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("sinh(I-4)", "-14.7448+22.9791*I", Radian, Cartesian, 6); + assert_parsed_expression_evaluates_to("sinh(I-4)", "-14.7448+22.9791*I", Degree, Cartesian, 6); /* tanh: R -> R (odd) * R*i -> R*i (tangent-style) @@ -234,8 +234,8 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("tanh(8*P*I/2)", "0", Radian); assert_parsed_expression_evaluates_to("tanh(9*P*I/2)", Undefined::Name(), Radian);*/ // On C - assert_parsed_expression_evaluates_to("tanh(I-4)", "(-1.00028)+0.000610241*I", Radian, Cartesian, 6); - assert_parsed_expression_evaluates_to("tanh(I-4)", "(-1.00028)+0.000610241*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("tanh(I-4)", "-1.00028+0.000610241*I", Radian, Cartesian, 6); + assert_parsed_expression_evaluates_to("tanh(I-4)", "-1.00028+0.000610241*I", Degree, Cartesian, 6); /* acosh: [-1,1] -> R*i * ]-inf,-1[ -> Pi*i+R (even on real) @@ -284,14 +284,14 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("asinh(-0.2*I)", "-2.0135792079033E-1*I", Radian); assert_parsed_expression_evaluates_to("asinh(-0.2*I)", "-0.2013579*I", Degree); // On ]-inf*i, -i[ - assert_parsed_expression_evaluates_to("asinh(-22*I)", "(-3.7836727043295)-1.5707963267949*I", Radian); - assert_parsed_expression_evaluates_to("asinh(-22*I)", "(-3.784)-1.571*I", Degree, Cartesian, 4); + assert_parsed_expression_evaluates_to("asinh(-22*I)", "-3.7836727043295-1.5707963267949*I", Radian); + assert_parsed_expression_evaluates_to("asinh(-22*I)", "-3.784-1.571*I", Degree, Cartesian, 4); // On ]i, inf*i[, Symmetry: odd assert_parsed_expression_evaluates_to("asinh(22*I)", "3.7836727043295+1.5707963267949*I", Radian); assert_parsed_expression_evaluates_to("asinh(22*I)", "3.784+1.571*I", Degree, Cartesian, 4); // On C - assert_parsed_expression_evaluates_to("asinh(I-4)", "(-2.123)+0.2383*I", Radian, Cartesian, 4); - assert_parsed_expression_evaluates_to("asinh(I-4)", "(-2.123)+0.2383*I", Degree, Cartesian, 4); + assert_parsed_expression_evaluates_to("asinh(I-4)", "-2.123+0.2383*I", Radian, Cartesian, 4); + assert_parsed_expression_evaluates_to("asinh(I-4)", "-2.123+0.2383*I", Degree, Cartesian, 4); /* atanh: [-1,1] -> R (odd) * ]-inf,-1[ -> Pi/2*i+R (odd) @@ -308,8 +308,8 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("atanh(4)", "0.255412811883-1.5707963267949*I", Radian); assert_parsed_expression_evaluates_to("atanh(4)", "0.2554128-1.570796*I", Degree); // On ]-inf,-1[, Symmetry: odd - assert_parsed_expression_evaluates_to("atanh(-4)", "(-0.255412811883)+1.5707963267949*I", Radian); - assert_parsed_expression_evaluates_to("atanh(-4)", "(-0.2554128)+1.570796*I", Degree); + assert_parsed_expression_evaluates_to("atanh(-4)", "-0.255412811883+1.5707963267949*I", Radian); + assert_parsed_expression_evaluates_to("atanh(-4)", "-0.2554128+1.570796*I", Degree); // On R*i assert_parsed_expression_evaluates_to("atanh(4*I)", "1.325817663668*I", Radian); assert_parsed_expression_evaluates_to("atanh(4*I)", "1.325818*I", Radian); @@ -317,8 +317,8 @@ QUIZ_CASE(poincare_trigo_evaluate) { assert_parsed_expression_evaluates_to("atanh(-4*I)", "-1.325817663668*I", Radian); assert_parsed_expression_evaluates_to("atanh(-4*I)", "-1.325818*I", Radian); // On C - assert_parsed_expression_evaluates_to("atanh(I-4)", "(-0.238878)+1.50862*I", Radian, Cartesian, 6); - assert_parsed_expression_evaluates_to("atanh(I-4)", "(-0.238878)+1.50862*I", Degree, Cartesian, 6); + assert_parsed_expression_evaluates_to("atanh(I-4)", "-0.238878+1.50862*I", Radian, Cartesian, 6); + assert_parsed_expression_evaluates_to("atanh(I-4)", "-0.238878+1.50862*I", Degree, Cartesian, 6); // WARNING: evaluate on branch cut can be multivalued assert_parsed_expression_evaluates_to("acos(2)", "1.3169578969248*I", Radian); @@ -390,13 +390,13 @@ QUIZ_CASE(poincare_trigo_simplify) { assert_parsed_expression_simplify_to("sin(P*340000)", "0"); assert_parsed_expression_simplify_to("sin(P*340001)", "0"); assert_parsed_expression_simplify_to("sin(-P*340001)", "0"); - assert_parsed_expression_simplify_to("sin(P/12)", "((-R(2))+R(6))/4"); + assert_parsed_expression_simplify_to("sin(P/12)", "(-R(2)+R(6))/4"); assert_parsed_expression_simplify_to("sin(-P/12)", "(R(2)-R(6))/4"); assert_parsed_expression_simplify_to("sin(-P*R(2))", "-sin(R(2)*P)"); assert_parsed_expression_simplify_to("sin(1311P/6)", "1"); assert_parsed_expression_simplify_to("sin(-P17/8)", "-R(2-R(2))/2"); assert_parsed_expression_simplify_to("sin(41P/6)", "1/2"); - assert_parsed_expression_simplify_to("sin(-3P/10)", "((-1)-R(5))/4"); + assert_parsed_expression_simplify_to("sin(-3P/10)", "(-1-R(5))/4"); assert_parsed_expression_simplify_to("sin(P/4+1000P)", "R(2)/2"); assert_parsed_expression_simplify_to("sin(-P/3)", "-R(3)/2"); assert_parsed_expression_simplify_to("sin(17P/5)", "-(R(2)*R(5+R(5)))/4"); @@ -408,7 +408,7 @@ QUIZ_CASE(poincare_trigo_simplify) { assert_parsed_expression_simplify_to("sin(61200000)", "0", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("sin(61200180)", "0", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("sin(-61200180)", "0", Preferences::AngleUnit::Degree); - assert_parsed_expression_simplify_to("sin(15)", "((-R(2))+R(6))/4", Preferences::AngleUnit::Degree); + assert_parsed_expression_simplify_to("sin(15)", "(-R(2)+R(6))/4", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("sin(-15)", "(R(2)-R(6))/4", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("sin(-180*R(2))", "-sin(180*R(2))", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("sin(39330)", "1", Preferences::AngleUnit::Degree); @@ -427,7 +427,7 @@ QUIZ_CASE(poincare_trigo_simplify) { assert_parsed_expression_simplify_to("tan(P*340001)", "0"); assert_parsed_expression_simplify_to("tan(-P*340001)", "0"); assert_parsed_expression_simplify_to("tan(P/12)", "2-R(3)"); - assert_parsed_expression_simplify_to("tan(-P/12)", "(-2)+R(3)"); + assert_parsed_expression_simplify_to("tan(-P/12)", "-2+R(3)"); assert_parsed_expression_simplify_to("tan(-P*R(2))", "-tan(R(2)*P)"); assert_parsed_expression_simplify_to("tan(1311P/6)", Undefined::Name()); assert_parsed_expression_simplify_to("tan(-P17/8)", "1-R(2)"); @@ -443,7 +443,7 @@ QUIZ_CASE(poincare_trigo_simplify) { assert_parsed_expression_simplify_to("tan(61200180)", "0", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("tan(-61200180)", "0", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("tan(15)", "2-R(3)", Preferences::AngleUnit::Degree); - assert_parsed_expression_simplify_to("tan(-15)", "(-2)+R(3)", Preferences::AngleUnit::Degree); + assert_parsed_expression_simplify_to("tan(-15)", "-2+R(3)", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("tan(-180*R(2))", "-tan(180*R(2))", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("tan(39330)", Undefined::Name(), Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("tan(-382.5)", "1-R(2)", Preferences::AngleUnit::Degree); @@ -453,14 +453,14 @@ QUIZ_CASE(poincare_trigo_simplify) { assert_parsed_expression_simplify_to("tan(tan(tan(tan(9))))", "tan(tan(tan(tan(9))))"); // -- acos assert_parsed_expression_simplify_to("acos(-1/2)", "(2*P)/3"); - assert_parsed_expression_simplify_to("acos(-1.2)", "(-acos(6/5))+P"); + assert_parsed_expression_simplify_to("acos(-1.2)", "-acos(6/5)+P"); assert_parsed_expression_simplify_to("acos(cos(2/3))", "2/3"); assert_parsed_expression_simplify_to("acos(cos(3/2))", "3/2"); assert_parsed_expression_simplify_to("cos(acos(3/2))", "3/2"); assert_parsed_expression_simplify_to("cos(acos(2/3))", "2/3"); assert_parsed_expression_simplify_to("acos(cos(12))", "acos(cos(12))"); assert_parsed_expression_simplify_to("acos(cos(4P/7))", "(4*P)/7"); - assert_parsed_expression_simplify_to("acos(-cos(2))", "(-2)+P"); + assert_parsed_expression_simplify_to("acos(-cos(2))", "-2+P"); assert_parsed_expression_simplify_to("acos(-1/2)", "120", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("acos(-1.2)", "180-acos(6/5)", Preferences::AngleUnit::Degree); assert_parsed_expression_simplify_to("acos(cos(2/3))", "2/3", Preferences::AngleUnit::Degree);