mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-26 09:10:48 +01:00
[poincare] Fix tests by using the UnknownX charset
This commit is contained in:
@@ -151,6 +151,7 @@ trace { *yylval = MatrixTrace(); return FUNCTION; }
|
||||
transpose { *yylval = MatrixTranspose(); return FUNCTION; }
|
||||
undef { *yylval = Undefined(); return TERM; }
|
||||
inf { *yylval = Infinity(false); return TERM; }
|
||||
\x1 { *yylval = Poincare::Symbol(yytext[0]); return FINAL_SYMBOL; } /* UnknownX */
|
||||
\x8a { *yylval = Poincare::Symbol(yytext[0]); return FINAL_SYMBOL; } /* Pi */
|
||||
\x8c { *yylval = Poincare::Symbol(yytext[0]); return FINAL_SYMBOL; } /* I complex */
|
||||
\x8f { *yylval = Poincare::Symbol(yytext[0]); return FINAL_SYMBOL; } /* Exponential */
|
||||
|
||||
@@ -40,6 +40,7 @@ void translate_in_special_chars(char * expression) {
|
||||
case 'P': *c = Ion::Charset::SmallPi; break;
|
||||
case '*': *c = Ion::Charset::MultiplicationSign; break;
|
||||
case '>': *c = Ion::Charset::Sto; break;
|
||||
case '?': *c = Poincare::Symbol::SpecialSymbols::UnknownX; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,6 +56,7 @@ void translate_in_ASCII_chars(char * expression) {
|
||||
case Ion::Charset::MultiplicationSign: *c = '*'; break;
|
||||
case Ion::Charset::MiddleDot: *c = '*'; break;
|
||||
case Ion::Charset::Sto: *c = '>'; break;
|
||||
case Poincare::Symbol::SpecialSymbols::UnknownX: *c = '?'; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,17 +66,17 @@ void assert_parsed_expression_has_characteristic_range(const char * expression,
|
||||
}
|
||||
|
||||
QUIZ_CASE(poincare_characteristic_range) {
|
||||
assert_parsed_expression_has_characteristic_range("cos(x)", 360.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(-x)", 360.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(x)", 2.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("cos(-x)", 2.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*x+10)", 40.0f);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*x+10)+cos(x/2)", 720.0f);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*x+10)+cos(x/2)", 4.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("x", NAN);
|
||||
assert_parsed_expression_has_characteristic_range("cos(?)", 360.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(-?)", 360.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(?)", 2.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("cos(-?)", 2.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*?+10)", 40.0f);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*?+10)+cos(?/2)", 720.0f);
|
||||
assert_parsed_expression_has_characteristic_range("sin(9*?+10)+cos(?/2)", 4.0f*M_PI, Preferences::AngleUnit::Radian);
|
||||
assert_parsed_expression_has_characteristic_range("?", NAN);
|
||||
assert_parsed_expression_has_characteristic_range("cos(3)+2", 0.0f);
|
||||
assert_parsed_expression_has_characteristic_range("log(cos(40*x))", 9.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(cos(x))", 360.0f);
|
||||
assert_parsed_expression_has_characteristic_range("log(cos(40*?))", 9.0f);
|
||||
assert_parsed_expression_has_characteristic_range("cos(cos(?))", 360.0f);
|
||||
}
|
||||
|
||||
void assert_parsed_expression_has_variables(const char * expression, const char * variables[]) {
|
||||
|
||||
Reference in New Issue
Block a user