### Question:
JsclMathEngine implements MathEngine { @Nonnull public String evaluate(@Nonnull String expression) throws ParseException { return evaluateGeneric(expression).toString(); } JsclMathEngine(); @Nonnull static JsclMathEngine getInstance(); @Nonnull String evaluate(@Nonnull String expression); @Nonnull String simplify(@Nonnull String expression); @Nonnull String elementary(@Nonnull String expression); @Nonnull Generic evaluateGeneric(@Nonnull String expression); @Nonnull Generic simplifyGeneric(@Nonnull String expression); @Nonnull Generic elementaryGeneric(@Nonnull String expression); @Nonnull MathRegistry<Function> getFunctionsRegistry(); @Nonnull MathRegistry<Operator> getOperatorsRegistry(); @Nonnull MathRegistry<Operator> getPostfixFunctionsRegistry(); @Nonnull AngleUnit getAngleUnits(); void setAngleUnits(@Nonnull AngleUnit angleUnits); @Nonnull NumeralBase getNumeralBase(); void setNumeralBase(@Nonnull NumeralBase numeralBase); @Nonnull MathRegistry<IConstant> getConstantsRegistry(); @Nonnull String format(double value); @Nonnull String format(double value, @Nonnull NumeralBase nb); @Override String format(@Nonnull BigInteger value); @Nonnull String format(@Nonnull BigInteger value, @Nonnull NumeralBase nb); @Nonnull MessageRegistry getMessageRegistry(); void setMessageRegistry(@Nonnull MessageRegistry messageRegistry); @Nonnull @Override String format(@Nonnull String value, @Nonnull NumeralBase nb); @Nonnull String insertSeparators(@Nonnull String value, @Nonnull NumeralBase nb); void setPrecision(int precision); void setNotation(int notation); char getGroupingSeparator(); void setGroupingSeparator(char separator); static final AngleUnit DEFAULT_ANGLE_UNITS; static final NumeralBase DEFAULT_NUMERAL_BASE; static final char GROUPING_SEPARATOR_DEFAULT; }### Answer:
@Test public void testPiComputation() throws Exception { assertEquals("-1+0*i", me.evaluate("exp(√(-1)*Π)")); }