1 /**
2  * \file    TestFormulaUnitsDataMap_map.cpp
3  * \brief   fomula units data unit tests
4  * \author  Ben Bornstein
5  *
6  * <!--------------------------------------------------------------------------
7  * This file is part of libSBML.  Please visit http://sbml.org for more
8  * information about SBML, and the latest version of libSBML.
9  *
10  * Copyright (C) 2020 jointly by the following organizations:
11  *     1. California Institute of Technology, Pasadena, CA, USA
12  *     2. University of Heidelberg, Heidelberg, Germany
13  *     3. University College London, London, UK
14  *
15  * Copyright (C) 2019 jointly by the following organizations:
16  *     1. California Institute of Technology, Pasadena, CA, USA
17  *     2. University of Heidelberg, Heidelberg, Germany
18  *
19  * Copyright (C) 2013-2018 jointly by the following organizations:
20  *     1. California Institute of Technology, Pasadena, CA, USA
21  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
22  *     3. University of Heidelberg, Heidelberg, Germany
23  *
24  * Copyright (C) 2009-2013 jointly by the following organizations:
25  *     1. California Institute of Technology, Pasadena, CA, USA
26  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
27  *
28  * Copyright (C) 2006-2008 by the California Institute of Technology,
29  *     Pasadena, CA, USA
30  *
31  * Copyright (C) 2002-2005 jointly by the following organizations:
32  *     1. California Institute of Technology, Pasadena, CA, USA
33  *     2. Japan Science and Technology Agency, Japan
34  *
35  * This library is free software; you can redistribute it and/or modify it
36  * under the terms of the GNU Lesser General Public License as published by
37  * the Free Software Foundation.  A copy of the license agreement is provided
38  * in the file named "LICENSE.txt" included with this software distribution
39  * and also available online as http://sbml.org/software/libsbml/license.html
40  * ---------------------------------------------------------------------- -->*/
41 
42 #include <sbml/common/common.h>
43 #include <sbml/common/extern.h>
44 
45 #include <sbml/SBMLReader.h>
46 #include <sbml/SBMLTypes.h>
47 
48 #include <sbml/SBMLDocument.h>
49 #include <sbml/Model.h>
50 #include <sbml/SBMLTypeCodes.h>
51 
52 #include <sbml/units/UnitFormulaFormatter.h>
53 #include <sbml/units/FormulaUnitsData.h>
54 
55 #include <check.h>
56 
57 LIBSBML_CPP_NAMESPACE_USE
58 
59 extern char *TestDataDirectory;
60 
61 static Model *m;
62 static SBMLDocument* d;
63 
64 /*
65  * tests the results from different model
66  * components that have units
67  * e.g. compartment; species; parameter
68  */
69 
70 
71 void
FormulaUnitsDataMap_setup(void)72 FormulaUnitsDataMap_setup (void)
73 {
74   char *filename = safe_strcat(TestDataDirectory, "formula.xml");
75 
76   d = readSBML(filename);
77   m = d->getModel();
78 
79   m->populateListFormulaUnitsData();
80 
81   safe_free(filename);
82 }
83 
84 
85 void
FormulaUnitsDataMap_teardown(void)86 FormulaUnitsDataMap_teardown (void)
87 {
88   delete d;
89 }
90 CK_CPPSTART
91 
START_TEST(test_FormulaUnitsDataMap_setters)92 START_TEST (test_FormulaUnitsDataMap_setters)
93 {
94   FormulaUnitsData *fud = new FormulaUnitsData();
95   fud->setUnitReferenceId("sarah");
96   fud->setComponentTypecode(SBML_PARAMETER);
97 
98   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "sarah"), NULL);
99   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Parameter"), NULL);
100   fail_unless(!fud->getContainsUndeclaredUnits());
101   fail_unless(fud->getCanIgnoreUndeclaredUnits());
102 
103   fud->setContainsParametersWithUndeclaredUnits(true);
104   fud->setCanIgnoreUndeclaredUnits(false);
105 
106   fail_unless(fud->getContainsUndeclaredUnits());
107   fail_unless(!fud->getCanIgnoreUndeclaredUnits());
108 
109   m->addFormulaUnitsData(fud);
110 
111   fail_unless(m->getNumFormulaUnitsData() == 30);
112 
113   delete fud;
114 
115 }
116 END_TEST
117 
START_TEST(test_FormulaUnitsDataMap_getdefaults)118 START_TEST (test_FormulaUnitsDataMap_getdefaults)
119 {
120   const FormulaUnitsData *fud = m->getFormulaUnitsData("subs_per_time", SBML_UNKNOWN);
121 
122   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "subs_per_time"), NULL);
123   fail_unless(fud->getContainsUndeclaredUnits() == 0);
124   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
125 
126   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
127 
128   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
129 
130   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
131   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
132   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
133   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
134   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
135 
136   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
137   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
138   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
139   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
140   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
141 
142 }
143 END_TEST
144 
145 
START_TEST(test_FormulaUnitsDataMap_getcompartment)146 START_TEST (test_FormulaUnitsDataMap_getcompartment)
147 {
148   const FormulaUnitsData *fud = m->getFormulaUnitsData("cell", SBML_COMPARTMENT);
149 
150   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "cell"), NULL);
151   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Compartment"), NULL);
152   fail_unless(fud->getContainsUndeclaredUnits() == 0);
153   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
154 
155   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
156 
157   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
158 
159   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
160   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
161   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
162   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
163   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_LITRE);
164 
165   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
166 
167   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
168 
169   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
170   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == 0);
171   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
172   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
173   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_LITRE);
174 
175   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
176   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
177   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
178   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
179   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
180 
181   fud = m->getFormulaUnitsData("cell1", SBML_COMPARTMENT);
182 
183   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "cell1"), NULL);
184   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Compartment"), NULL);
185   fail_unless(fud->getContainsUndeclaredUnits() == 0);
186   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
187 
188   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
189 
190   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
191 
192   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
193   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
194   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
195   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
196   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
197 
198   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
199 
200   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
201 
202   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
203   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == -2);
204   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
205   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
206   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
207 
208   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
209   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
210   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
211   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
212   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
213 }
214 END_TEST
215 
START_TEST(test_FormulaUnitsDataMap_getspecies)216 START_TEST (test_FormulaUnitsDataMap_getspecies)
217 {
218   FormulaUnitsData *fud = m->getFormulaUnitsData("x", SBML_SPECIES);
219 
220   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "x"), NULL);
221   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Species"), NULL);
222   fail_unless(fud->getContainsUndeclaredUnits() == 0);
223   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
224 
225   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
226 
227   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
228 
229   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
230   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
231   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
232   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
233   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
234 
235   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
236   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
237   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
238   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
239   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_LITRE);
240 
241   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 3);
242 
243   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
244 
245   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
246   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == 0);
247   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
248   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
249   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
250 
251   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
252   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
253   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
254   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
255   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_LITRE);
256 
257   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getMultiplier() == 1);
258   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getScale() == 0);
259   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getExponent() == -1);
260   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getOffset() == 0.0);
261   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getKind() == UNIT_KIND_SECOND);
262 
263   fud = m->getFormulaUnitsData("y", SBML_SPECIES);
264 
265   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "y"), NULL);
266   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Species"), NULL);
267   fail_unless(fud->getContainsUndeclaredUnits() == 0);
268   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
269 
270   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
271 
272   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
273 
274   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
275   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
276   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
277   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
278   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
279 
280   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
281 
282   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
283 
284   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
285   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == -2);
286   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
287   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
288   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
289 
290   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
291   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
292   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
293   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
294   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
295 
296   fud = m->getFormulaUnitsData("z2", SBML_SPECIES);
297 
298   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "z2"), NULL);
299   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Species"), NULL);
300   fail_unless(fud->getContainsUndeclaredUnits() == 0);
301   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
302 
303   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
304 
305   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
306 
307   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
308   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
309   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
310   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
311   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
312 
313   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
314   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
315   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
316   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
317   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_LITRE);
318 
319   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 3);
320 
321   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
322 
323   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
324   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == -2);
325   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
326   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
327   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
328 
329   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
330   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
331   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
332   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
333   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_LITRE);
334 
335   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getMultiplier() == 1);
336   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getScale() == 0);
337   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getExponent() == -1);
338   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getOffset() == 0.0);
339   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(2)->getKind() == UNIT_KIND_SECOND);
340 
341   fud = m->getFormulaUnitsData("x1", SBML_SPECIES);
342 
343   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "x1"), NULL);
344   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Species"), NULL);
345   fail_unless(fud->getContainsUndeclaredUnits() == 0);
346   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
347 
348   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
349 
350   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
351 
352   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
353   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
354   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
355   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
356   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
357 
358   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
359 
360   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
361 
362   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
363   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == 0);
364   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
365   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
366   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
367 
368   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
369   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
370   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
371   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
372   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
373 
374   fud = m->getFormulaUnitsData("y1", SBML_SPECIES);
375 
376   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "y1"), NULL);
377   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Species"), NULL);
378   fail_unless(fud->getContainsUndeclaredUnits() == 0);
379   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
380 
381   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
382 
383   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
384 
385   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
386   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
387   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
388   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
389   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
390 
391   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
392 
393   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
394 
395   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
396   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == -2);
397   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
398   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
399   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
400 
401   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
402   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
403   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -1);
404   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
405   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
406 
407 }
408 END_TEST
409 
START_TEST(test_FormulaUnitsDataMap_getparameter)410 START_TEST (test_FormulaUnitsDataMap_getparameter)
411 {
412   FormulaUnitsData *fud = m->getFormulaUnitsData("k1", SBML_PARAMETER);
413 
414   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k1"), NULL);
415   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Parameter"), NULL);
416   fail_unless(fud->getContainsUndeclaredUnits() == 0);
417   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
418 
419   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
420 
421   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
422 
423   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
424   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
425   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
426   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
427   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
428 
429   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
430   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
431   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
432   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
433   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
434 
435   fail_unless(fud->getPerTimeUnitDefinition()->getNumUnits() == 2);
436 
437   fail_unless(!strcmp(fud->getPerTimeUnitDefinition()->getId().c_str(), ""), NULL);
438 
439   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getMultiplier() == 1);
440   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getScale() == 0);
441   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getExponent() == 1);
442   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getOffset() == 0.0);
443   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
444 
445   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getMultiplier() == 1);
446   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getScale() == 0);
447   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getExponent() == -2);
448   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getOffset() == 0.0);
449   fail_unless(fud->getPerTimeUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
450 
451   fud = m->getFormulaUnitsData("k2", SBML_PARAMETER);
452 
453   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k2"), NULL);
454   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Parameter"), NULL);
455   fail_unless(fud->getContainsUndeclaredUnits() == 1);
456   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
457 
458   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
459 
460   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
461 
462 }
463 END_TEST
464 
START_TEST(test_FormulaUnitsDataMap_getinitialassignment)465 START_TEST (test_FormulaUnitsDataMap_getinitialassignment)
466 {
467   FormulaUnitsData *fud = m->getFormulaUnitsData("z2", SBML_INITIAL_ASSIGNMENT);
468 
469   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "z2"), NULL);
470   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "InitialAssignment"), NULL);
471   fail_unless(fud->getContainsUndeclaredUnits() == 1);
472   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
473 
474   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
475 
476   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
477 
478   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
479   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
480   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
481   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
482   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
483 
484 }
485 END_TEST
486 
START_TEST(test_FormulaUnitsDataMap_getrule)487 START_TEST (test_FormulaUnitsDataMap_getrule)
488 {
489   FormulaUnitsData *fud = m->getFormulaUnitsData("x", SBML_ASSIGNMENT_RULE);
490 
491   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "x"), NULL);
492   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "AssignmentRule"), NULL);
493   fail_unless(fud->getContainsUndeclaredUnits() == 1);
494   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
495 
496   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
497 
498   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
499 
500 
501   fud = m->getFormulaUnitsData("cell1", SBML_RATE_RULE);
502 
503   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "cell1"), NULL);
504   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "RateRule"), NULL);
505   fail_unless(fud->getContainsUndeclaredUnits() == 1);
506   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 1);
507 
508   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
509 
510   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
511 
512   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
513   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
514   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
515   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
516   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
517 
518   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
519   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
520   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
521   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
522   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
523 
524   fud = m->getFormulaUnitsData("alg_rule_0", SBML_ALGEBRAIC_RULE);
525 
526   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "alg_rule_0"), NULL);
527   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "AlgebraicRule"), NULL);
528   fail_unless(fud->getContainsUndeclaredUnits() == 1);
529   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
530 
531   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
532 
533   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
534 
535   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
536   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
537   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
538   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
539   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_LITRE);
540 }
541 END_TEST
542 
543 
START_TEST(test_FormulaUnitsDataMap_getreaction)544 START_TEST (test_FormulaUnitsDataMap_getreaction)
545 {
546   FormulaUnitsData *fud = m->getFormulaUnitsData("R", SBML_KINETIC_LAW);
547 
548   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "R"), NULL);
549   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "KineticLaw"), NULL);
550   fail_unless(fud->getContainsUndeclaredUnits() == 0);
551   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
552 
553   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
554 
555   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
556 
557   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
558   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
559   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
560   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
561   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
562 
563   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
564   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
565   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
566   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
567   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
568 
569   fud = m->getFormulaUnitsData("x1", SBML_STOICHIOMETRY_MATH);
570 
571   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "x1"), NULL);
572   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "StoichiometryMath"), NULL);
573   fail_unless(fud->getContainsUndeclaredUnits() == 1);
574   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
575 
576   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
577 
578   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
579 
580 
581 }
582 END_TEST
583 
584 
START_TEST(test_FormulaUnitsDataMap_getlocalparameters)585 START_TEST (test_FormulaUnitsDataMap_getlocalparameters)
586 {
587   FormulaUnitsData *fud = m->getFormulaUnitsData("k_1_R", SBML_LOCAL_PARAMETER);
588 
589   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k_1_R"), NULL);
590   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "LocalParameter"), NULL);
591   fail_unless(fud->getContainsUndeclaredUnits() == 0);
592   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
593 
594   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
595 
596   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
597 
598   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
599   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
600   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
601   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
602   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_SECOND);
603 
604   fud = m->getFormulaUnitsData("k2_R", SBML_LOCAL_PARAMETER);
605 
606   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k2_R"), NULL);
607   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "LocalParameter"), NULL);
608   fail_unless(fud->getContainsUndeclaredUnits() == 0);
609   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
610 
611   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
612 
613   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
614 
615   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
616   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == -2);
617   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
618   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
619   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
620 
621   fud = m->getFormulaUnitsData("k3_R", SBML_LOCAL_PARAMETER);
622 
623   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k3_R"), NULL);
624   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "LocalParameter"), NULL);
625   fail_unless(fud->getContainsUndeclaredUnits() == 1);
626   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
627 
628   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
629 
630   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
631 
632   fud = m->getFormulaUnitsData("h_R", SBML_LOCAL_PARAMETER);
633 
634   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "h_R"), NULL);
635   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "LocalParameter"), NULL);
636   fail_unless(fud->getContainsUndeclaredUnits() == 1);
637   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
638 
639   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
640 
641   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
642 }
643 END_TEST
644 
645 
646 
START_TEST(test_FormulaUnitsDataMap_getevent)647 START_TEST (test_FormulaUnitsDataMap_getevent)
648 {
649   FormulaUnitsData *fud = m->getFormulaUnitsData("event_0", SBML_TRIGGER);
650   //trigger units
651   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "event_0"), NULL);
652   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Trigger"), NULL);
653   fail_unless(fud->getContainsUndeclaredUnits() == 1);
654   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
655 
656   fail_unless(fud->getUnitDefinition()->getNumUnits() == 1);
657   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
658   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
659   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
660   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
661   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_DIMENSIONLESS);
662 
663 
664   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
665 
666 
667 
668 
669   fud = m->getFormulaUnitsData("event_0", SBML_EVENT);
670   // delay units
671   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "event_0"), NULL);
672   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "Event"), NULL);
673   fail_unless(fud->getContainsUndeclaredUnits() == 1);
674   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
675 
676   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
677 
678   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
679 
680   fud = m->getFormulaUnitsData("k2event_0", SBML_EVENT_ASSIGNMENT);
681   // event assignment units
682   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "k2event_0"), NULL);
683   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "EventAssignment"), NULL);
684   fail_unless(fud->getContainsUndeclaredUnits() == 1);
685   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
686 
687   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
688 
689   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
690 
691   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
692   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
693   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
694   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
695   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_METRE);
696 
697   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
698   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
699   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
700   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
701   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
702 
703 
704 
705 }
706 END_TEST
707 
708 
START_TEST(test_FormulaUnitsDataMap_getById)709 START_TEST (test_FormulaUnitsDataMap_getById)
710 {
711   const FormulaUnitsData *fud = m->getFormulaUnitsData("R", SBML_KINETIC_LAW);
712 
713   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "R"), NULL);
714   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "KineticLaw"), NULL);
715   fail_unless(fud->getContainsUndeclaredUnits() == 0);
716   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
717 
718   fail_unless(fud->getUnitDefinition()->getNumUnits() == 2);
719 
720   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
721 
722   fail_unless(fud->getUnitDefinition()->getUnit(0)->getMultiplier() == 1);
723   fail_unless(fud->getUnitDefinition()->getUnit(0)->getScale() == 0);
724   fail_unless(fud->getUnitDefinition()->getUnit(0)->getExponent() == 1);
725   fail_unless(fud->getUnitDefinition()->getUnit(0)->getOffset() == 0.0);
726   fail_unless(fud->getUnitDefinition()->getUnit(0)->getKind() == UNIT_KIND_MOLE);
727 
728   fail_unless(fud->getUnitDefinition()->getUnit(1)->getMultiplier() == 1);
729   fail_unless(fud->getUnitDefinition()->getUnit(1)->getScale() == 0);
730   fail_unless(fud->getUnitDefinition()->getUnit(1)->getExponent() == -1);
731   fail_unless(fud->getUnitDefinition()->getUnit(1)->getOffset() == 0.0);
732   fail_unless(fud->getUnitDefinition()->getUnit(1)->getKind() == UNIT_KIND_SECOND);
733 
734   fud = m->getFormulaUnitsData("x1", SBML_STOICHIOMETRY_MATH);
735 
736   fail_unless(!strcmp(fud->getUnitReferenceId().c_str(), "x1"), NULL);
737   fail_unless(!strcmp(SBMLTypeCode_toString(fud->getComponentTypecode(), "core"), "StoichiometryMath"), NULL);
738   fail_unless(fud->getContainsUndeclaredUnits() == 1);
739   fail_unless(fud->getCanIgnoreUndeclaredUnits() == 0);
740 
741   fail_unless(fud->getUnitDefinition()->getNumUnits() == 0);
742 
743   fail_unless(!strcmp(fud->getUnitDefinition()->getId().c_str(), ""), NULL);
744 
745 
746 }
747 END_TEST
748 
749 
750 
751 Suite *
create_suite_FormulaUnitsDataMap(void)752 create_suite_FormulaUnitsDataMap (void)
753 {
754   Suite *suite = suite_create("FormulaUnitDataMap");
755   TCase *tcase = tcase_create("FormulaUnitsDataMap");
756 
757   tcase_add_checked_fixture(tcase,
758                             FormulaUnitsDataMap_setup,
759                             FormulaUnitsDataMap_teardown);
760 
761   tcase_add_test(tcase, test_FormulaUnitsDataMap_getdefaults );
762   tcase_add_test(tcase, test_FormulaUnitsDataMap_getcompartment );
763   tcase_add_test(tcase, test_FormulaUnitsDataMap_getspecies );
764   tcase_add_test(tcase, test_FormulaUnitsDataMap_getparameter );
765   tcase_add_test(tcase, test_FormulaUnitsDataMap_getinitialassignment );
766   tcase_add_test(tcase, test_FormulaUnitsDataMap_getrule );
767   tcase_add_test(tcase, test_FormulaUnitsDataMap_getreaction );
768   tcase_add_test(tcase, test_FormulaUnitsDataMap_getlocalparameters );
769   tcase_add_test(tcase, test_FormulaUnitsDataMap_getevent );
770   tcase_add_test(tcase, test_FormulaUnitsDataMap_getById );
771   tcase_add_test(tcase, test_FormulaUnitsDataMap_setters );
772   suite_add_tcase(suite, tcase);
773 
774   return suite;
775 }
776 
777 
778 CK_CPPEND
779