#include #include #include #include "helper.h" using namespace Poincare; QUIZ_CASE(poincare_complex_to_expression) { assert_parsed_expression_evaluates_to("0", "0"); assert_parsed_expression_evaluates_to("0", "0", System, Radian, Polar); assert_parsed_expression_evaluates_to("0", "0"); assert_parsed_expression_evaluates_to("0", "0", System, Radian, Polar); assert_parsed_expression_evaluates_to("10", "10"); assert_parsed_expression_evaluates_to("-10", "-10"); assert_parsed_expression_evaluates_to("100", "100"); assert_parsed_expression_evaluates_to("0.1", "0.1"); assert_parsed_expression_evaluates_to("0.1234567", "0.1234567"); assert_parsed_expression_evaluates_to("0.12345678", "0.1234568"); assert_parsed_expression_evaluates_to("1+2×𝐒", "1+2×𝐒"); assert_parsed_expression_evaluates_to("1+𝐒-𝐒", "1"); assert_parsed_expression_evaluates_to("1+𝐒-1", "𝐒"); assert_parsed_expression_evaluates_to("1+𝐒", "1+𝐒"); assert_parsed_expression_evaluates_to("3+𝐒", "3+𝐒"); assert_parsed_expression_evaluates_to("3-𝐒", "3-𝐒"); assert_parsed_expression_evaluates_to("3-𝐒-3", "-𝐒"); assert_parsed_expression_evaluates_to("10", "10", System, Radian, Polar); assert_parsed_expression_evaluates_to("-10", "10Γ—β„―^(3.141593×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("100", "100", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.1", "0.1", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.1234567", "0.1234567", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.12345678", "0.1234568", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+2×𝐒", "2.236068Γ—β„―^(1.107149×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+𝐒-𝐒", "1", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+𝐒-1", "β„―^(1.570796×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+𝐒", "1.414214Γ—β„―^(0.7853982×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("3+𝐒", "3.162278Γ—β„―^(0.3217506×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("3-𝐒", "3.162278Γ—β„―^(-0.3217506×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("3-𝐒-3", "β„―^(-1.570796×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("10", "10"); assert_parsed_expression_evaluates_to("-10", "-10"); assert_parsed_expression_evaluates_to("100", "100"); assert_parsed_expression_evaluates_to("0.1", "0.1"); assert_parsed_expression_evaluates_to("0.12345678901234", "1.2345678901234ᴇ-1"); assert_parsed_expression_evaluates_to("0.123456789012345", "1.2345678901235ᴇ-1"); assert_parsed_expression_evaluates_to("1+2×𝐒", "1+2×𝐒"); assert_parsed_expression_evaluates_to("1+𝐒-𝐒", "1"); assert_parsed_expression_evaluates_to("1+𝐒-1", "𝐒"); assert_parsed_expression_evaluates_to("1+𝐒", "1+𝐒"); assert_parsed_expression_evaluates_to("3+𝐒", "3+𝐒"); assert_parsed_expression_evaluates_to("3-𝐒", "3-𝐒"); assert_parsed_expression_evaluates_to("3-𝐒-3", "-𝐒"); assert_parsed_expression_evaluates_to("10", "10", System, Radian, Polar); assert_parsed_expression_evaluates_to("-10", "10Γ—β„―^(3.1415926535898×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("100", "100", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.1", "0.1", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.1234567", "0.1234567", System, Radian, Polar); assert_parsed_expression_evaluates_to("0.12345678", "0.12345678", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+2×𝐒", "2.2360679775Γ—β„―^(1.10714871779×𝐒)", System, Radian, Polar, 12); assert_parsed_expression_evaluates_to("1+𝐒-𝐒", "1", System, Radian, Polar); assert_parsed_expression_evaluates_to("1+𝐒-1", "β„―^(1.57079632679×𝐒)", System, Radian, Polar, 12); assert_parsed_expression_evaluates_to("1+𝐒", "1.41421356237Γ—β„―^(0.785398163397×𝐒)", System, Radian, Polar, 12); assert_parsed_expression_evaluates_to("3+𝐒", "3.16227766017Γ—β„―^(0.321750554397×𝐒)", System, Radian, Polar,12); assert_parsed_expression_evaluates_to("3-𝐒", "3.16227766017Γ—β„―^(-0.321750554397×𝐒)", System, Radian, Polar,12); assert_parsed_expression_evaluates_to("3-𝐒-3", "β„―^(-1.57079632679×𝐒)", System, Radian, Polar,12); assert_parsed_expression_evaluates_to("2+3×𝐒", "3.60555127546Γ—β„―^(0.982793723247×𝐒)", System, Radian, Polar, 12); assert_parsed_expression_evaluates_to("3.60555127546Γ—β„―^(0.982793723247×𝐒)", "2+3×𝐒", System, Radian, Cartesian, 12); assert_parsed_expression_evaluates_to("12.04159457879229548012824103Γ—β„―^(1.4876550949×𝐒)", "1+12×𝐒", System, Radian, Cartesian, 5); assert_parsed_expression_evaluates_to("-2ᴇ20+2ᴇ20×𝐒", "-2ᴇ20+2ᴇ20×𝐒"); assert_parsed_expression_evaluates_to("-2ᴇ20+2ᴇ20×𝐒", "2.828427ᴇ20Γ—β„―^(2.356194×𝐒)", System, Radian, Polar); assert_parsed_expression_evaluates_to("1ᴇ155-1ᴇ155×𝐒", "1ᴇ155-1ᴇ155×𝐒"); assert_parsed_expression_evaluates_to("1ᴇ155-1ᴇ155×𝐒", "1.41421356237ᴇ155Γ—β„―^(-0.785398163397×𝐒)", System, Radian, Polar,12); assert_parsed_expression_evaluates_to("-2ᴇ100+2ᴇ100×𝐒", Undefined::Name()); assert_parsed_expression_evaluates_to("-2ᴇ360+2ᴇ360×𝐒", Undefined::Name()); assert_parsed_expression_evaluates_to("-2ᴇ100+2ᴇ10×𝐒", "-inf+2ᴇ10×𝐒"); assert_parsed_expression_evaluates_to("-2ᴇ360+2×𝐒", "-inf+2×𝐒"); assert_parsed_expression_evaluates_to("undef+2ᴇ100×𝐒", Undefined::Name()); assert_parsed_expression_evaluates_to("-2ᴇ360+undef×𝐒", Undefined::Name()); assert_parsed_expression_evaluates_to("2Γ—β„―^(𝐒)", "2Γ—β„―^𝐒", System, Radian, Polar, 5); assert_parsed_expression_evaluates_to("2Γ—β„―^(-𝐒)", "2Γ—β„―^(-𝐒)", System, Radian, Polar, 5); }