21 #include "utilities.hpp"
27 #include "sbml/SBMLDocument.h"
28 #include "sbml/Model.h"
29 #include "sbml/Species.h"
61 CPPUNIT_ASSERT(
false);
64 CPPUNIT_ASSERT(pDataModel->
getModel() != NULL);
81 CPPUNIT_ASSERT(
false);
84 CPPUNIT_ASSERT(pDataModel->
getModel() != NULL);
101 CPPUNIT_ASSERT(
false);
119 CPPUNIT_ASSERT(found ==
true);
120 CPPUNIT_ASSERT(message.
getText().find(
"volume") != std::string::npos);
134 CPPUNIT_ASSERT(
false);
152 CPPUNIT_ASSERT(found ==
true);
153 CPPUNIT_ASSERT(message.
getText().find(
"time") != std::string::npos);
167 CPPUNIT_ASSERT(
false);
185 CPPUNIT_ASSERT(found ==
true);
186 CPPUNIT_ASSERT(message.
getText().find(
"substance") != std::string::npos);
194 CPPUNIT_ASSERT(pDataModel->
getModel() != NULL);
196 CPPUNIT_ASSERT(pDocument == NULL);
197 std::string sbmlString;
206 CPPUNIT_ASSERT(
false);
209 CPPUNIT_ASSERT(!sbmlString.empty());
212 CPPUNIT_ASSERT(pDocument != NULL);
213 const Model* pModel = pDocument->getModel();
214 CPPUNIT_ASSERT(pModel != NULL);
215 CPPUNIT_ASSERT(pModel->getListOfCompartments()->size() == 1);
216 CPPUNIT_ASSERT(pModel->getListOfSpecies()->size() == 1);
217 const UnitDefinition* pUDef = pModel->getUnitDefinition(
"time");
218 CPPUNIT_ASSERT(pUDef != NULL);
219 CPPUNIT_ASSERT(pUDef->getListOfUnits()->size() == 1);
220 const Unit* pUnit = pUDef->getUnit(0);
221 CPPUNIT_ASSERT(pUnit != NULL);
222 CPPUNIT_ASSERT(pUnit->getScale() == 0);
223 CPPUNIT_ASSERT(fabs((pUnit->getMultiplier() - 1.0) / 1.0) < 1e-6);
224 CPPUNIT_ASSERT(pUnit->getKind() == UNIT_KIND_DIMENSIONLESS);
225 pUDef = pModel->getUnitDefinition(
"volume");
226 CPPUNIT_ASSERT(pUDef != NULL);
227 CPPUNIT_ASSERT(pUDef->getListOfUnits()->size() == 1);
228 pUnit = pUDef->getUnit(0);
229 CPPUNIT_ASSERT(pUnit != NULL);
230 CPPUNIT_ASSERT(pUnit->getScale() == 0);
231 CPPUNIT_ASSERT(fabs((pUnit->getMultiplier() - 1.0) / 1.0) < 1e-6);
232 CPPUNIT_ASSERT(pUnit->getKind() == UNIT_KIND_DIMENSIONLESS);
233 pUDef = pModel->getUnitDefinition(
"substance");
234 CPPUNIT_ASSERT(pUDef != NULL);
235 CPPUNIT_ASSERT(pUDef->getListOfUnits()->size() == 1);
236 pUnit = pUDef->getUnit(0);
237 CPPUNIT_ASSERT(pUnit != NULL);
238 CPPUNIT_ASSERT(pUnit->getScale() == 0);
239 CPPUNIT_ASSERT(fabs((pUnit->getMultiplier() - 1.0) / 1.0) < 1e-6);
240 CPPUNIT_ASSERT(pUnit->getKind() == UNIT_KIND_DIMENSIONLESS);
244 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
245 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version3\" level=\"2\" version=\"3\">\n"
246 " <model metaid=\"COPASI1\" id=\"Model_1\" name=\"test000077\">\n"
248 " <html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
250 " <meta name=\"qrichtext\" content=\"1\"/>\n"
252 " <body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
253 " <p>Model to test import of dimensionless units.</p>\n"
257 " <listOfUnitDefinitions>\n"
258 " <unitDefinition id=\"volume\">\n"
260 " <unit kind=\"dimensionless\"/>\n"
262 " </unitDefinition>\n"
263 " <unitDefinition id=\"time\">\n"
265 " <unit kind=\"dimensionless\"/>\n"
267 " </unitDefinition>\n"
268 " <unitDefinition id=\"substance\">\n"
270 " <unit kind=\"dimensionless\"/>\n"
272 " </unitDefinition>\n"
273 " </listOfUnitDefinitions>\n"
274 " <listOfCompartments>\n"
275 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
276 " </listOfCompartments>\n"
278 " <species id=\"species_1\" name=\"S\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
279 " </listOfSpecies>\n"
284 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
285 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version3\" level=\"2\" version=\"3\">\n"
286 " <model metaid=\"COPASI1\" id=\"Model_1\" name=\"test000077\">\n"
288 " <html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
290 " <meta name=\"qrichtext\" content=\"1\"/>\n"
292 " <body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
293 " <p>Model to test import of dimensionless units.</p>\n"
297 " <listOfUnitDefinitions>\n"
298 " <unitDefinition id=\"volume\">\n"
300 " <unit kind=\"dimensionless\" multiplier=\"0.001\" scale=\"3\" />\n"
302 " </unitDefinition>\n"
303 " <unitDefinition id=\"time\">\n"
305 " <unit kind=\"dimensionless\" multiplier=\"10\" scale=\"-1\" />\n"
307 " </unitDefinition>\n"
308 " <unitDefinition id=\"substance\">\n"
310 " <unit kind=\"dimensionless\" multiplier=\"0.01\" scale=\"2\" />\n"
312 " </unitDefinition>\n"
313 " </listOfUnitDefinitions>\n"
314 " <listOfCompartments>\n"
315 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
316 " </listOfCompartments>\n"
318 " <species id=\"species_1\" name=\"S\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
319 " </listOfSpecies>\n"
324 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
325 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version3\" level=\"2\" version=\"3\">\n"
326 " <model metaid=\"COPASI1\" id=\"Model_1\" name=\"test000077\">\n"
328 " <html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
330 " <meta name=\"qrichtext\" content=\"1\"/>\n"
332 " <body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
333 " <p>Model to test import of dimensionless units.</p>\n"
337 " <listOfUnitDefinitions>\n"
338 " <unitDefinition id=\"volume\">\n"
340 " <unit kind=\"dimensionless\" multiplier=\"0.04\" scale=\"-3\" />\n"
342 " </unitDefinition>\n"
343 " <unitDefinition id=\"time\">\n"
345 " <unit kind=\"dimensionless\" multiplier=\"10\" scale=\"-1\" />\n"
347 " </unitDefinition>\n"
348 " <unitDefinition id=\"substance\">\n"
350 " <unit kind=\"dimensionless\" multiplier=\"0.01\" scale=\"2\" />\n"
352 " </unitDefinition>\n"
353 " </listOfUnitDefinitions>\n"
354 " <listOfCompartments>\n"
355 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
356 " </listOfCompartments>\n"
358 " <species id=\"species_1\" name=\"S\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
359 " </listOfSpecies>\n"
364 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
365 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version3\" level=\"2\" version=\"3\">\n"
366 " <model metaid=\"COPASI1\" id=\"Model_1\" name=\"test000077\">\n"
368 " <html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
370 " <meta name=\"qrichtext\" content=\"1\"/>\n"
372 " <body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
373 " <p>Model to test import of dimensionless units.</p>\n"
377 " <listOfUnitDefinitions>\n"
378 " <unitDefinition id=\"volume\">\n"
380 " <unit kind=\"dimensionless\" multiplier=\"0.001\" scale=\"3\" />\n"
382 " </unitDefinition>\n"
383 " <unitDefinition id=\"time\">\n"
385 " <unit kind=\"dimensionless\" multiplier=\"10\" scale=\"-2\" />\n"
387 " </unitDefinition>\n"
388 " <unitDefinition id=\"substance\">\n"
390 " <unit kind=\"dimensionless\" multiplier=\"0.01\" scale=\"2\" />\n"
392 " </unitDefinition>\n"
393 " </listOfUnitDefinitions>\n"
394 " <listOfCompartments>\n"
395 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
396 " </listOfCompartments>\n"
398 " <species id=\"species_1\" name=\"S\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
399 " </listOfSpecies>\n"
404 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
405 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version3\" level=\"2\" version=\"3\">\n"
406 " <model metaid=\"COPASI1\" id=\"Model_1\" name=\"test000077\">\n"
408 " <html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
410 " <meta name=\"qrichtext\" content=\"1\"/>\n"
412 " <body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
413 " <p>Model to test import of dimensionless units.</p>\n"
417 " <listOfUnitDefinitions>\n"
418 " <unitDefinition id=\"volume\">\n"
420 " <unit kind=\"dimensionless\" multiplier=\"0.001\" scale=\"3\" />\n"
422 " </unitDefinition>\n"
423 " <unitDefinition id=\"time\">\n"
425 " <unit kind=\"dimensionless\" multiplier=\"10\" scale=\"-1\" />\n"
427 " </unitDefinition>\n"
428 " <unitDefinition id=\"substance\">\n"
430 " <unit kind=\"dimensionless\" multiplier=\"0.1\" scale=\"2\" />\n"
432 " </unitDefinition>\n"
433 " </listOfUnitDefinitions>\n"
434 " <listOfCompartments>\n"
435 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
436 " </listOfCompartments>\n"
438 " <species id=\"species_1\" name=\"S\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
439 " </listOfSpecies>\n"
444 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
445 "<!-- generated with COPASI 4.5.30 (Debug) (http://www.copasi.org) at 2009-01-27 14:56:07 UTC -->\n"
446 "<COPASI xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.copasi.org/static/schema.xsd\" versionMajor=\"1\" versionMinor=\"0\" versionDevel=\"30\">\n"
447 " <Model key=\"Model_0\" name=\"test000077\" timeUnit=\"dimensionless\" volumeUnit=\"dimensionless\" quantityUnit=\"dimensionless\" type=\"deterministic\">\n"
449 " <html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta name=\"qrichtext\" content=\"1\" /></head><body style=\"font-size:13pt;font-family:Lucida Grande\">\n"
450 "<p>Model to test export of dimensionless units.</p>\n"
453 " <ListOfCompartments>\n"
454 " <Compartment key=\"Compartment_0\" name=\"compartment\" simulationType=\"fixed\">\n"
456 " </ListOfCompartments>\n"
457 " <ListOfMetabolites>\n"
458 " <Metabolite key=\"Metabolite_0\" name=\"S\" simulationType=\"reactions\" compartment=\"Compartment_0\">\n"
460 " </ListOfMetabolites>\n"
462 " <StateTemplateVariable objectReference=\"Model_0\"/>\n"
463 " <StateTemplateVariable objectReference=\"Metabolite_0\"/>\n"
464 " <StateTemplateVariable objectReference=\"Compartment_0\"/>\n"
465 " </StateTemplate>\n"
466 " <InitialState type=\"initialState\">\n"
void test_import_dimensionless_1()
SBMLDocument * getCurrentSBMLDocument()
static const char * MODEL_STRING3
std::string exportSBMLToString(CProcessReport *pExportHandler, int sbmlLevel, int sbmlVersion)
CModel::QuantityUnit getQuantityUnitEnum() const
void test_import_dimensionless_3()
const std::string & getText() const
const size_t & getNumber() const
static const char * MODEL_STRING6
void test_export_dimensionless()
bool load_cps_model_from_stream(std::istream &is, CCopasiDataModel &dataModel)
void test_import_dimensionless_5()
void test_import_dimensionless_4()
static const char * MODEL_STRING1
static const char * MODEL_STRING5
void test_import_dimensionless_2()
static CCopasiDataModel * addDatamodel()
static const char * MODEL_STRING4
CModel::TimeUnit getTimeUnitEnum() const
static CCopasiMessage getLastMessage()
bool importSBMLFromString(const std::string &sbmlDocumentText, CProcessReport *pImportHandler=NULL, const bool &deleteOldData=true)
static CCopasiDataModel * pCOPASIDATAMODEL
static void init(int argc, char *argv[], const bool &withGui=false)
CModel::VolumeUnit getVolumeUnitEnum() const
static const char * MODEL_STRING2