END_TEST #endif START_TEST (test_parse_function_vector_0args) { const char* expected = wrapMathML ( " <vector/>\n" ); N = SBML_parseL3Formula("vector()"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST #if (0) START_TEST (test_parse_function_matrix_empty) { const char* expected = wrapMathML ( " <matrix/>\n" ); N = SBML_parseL3Formula("matrix()"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_vector_1args) { const char* expected = wrapMathML ( " <vector>\n" " <ci> x </ci>\n" " </vector>\n" ); N = SBML_parseL3Formula("vector(x)"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_determinant) { const char* expected = wrapMathML ( " <apply>\n" " <determinant/>\n" " <ci> a </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("determinant(a)"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_selector_1args) { const char* expected = wrapMathML ( " <apply>\n" " <selector/>\n" " <ci> a </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("selector(a)"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_matrix_emptyrows) { ASTNode_t *r = SBML_parseL3Formula("matrix(matrixrow(), matrixrow())"); const char* expected = wrapMathML ( " <matrix>\n" " <matrixrow/>\n" " <matrixrow/>\n" " </matrix>\n" ); N = SBML_parseL3Formula("matrix(matrixrow(), matrixrow())"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_outer) { const char* expected = wrapMathML ( " <apply>\n" " <outerproduct/>\n" " <ci> a </ci>\n" " <ci> x </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("outer(a, x)"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
LIBSBML_CPP_NAMESPACE_USE CK_CPPSTART #endif START_TEST (test_parse_brackets_0args) { const char* expected = wrapMathML ( " <apply>\n" " <selector/>\n" " <ci> a </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("a[]"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_matrix_1row) { const char* expected = wrapMathML ( " <matrix>\n" " <matrixrow>\n" " <ci> x </ci>\n" " <ci> y </ci>\n" " </matrixrow>\n" " </matrix>\n" ); N = SBML_parseL3Formula("matrix(matrixrow(x, y))"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_brackets_2args) { const char* expected = wrapMathML ( " <apply>\n" " <selector/>\n" " <ci> a </ci>\n" " <ci> x </ci>\n" " <ci> y </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("a[x, y]"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_element_determinant) { const char* s = wrapMathML ( " <apply>" " <determinant/>" " <ci> A </ci>" " </apply>" ); N = readMathMLFromStringWithNamespaces(s, NS); fail_unless( N != NULL ); fail_unless( N->getType() == AST_ORIGINATES_IN_PACKAGE); fail_unless( N->getExtendedType() == AST_LINEAR_ALGEBRA_DETERMINANT); fail_unless( N->getNumChildren() == 1); fail_unless( N->getPackageName() == "arrays"); ASTNode * child = N->getChild(0); fail_unless( child != NULL ); fail_unless( child->getType() == AST_NAME); fail_unless( child->getExtendedType() == AST_NAME); fail_unless( strcmp(child->getName(), "A") == 0); fail_unless( child->getNumChildren() == 0); fail_unless( child->getPackageName() == "core"); ArraysASTPlugin* plugin = static_cast<ArraysASTPlugin*>(N->getPlugin("arrays")); fail_unless(plugin != NULL); fail_unless(plugin->getASTType() == AST_LINEAR_ALGEBRA_DETERMINANT); }
END_TEST START_TEST (test_parse_curlybraces_semicolons_short) { const char* expected = wrapMathML ( " <matrix>\n" " <matrixrow>\n" " <ci> x </ci>\n" " </matrixrow>\n" " <matrixrow>\n" " <ci> p </ci>\n" " </matrixrow>\n" " </matrix>\n" ); N = SBML_parseL3Formula("{x; p}"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_curlybraces_2args) { const char* expected = wrapMathML ( " <vector>\n" " <ci> x </ci>\n" " <apply>\n" " <power/>\n" " <ci> a </ci>\n" " <ci> b </ci>\n" " </apply>\n" " </vector>\n" ); N = SBML_parseL3Formula("{x, a^b}"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
END_TEST START_TEST (test_parse_function_selector_needNoParens2) { const char* expected = wrapMathML ( " <apply>\n" " <selector/>\n" " <vector>\n" " <cn type=\"integer\"> 1 </cn>\n" " <cn type=\"integer\"> 2 </cn>\n" " <cn type=\"integer\"> 3 </cn>\n" " <cn type=\"integer\"> 4 </cn>\n" " </vector>\n" " <ci> x </ci>\n" " </apply>\n" ); N = SBML_parseL3Formula("selector({1, 2, 3, 4},x)"); S = writeMathMLToString(N); fail_unless( equals(expected, S) ); }
CK_CPPSTART START_TEST (test_element_vector) { const char* s = wrapMathML ( "<vector>" " <apply>" " <cos/>" " <cn type=\"integer\"> 5 </cn>" " </apply>" " <ci> y </ci>" "</vector>\n" ); N = readMathMLFromStringWithNamespaces(s, NS); fail_unless( N != NULL ); fail_unless( N->getType() == AST_ORIGINATES_IN_PACKAGE); fail_unless( N->getExtendedType() == AST_LINEAR_ALGEBRA_VECTOR_CONSTRUCTOR); fail_unless( N->getNumChildren() == 2); fail_unless( N->getPackageName() == "arrays"); ASTNode * child = N->getChild(0); fail_unless( child != NULL ); fail_unless( child->getType() == AST_FUNCTION_COS); fail_unless( child->getExtendedType() == AST_FUNCTION_COS); fail_unless( child->getNumChildren() == 1); fail_unless( child->getPackageName() == "core"); ASTNode *c1 = child->getChild(0); fail_unless( c1 != NULL ); fail_unless( c1->getType() == AST_INTEGER); fail_unless( c1->getExtendedType() == AST_INTEGER); fail_unless( c1->getNumChildren() == 0); fail_unless( c1->getInteger() == 5); child = N->getChild(1); fail_unless( child != NULL ); fail_unless( child->getType() == AST_NAME); fail_unless( child->getExtendedType() == AST_NAME); fail_unless( strcmp(child->getName(), "y") == 0); fail_unless( child->getNumChildren() == 0); ArraysASTPlugin* plugin = static_cast<ArraysASTPlugin*>(N->getPlugin("arrays")); fail_unless(plugin != NULL); fail_unless(plugin->getASTType() == AST_LINEAR_ALGEBRA_VECTOR_CONSTRUCTOR); plugin = static_cast<ArraysASTPlugin*>(child->getPlugin("arrays")); fail_unless(plugin != NULL); fail_unless(plugin->getASTType() == AST_ARRAYS_UNKNOWN); }
END_TEST START_TEST (test_element_matrix) { const char* s = wrapMathML ( "<matrix>" "<matrixrow>" "<apply>" "<cos/>" "<cn type=\"integer\"> 5 </cn>" "</apply>" "<ci> y </ci>" "</matrixrow>" "<matrixrow>" "<cn type=\"integer\"> 2 </cn>" "<apply>" "<cos/>" "<cn type=\"integer\"> 5 </cn>" "</apply>" "</matrixrow>" "</matrix>\n" ); N = readMathMLFromStringWithNamespaces(s, NS); fail_unless( N != NULL ); fail_unless( N->getType() == AST_ORIGINATES_IN_PACKAGE); fail_unless( N->getExtendedType() == AST_LINEAR_ALGEBRA_MATRIX_CONSTRUCTOR); fail_unless( N->getNumChildren() == 2); fail_unless( N->getPackageName() == "arrays"); ASTNode * child = N->getChild(0); fail_unless( child != NULL ); fail_unless( child->getType() == AST_ORIGINATES_IN_PACKAGE); fail_unless( child->getExtendedType() == AST_LINEAR_ALGEBRA_MATRIXROW_CONSTRUCTOR); fail_unless( child->getNumChildren() == 2); fail_unless( child->getPackageName() == "arrays"); ASTNode *c1 = child->getChild(0); fail_unless( c1 != NULL ); fail_unless( c1->getType() == AST_FUNCTION_COS); fail_unless( c1->getExtendedType() == AST_FUNCTION_COS); fail_unless( c1->getNumChildren() == 1); fail_unless( c1->getPackageName() == "core"); child = N->getChild(1); fail_unless( child != NULL ); fail_unless( child->getType() == AST_ORIGINATES_IN_PACKAGE); fail_unless( child->getExtendedType() == AST_LINEAR_ALGEBRA_MATRIXROW_CONSTRUCTOR); fail_unless( child->getNumChildren() == 2); fail_unless( child->getPackageName() == "arrays"); c1 = child->getChild(0); fail_unless( c1 != NULL ); fail_unless( c1->getType() == AST_INTEGER); fail_unless( c1->getExtendedType() == AST_INTEGER); fail_unless( c1->getNumChildren() == 0); fail_unless( c1->getInteger() == 2); ArraysASTPlugin* plugin = static_cast<ArraysASTPlugin*>(N->getPlugin("arrays")); fail_unless(plugin != NULL); fail_unless(plugin->getASTType() == AST_LINEAR_ALGEBRA_MATRIX_CONSTRUCTOR); }