public void test_SBML_C_parseL3Formula_parselogsettings() { ASTNode r = libsbml.parseL3Formula("log(4.4)"); ASTNode c; assertTrue( r.getType() == libsbml.AST_FUNCTION_LOG ); assertTrue( r.getNumChildren() == 2 ); c = r.getLeftChild(); assertTrue( c.getType() == libsbml.AST_INTEGER ); assertTrue( c.getInteger() == 10 ); assertTrue( c.getNumChildren() == 0 ); c = r.getRightChild(); assertTrue( c.getType() == libsbml.AST_REAL ); assertTrue( c.getReal() == 4.4 ); assertTrue( c.getNumChildren() == 0 ); r = null; L3ParserSettings settings = new L3ParserSettings(); settings.setParseLog(libsbml.L3P_PARSE_LOG_AS_LN); assertTrue( settings.getParseLog() == libsbml.L3P_PARSE_LOG_AS_LN ); r = libsbml.parseL3FormulaWithSettings("log(4.4)", settings); assertTrue( r.getType() == libsbml.AST_FUNCTION_LN ); assertTrue( r.getNumChildren() == 1 ); c = r.getLeftChild(); assertTrue( c.getType() == libsbml.AST_REAL ); assertTrue( c.getReal() == 4.4 ); assertTrue( c.getNumChildren() == 0 ); r = null; settings.setParseLog(libsbml.L3P_PARSE_LOG_AS_LOG10); assertTrue( settings.getParseLog() == libsbml.L3P_PARSE_LOG_AS_LOG10 ); r = libsbml.parseL3FormulaWithSettings("log(4.4)", settings); assertTrue( r.getType() == libsbml.AST_FUNCTION_LOG ); assertTrue( r.getNumChildren() == 2 ); c = r.getLeftChild(); assertTrue( c.getType() == libsbml.AST_INTEGER ); assertTrue( c.getInteger() == 10 ); assertTrue( c.getNumChildren() == 0 ); c = r.getRightChild(); assertTrue( c.getType() == libsbml.AST_REAL ); assertTrue( c.getReal() == 4.4 ); assertTrue( c.getNumChildren() == 0 ); r = null; settings.setParseLog(libsbml.L3P_PARSE_LOG_AS_ERROR); assertTrue( settings.getParseLog() == libsbml.L3P_PARSE_LOG_AS_ERROR ); r = libsbml.parseL3FormulaWithSettings("log(4.4)", settings); assertTrue( r == null ); assertTrue(( "Error when parsing input 'log(4.4)' at position 8: Writing a function as 'log(x)' was legal in the L1 parser, but translated as the natural log, not the base-10 log. This construct is disallowed entirely as being ambiguous, and you are encouraged instead to use 'ln(x)', 'log10(x)', or 'log(base, x)'." == libsbml.getLastParseL3Error() )); settings = null; }