END_TEST START_TEST (test_Validation_CVTerm2) { CVTerm * cv = new CVTerm(); fail_unless(cv != NULL); fail_unless (!(cv->hasRequiredAttributes())); cv->setQualifierType(BIOLOGICAL_QUALIFIER); fail_unless (!(cv->hasRequiredAttributes())); cv->setBiologicalQualifierType(BQB_IS); fail_unless (!(cv->hasRequiredAttributes())); cv->addResource("ggg"); fail_unless ((cv->hasRequiredAttributes())); delete cv; }
END_TEST START_TEST (test_Validation_CVTerm1) { CVTerm * cv = new CVTerm(); fail_unless(cv != NULL); fail_unless (!(cv->hasRequiredAttributes())); cv->setQualifierType(MODEL_QUALIFIER); fail_unless (!(cv->hasRequiredAttributes())); cv->setModelQualifierType(BQM_IS); fail_unless (!(cv->hasRequiredAttributes())); cv->addResource("ggg"); fail_unless ((cv->hasRequiredAttributes())); delete cv; }
END_TEST START_TEST (test_RDFAnnotation2_modelWithHistoryAndCVTerms) { ModelHistory * h = new ModelHistory(); ModelCreator *c = new ModelCreator(); c->setFamilyName("Keating"); c->setGivenName("Sarah"); h->addCreator(c); Date *d = new Date(2008, 11, 17, 18, 37, 0, 0, 0, 0); h->setCreatedDate(d); h->setModifiedDate(d); m2->unsetModelHistory(); m2->setModelHistory(h); CVTerm *cv = new CVTerm(); cv->setQualifierType(BIOLOGICAL_QUALIFIER); cv->setBiologicalQualifierType(BQB_IS_VERSION_OF); cv->addResource("http://www.geneontology.org/#GO:0005892"); m2->addCVTerm(cv); XMLNode *ann = RDFAnnotationParser::parseModelHistory(m2); const char * expected = "<annotation>\n" " <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:vCard=\"http://www.w3.org/2001/vcard-rdf/3.0#\" xmlns:bqbiol=\"http://biomodels.net/biology-qualifiers/\" xmlns:bqmodel=\"http://biomodels.net/model-qualifiers/\">\n" " <rdf:Description rdf:about=\"#_000001\">\n" " <dc:creator rdf:parseType=\"Resource\">\n" " <rdf:Bag>\n" " <rdf:li rdf:parseType=\"Resource\">\n" " <vCard:N rdf:parseType=\"Resource\">\n" " <vCard:Family>Keating</vCard:Family>\n" " <vCard:Given>Sarah</vCard:Given>\n" " </vCard:N>\n" " </rdf:li>\n" " </rdf:Bag>\n" " </dc:creator>\n" " <dcterms:created rdf:parseType=\"Resource\">\n" " <dcterms:W3CDTF>2008-11-17T18:37:00Z</dcterms:W3CDTF>\n" " </dcterms:created>\n" " <dcterms:modified rdf:parseType=\"Resource\">\n" " <dcterms:W3CDTF>2008-11-17T18:37:00Z</dcterms:W3CDTF>\n" " </dcterms:modified>\n" " <bqbiol:isVersionOf>\n" " <rdf:Bag>\n" " <rdf:li rdf:resource=\"http://www.geneontology.org/#GO:0005892\"/>\n" " </rdf:Bag>\n" " </bqbiol:isVersionOf>\n" " </rdf:Description>\n" " </rdf:RDF>\n" "</annotation>"; if (ann != NULL) { fail_unless( equals(expected, ann->toXMLString().c_str()) ); } else { fail("parseModelHistory failed"); } }
LIBSBML_CPP_NAMESPACE_USE int main (int argc, char *argv[]) { SBMLDocument* d; unsigned int errors, n; Species *s; if (argc != 3) { cout << endl << " usage: addCVTerms <input-filename> <output-filename>" << endl << " Adds controlled vocabulary term to a species" << endl << endl; return 2; } d = readSBML(argv[1]); errors = d->getNumErrors(); if (errors > 0) { cout << "Read Error(s):" << endl; d->printErrors(cout); cout << "Correct the above and re-run." << endl; } else { n = d->getModel()->getNumSpecies(); if (n <= 0) { cout << "Model has no species.\n Cannot add CV terms\n"; } else { s = d->getModel()->getSpecies(0); CVTerm *cv = new CVTerm(); cv->setQualifierType(BIOLOGICAL_QUALIFIER); cv->setBiologicalQualifierType(BQB_IS_VERSION_OF); cv->addResource("http://www.geneontology.org/#GO:0005892"); CVTerm *cv2 = new CVTerm(); cv2->setQualifierType(BIOLOGICAL_QUALIFIER); cv2->setBiologicalQualifierType(BQB_IS); cv2->addResource("http://www.geneontology.org/#GO:0005895"); CVTerm *cv1 = new CVTerm(); cv1->setQualifierType(BIOLOGICAL_QUALIFIER); cv1->setBiologicalQualifierType(BQB_IS_VERSION_OF); cv1->addResource("http://www.ebi.ac.uk/interpro/#IPR002394"); s->addCVTerm(cv); s->addCVTerm(cv2); s->addCVTerm(cv1); writeSBML(d, argv[2]); } } delete d; return errors; }