END_TEST START_TEST (test_L3FormulaFormatter_parseUnits) { StringBuffer_t *sb = StringBuffer_create(42); char *s = StringBuffer_getBuffer(sb); ASTNode_t *n = ASTNode_create(); L3ParserSettings_t* l3ps = L3ParserSettings_create(); ASTNode_setReal(n, 1.1); ASTNode_setUnits(n, "mL"); //default (true) s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "1.1 mL"), NULL ); safe_free(s); //explicit false L3ParserSettings_setParseUnits(l3ps, 0); s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "1.1"), NULL ); safe_free(s); //explicit true L3ParserSettings_setParseUnits(l3ps, 1); s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "1.1 mL"), NULL ); safe_free(s); ASTNode_free(n); L3ParserSettings_free(l3ps); }
/** @cond doxygenIgnored */ LIBSBML_EXTERN char * SBML_formulaToL3String (const ASTNode_t *tree) { L3ParserSettings_t* l3ps = L3ParserSettings_create(); char* ret = SBML_formulaToL3StringWithSettings(tree, l3ps); L3ParserSettings_free(l3ps); return ret; }
END_TEST START_TEST (test_L3FormulaFormatter_collapseMinus) { StringBuffer_t *sb = StringBuffer_create(42); char *s = StringBuffer_getBuffer(sb); ASTNode_t *n = ASTNode_create(); ASTNode_t *c = ASTNode_create(); ASTNode_t *c2 = ASTNode_create(); ASTNode_t *c3 = ASTNode_create(); ASTNode_t *c4 = ASTNode_create(); L3ParserSettings_t* l3ps = L3ParserSettings_create(); ASTNode_setType(n, AST_MINUS); ASTNode_setType(c, AST_MINUS); ASTNode_addChild(n, c); ASTNode_setType(c2, AST_MINUS); ASTNode_addChild(c, c2); ASTNode_setType(c3, AST_MINUS); ASTNode_addChild(c2, c3); ASTNode_setName(c4, "x"); ASTNode_addChild(c3, c4); //default (false) s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "----x"), NULL ); safe_free(s); //explicit false L3ParserSettings_setParseCollapseMinus(l3ps, 0); s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "----x"), NULL ); safe_free(s); //explicit true L3ParserSettings_setParseCollapseMinus(l3ps, 1); s = SBML_formulaToL3StringWithSettings(n, l3ps); fail_unless( !strcmp(s, "x"), NULL ); safe_free(s); ASTNode_free(n); L3ParserSettings_free(l3ps); }