1# @file    TestAncestor.rb
2# @brief   SBML ancestor objects unit tests
3#
4# @author  Akiya Jouraku (Ruby conversion)
5# @author  Sarah Keating
6#
7#
8# ====== WARNING ===== WARNING ===== WARNING ===== WARNING ===== WARNING ======
9#
10# DO NOT EDIT THIS FILE.
11#
12# This file was generated automatically by converting the file located at
13# src/sbml/test/TestAncestor.cpp
14# using the conversion program dev/utilities/translateTests/translateTests.pl.
15# Any changes made here will be lost the next time the file is regenerated.
16#
17# -----------------------------------------------------------------------------
18# This file is part of libSBML.  Please visit http://sbml.org for more
19# information about SBML, and the latest version of libSBML.
20#
21# Copyright 2005-2010 California Institute of Technology.
22# Copyright 2002-2005 California Institute of Technology and
23#                     Japan Science and Technology Corporation.
24#
25# This library is free software; you can redistribute it and/or modify it
26# under the terms of the GNU Lesser General Public License as published by
27# the Free Software Foundation.  A copy of the license agreement is provided
28# in the file named "LICENSE.txt" included with this software distribution
29# and also available online as http://sbml.org/software/libsbml/license.html
30# -----------------------------------------------------------------------------
31require 'test/unit'
32require 'libSBML'
33
34class TestAncestor < Test::Unit::TestCase
35
36  def test_AlgebraicRule_ancestor_create
37    m = LibSBML::Model.new(2,4)
38    r = m.createAlgebraicRule()
39    lo = m.getListOfRules()
40    assert( r.getAncestorOfType(LibSBML::SBML_MODEL) == m )
41    assert( r.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
42    assert( r.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
43    assert( r.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
44    obj = m.getRule(0)
45    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
46    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
47    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
48    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
49  end
50
51  def test_AssignmentRule_ancestor_create
52    m = LibSBML::Model.new(2,4)
53    r = m.createAssignmentRule()
54    lo = m.getListOfRules()
55    assert( r.getAncestorOfType(LibSBML::SBML_MODEL) == m )
56    assert( r.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
57    assert( r.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
58    assert( r.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
59    obj = m.getRule(0)
60    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
61    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
62    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
63    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
64  end
65
66  def test_CompartmentType_ancestor_add
67    ct = LibSBML::CompartmentType.new(2,4)
68    m = LibSBML::Model.new(2,4)
69    ct.setId("ct")
70    m.addCompartmentType(ct)
71    ct = nil
72    lo = m.getListOfCompartmentTypes()
73    obj = m.getCompartmentType(0)
74    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
75    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
76    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
77    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
78  end
79
80  def test_CompartmentType_ancestor_create
81    m = LibSBML::Model.new(2,4)
82    ct = m.createCompartmentType()
83    lo = m.getListOfCompartmentTypes()
84    assert( ct.getAncestorOfType(LibSBML::SBML_MODEL) == m )
85    assert( ct.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
86    assert( ct.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
87    assert( ct.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
88    obj = m.getCompartmentType(0)
89    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
90    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
91    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
92    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
93  end
94
95  def test_Compartment_ancestor_add
96    c = LibSBML::Compartment.new(2,4)
97    c.setId("C")
98    m = LibSBML::Model.new(2,4)
99    m.addCompartment(c)
100    c = nil
101    lo = m.getListOfCompartments()
102    obj = m.getCompartment(0)
103    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
104    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
105    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
106    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
107  end
108
109  def test_Compartment_ancestor_create
110    m = LibSBML::Model.new(2,4)
111    c = m.createCompartment()
112    lo = m.getListOfCompartments()
113    assert( c.getAncestorOfType(LibSBML::SBML_MODEL) == m )
114    assert( c.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
115    assert( c.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
116    assert( c.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
117    obj = m.getCompartment(0)
118    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
119    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
120    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
121    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
122  end
123
124  def test_Constraint_ancestor_add
125    ct = LibSBML::Constraint.new(2,4)
126    m = LibSBML::Model.new(2,4)
127    ct.setMath(LibSBML::parseFormula("k+k"))
128    m.addConstraint(ct)
129    ct = nil
130    lo = m.getListOfConstraints()
131    obj = m.getConstraint(0)
132    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
133    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
134    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
135    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
136  end
137
138  def test_Constraint_ancestor_create
139    m = LibSBML::Model.new(2,4)
140    ct = m.createConstraint()
141    lo = m.getListOfConstraints()
142    assert( ct.getAncestorOfType(LibSBML::SBML_MODEL) == m )
143    assert( ct.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
144    assert( ct.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
145    assert( ct.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
146    obj = m.getConstraint(0)
147    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
148    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
149    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
150    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
151  end
152
153  def test_Delay_ancestor_add
154    d = LibSBML::Delay.new(2,4)
155    d.setMath(LibSBML.parseFormula("1"))
156    e = LibSBML::Event.new(2,4)
157    e.setDelay(d)
158    d = nil
159    obj = e.getDelay()
160    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
161    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
162    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
163    e = nil
164  end
165
166  def test_Delay_ancestor_create
167    e = LibSBML::Event.new(2,4)
168    ea = e.createDelay()
169    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
170    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
171    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
172    obj = e.getDelay()
173    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
174    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
175    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
176  end
177
178  def test_Delay_ancestor_create_model
179    m = LibSBML::Model.new(2,4)
180    e = m.createEvent()
181    ea = m.createDelay()
182    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
183    assert( ea.getAncestorOfType(LibSBML::SBML_MODEL) == m )
184    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
185    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
186    obj = e.getDelay()
187    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
188    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
189    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
190    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
191  end
192
193  def test_EventAssignment_ancestor_add
194    e = LibSBML::Event.new(2,4)
195    ea = LibSBML::EventAssignment.new(2,4)
196    ea.setVariable("c")
197    ea.setMath(LibSBML::parseFormula("K+L"))
198    e.addEventAssignment(ea)
199    ea = nil
200    lo = e.getListOfEventAssignments()
201    obj = e.getEventAssignment(0)
202    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
203    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
204    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
205    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
206  end
207
208  def test_EventAssignment_ancestor_create
209    e = LibSBML::Event.new(2,4)
210    ea = e.createEventAssignment()
211    lo = e.getListOfEventAssignments()
212    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
213    assert( ea.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
214    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
215    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
216    obj = e.getEventAssignment(0)
217    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
218    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
219    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
220    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
221  end
222
223  def test_EventAssignment_ancestor_create_model
224    m = LibSBML::Model.new(2,4)
225    e = m.createEvent()
226    ea = m.createEventAssignment()
227    lo = e.getListOfEventAssignments()
228    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
229    assert( ea.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
230    assert( ea.getAncestorOfType(LibSBML::SBML_MODEL) == m )
231    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
232    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
233    obj = e.getEventAssignment(0)
234    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
235    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
236    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
237    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
238    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
239  end
240
241  def test_Event_ancestor_add
242    e = LibSBML::Event.new(2,4)
243    m = LibSBML::Model.new(2,4)
244    t = LibSBML::Trigger.new(2,4)
245    t.setMath(LibSBML.parseFormula("true"))
246    e.setTrigger(t)
247    e.createEventAssignment()
248    m.addEvent(e)
249    e = nil
250    lo = m.getListOfEvents()
251    obj = m.getEvent(0)
252    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
253    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
254    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
255    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
256  end
257
258  def test_Event_ancestor_create
259    m = LibSBML::Model.new(2,4)
260    e = m.createEvent()
261    lo = m.getListOfEvents()
262    assert( e.getAncestorOfType(LibSBML::SBML_MODEL) == m )
263    assert( e.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
264    assert( e.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
265    assert( e.getAncestorOfType(LibSBML::SBML_PARAMETER) == nil )
266    obj = m.getEvent(0)
267    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
268    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
269    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
270    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
271  end
272
273  def test_FunctionDefinition_ancestor_add
274    fd = LibSBML::FunctionDefinition.new(2,4)
275    m = LibSBML::Model.new(2,4)
276    fd.setId("fd")
277    fd.setMath(LibSBML::parseFormula("l"))
278    m.addFunctionDefinition(fd)
279    fd = nil
280    lo = m.getListOfFunctionDefinitions()
281    obj = m.getFunctionDefinition(0)
282    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
283    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
284    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
285    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
286  end
287
288  def test_FunctionDefinition_ancestor_create
289    m = LibSBML::Model.new(2,4)
290    fd = m.createFunctionDefinition()
291    lo = m.getListOfFunctionDefinitions()
292    assert( fd.getAncestorOfType(LibSBML::SBML_MODEL) == m )
293    assert( fd.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
294    assert( fd.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
295    assert( fd.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
296    obj = m.getFunctionDefinition(0)
297    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
298    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
299    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
300    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
301  end
302
303  def test_InitialAssignment_ancestor_add
304    ia = LibSBML::InitialAssignment.new(2,4)
305    m = LibSBML::Model.new(2,4)
306    ia.setSymbol("c")
307    ia.setMath(LibSBML::parseFormula("9"))
308    m.addInitialAssignment(ia)
309    ia = nil
310    lo = m.getListOfInitialAssignments()
311    obj = m.getInitialAssignment(0)
312    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
313    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
314    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
315    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
316  end
317
318  def test_InitialAssignment_ancestor_create
319    m = LibSBML::Model.new(2,4)
320    ia = m.createInitialAssignment()
321    lo = m.getListOfInitialAssignments()
322    assert( ia.getAncestorOfType(LibSBML::SBML_MODEL) == m )
323    assert( ia.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
324    assert( ia.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
325    assert( ia.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
326    obj = m.getInitialAssignment(0)
327    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
328    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
329    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
330    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
331  end
332
333  def test_KineticLaw_Parameter_ancestor_add
334    kl = LibSBML::KineticLaw.new(2,4)
335    p = LibSBML::Parameter.new(2,4)
336    p.setId("jake")
337    kl.addParameter(p)
338    p = nil
339    lop = kl.getListOfParameters()
340    obj = kl.getParameter(0)
341    assert( obj.getAncestorOfType(LibSBML::SBML_KINETIC_LAW) == kl )
342    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lop )
343    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
344    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
345    kl = nil
346  end
347
348  def test_KineticLaw_Parameter_ancestor_create
349    kl = LibSBML::KineticLaw.new(2,4)
350    p = kl.createParameter()
351    assert( kl.getNumParameters() == 1 )
352    lop = kl.getListOfParameters()
353    assert( p.getAncestorOfType(LibSBML::SBML_KINETIC_LAW) == kl )
354    assert( p.getAncestorOfType(LibSBML::SBML_LIST_OF) == lop )
355    assert( p.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
356    assert( p.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
357    obj = kl.getParameter(0)
358    assert( obj.getAncestorOfType(LibSBML::SBML_KINETIC_LAW) == kl )
359    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lop )
360    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
361    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
362    kl = nil
363  end
364
365  def test_KineticLaw_Parameter_ancestor_create_model
366    m = LibSBML::Model.new(2,4)
367    r = m.createReaction()
368    kl = m.createKineticLaw()
369    p = m.createKineticLawParameter()
370    assert( kl.getNumParameters() == 1 )
371    lop = kl.getListOfParameters()
372    assert( p.getAncestorOfType(LibSBML::SBML_KINETIC_LAW) == kl )
373    assert( p.getAncestorOfType(LibSBML::SBML_LIST_OF) == lop )
374    assert( p.getAncestorOfType(LibSBML::SBML_REACTION) == r )
375    assert( p.getAncestorOfType(LibSBML::SBML_MODEL) == m )
376    assert( p.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
377    assert( p.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
378    obj = kl.getParameter(0)
379    assert( obj.getAncestorOfType(LibSBML::SBML_KINETIC_LAW) == kl )
380    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lop )
381    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
382    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
383    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
384    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
385    kl = nil
386  end
387
388  def test_KineticLaw_ancestor_add
389    kl = LibSBML::KineticLaw.new(2,4)
390    kl.setMath(LibSBML.parseFormula("1"))
391    r = LibSBML::Reaction.new(2,4)
392    r.setKineticLaw(kl)
393    obj = r.getKineticLaw()
394    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
395    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
396    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
397    r = nil
398  end
399
400  def test_KineticLaw_ancestor_create
401    r = LibSBML::Reaction.new(2,4)
402    kl = r.createKineticLaw()
403    assert( kl.getAncestorOfType(LibSBML::SBML_REACTION) == r )
404    assert( kl.getAncestorOfType(LibSBML::SBML_DELAY) == nil )
405    assert( kl.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
406    assert( kl.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
407    obj = r.getKineticLaw()
408    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
409    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
410    assert( obj.getAncestorOfType(LibSBML::SBML_DELAY) == nil )
411    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
412    r = nil
413  end
414
415  def test_KineticLaw_ancestor_create_model
416    m = LibSBML::Model.new(2,4)
417    r = m.createReaction()
418    kl = r.createKineticLaw()
419    assert( kl.getAncestorOfType(LibSBML::SBML_REACTION) == r )
420    assert( kl.getAncestorOfType(LibSBML::SBML_MODEL) == m )
421    assert( kl.getAncestorOfType(LibSBML::SBML_DELAY) == nil )
422    assert( kl.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
423    obj = r.getKineticLaw()
424    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
425    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
426    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
427    assert( obj.getAncestorOfType(LibSBML::SBML_DELAY) == nil )
428    r = nil
429  end
430
431  def test_Model_ancestor_add
432    d = LibSBML::SBMLDocument.new(2,4)
433    m = LibSBML::Model.new(2,4)
434    d.setModel(m)
435    assert( d == d.getModel().getAncestorOfType(LibSBML::SBML_DOCUMENT) )
436    d = nil
437  end
438
439  def test_Model_ancestor_create
440    d = LibSBML::SBMLDocument.new()
441    m = d.createModel()
442    assert( m.getAncestorOfType(LibSBML::SBML_DOCUMENT) == d )
443    obj = d.getModel()
444    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == d )
445    d = nil
446  end
447
448  def test_Parameter_ancestor_add
449    ia = LibSBML::Parameter.new(2,4)
450    m = LibSBML::Model.new(2,4)
451    ia.setId("p")
452    m.addParameter(ia)
453    ia = nil
454    lo = m.getListOfParameters()
455    obj = m.getParameter(0)
456    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
457    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
458    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
459    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
460  end
461
462  def test_Parameter_ancestor_create
463    m = LibSBML::Model.new(2,4)
464    p = m.createParameter()
465    lo = m.getListOfParameters()
466    assert( p.getAncestorOfType(LibSBML::SBML_MODEL) == m )
467    assert( p.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
468    assert( p.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
469    assert( p.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
470    obj = m.getParameter(0)
471    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
472    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
473    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
474    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
475  end
476
477  def test_RateRule_ancestor_create
478    m = LibSBML::Model.new(2,4)
479    r = m.createRateRule()
480    lo = m.getListOfRules()
481    assert( r.getAncestorOfType(LibSBML::SBML_MODEL) == m )
482    assert( r.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
483    assert( r.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
484    assert( r.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
485    obj = m.getRule(0)
486    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
487    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
488    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
489    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
490  end
491
492  def test_Reaction_ancestor_add
493    ia = LibSBML::Reaction.new(2,4)
494    m = LibSBML::Model.new(2,4)
495    ia.setId("k")
496    m.addReaction(ia)
497    ia = nil
498    lo = m.getListOfReactions()
499    obj = m.getReaction(0)
500    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
501    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
502    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
503    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
504  end
505
506  def test_Reaction_ancestor_create
507    m = LibSBML::Model.new(2,4)
508    r = m.createReaction()
509    lo = m.getListOfReactions()
510    assert( r.getAncestorOfType(LibSBML::SBML_MODEL) == m )
511    assert( r.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
512    assert( r.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
513    assert( r.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
514    obj = m.getReaction(0)
515    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
516    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
517    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
518    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
519  end
520
521  def test_Rule_ancestor_add
522    ia = LibSBML::RateRule.new(2,4)
523    ia.setVariable("a")
524    ia.setMath(LibSBML::parseFormula("9"))
525    m = LibSBML::Model.new(2,4)
526    m.addRule(ia)
527    ia = nil
528    lo = m.getListOfRules()
529    obj = m.getRule(0)
530    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
531    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
532    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
533    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
534  end
535
536  def test_SpeciesReference_Modifier_ancestor_add
537    sr = LibSBML::ModifierSpeciesReference.new(2,4)
538    sr.setSpecies("s")
539    r = LibSBML::Reaction.new(2,4)
540    r.addModifier(sr)
541    sr = nil
542    lo = r.getListOfModifiers()
543    obj = r.getModifier(0)
544    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
545    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
546    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
547    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
548  end
549
550  def test_SpeciesReference_Modifier_ancestor_create
551    r = LibSBML::Reaction.new(2,4)
552    sr = r.createModifier()
553    lo = r.getListOfModifiers()
554    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
555    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
556    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
557    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
558    obj = r.getModifier(0)
559    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
560    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
561    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
562    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
563  end
564
565  def test_SpeciesReference_Modifier_ancestor_create_model
566    m = LibSBML::Model.new(2,4)
567    r = m.createReaction()
568    sr = m.createModifier()
569    lo = r.getListOfModifiers()
570    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
571    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
572    assert( sr.getAncestorOfType(LibSBML::SBML_MODEL) == m )
573    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
574    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
575    obj = r.getModifier(0)
576    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
577    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
578    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
579    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
580    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
581  end
582
583  def test_SpeciesReference_Product_ancestor_add
584    sr = LibSBML::SpeciesReference.new(2,4)
585    r = LibSBML::Reaction.new(2,4)
586    sr.setSpecies("p")
587    r.addProduct(sr)
588    sr = nil
589    lo = r.getListOfProducts()
590    obj = r.getProduct(0)
591    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
592    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
593    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
594    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
595  end
596
597  def test_SpeciesReference_Product_ancestor_create
598    r = LibSBML::Reaction.new(2,4)
599    sr = r.createProduct()
600    lo = r.getListOfProducts()
601    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
602    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
603    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
604    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
605    obj = r.getProduct(0)
606    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
607    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
608    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
609    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
610  end
611
612  def test_SpeciesReference_Product_ancestor_create_model
613    m = LibSBML::Model.new(2,4)
614    r = m.createReaction()
615    sr = m.createProduct()
616    lo = r.getListOfProducts()
617    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
618    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
619    assert( sr.getAncestorOfType(LibSBML::SBML_MODEL) == m )
620    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
621    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
622    obj = r.getProduct(0)
623    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
624    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
625    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
626    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
627    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
628  end
629
630  def test_SpeciesReference_Reactant_ancestor_add
631    sr = LibSBML::SpeciesReference.new(2,4)
632    r = LibSBML::Reaction.new(2,4)
633    sr.setSpecies("s")
634    r.addReactant(sr)
635    sr = nil
636    lo = r.getListOfReactants()
637    obj = r.getReactant(0)
638    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
639    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
640    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
641    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
642  end
643
644  def test_SpeciesReference_Reactant_ancestor_create
645    r = LibSBML::Reaction.new(2,4)
646    sr = r.createReactant()
647    lo = r.getListOfReactants()
648    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
649    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
650    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
651    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
652    obj = r.getReactant(0)
653    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
654    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
655    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
656    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
657  end
658
659  def test_SpeciesReference_Reactant_ancestor_create_model
660    m = LibSBML::Model.new(2,4)
661    r = m.createReaction()
662    sr = m.createReactant()
663    lo = r.getListOfReactants()
664    assert( sr.getAncestorOfType(LibSBML::SBML_REACTION) == r )
665    assert( sr.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
666    assert( sr.getAncestorOfType(LibSBML::SBML_MODEL) == m )
667    assert( sr.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
668    assert( sr.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
669    obj = r.getReactant(0)
670    assert( obj.getAncestorOfType(LibSBML::SBML_REACTION) == r )
671    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
672    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
673    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
674    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
675  end
676
677  def test_SpeciesType_ancestor_add
678    ia = LibSBML::SpeciesType.new(2,4)
679    m = LibSBML::Model.new(2,4)
680    ia.setId("s")
681    m.addSpeciesType(ia)
682    ia = nil
683    lo = m.getListOfSpeciesTypes()
684    obj = m.getSpeciesType(0)
685    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
686    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
687    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
688    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
689  end
690
691  def test_SpeciesType_ancestor_create
692    m = LibSBML::Model.new(2,4)
693    st = m.createSpeciesType()
694    lo = m.getListOfSpeciesTypes()
695    assert( st.getAncestorOfType(LibSBML::SBML_MODEL) == m )
696    assert( st.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
697    assert( st.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
698    assert( st.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
699    obj = m.getSpeciesType(0)
700    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
701    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
702    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
703    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
704  end
705
706  def test_Species_ancestor_add
707    ia = LibSBML::Species.new(2,4)
708    m = LibSBML::Model.new(2,4)
709    ia.setId("s")
710    ia.setCompartment("c")
711    m.addSpecies(ia)
712    ia = nil
713    lo = m.getListOfSpecies()
714    obj = m.getSpecies(0)
715    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
716    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
717    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
718    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
719  end
720
721  def test_Species_ancestor_create
722    m = LibSBML::Model.new(2,4)
723    s = m.createSpecies()
724    lo = m.getListOfSpecies()
725    assert( s.getAncestorOfType(LibSBML::SBML_MODEL) == m )
726    assert( s.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
727    assert( s.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
728    assert( s.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
729    obj = m.getSpecies(0)
730    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
731    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
732    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
733    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
734  end
735
736  def test_StoichiometryMath_ancestor_add
737    m = LibSBML::StoichiometryMath.new(2,4)
738    m.setMath(LibSBML.parseFormula("1"))
739    sr = LibSBML::SpeciesReference.new(2,4)
740    sr.setStoichiometryMath(m)
741    m = nil
742    obj = sr.getStoichiometryMath()
743    assert( obj.getAncestorOfType(LibSBML::SBML_SPECIES_REFERENCE) == sr )
744    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
745    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
746    sr = nil
747  end
748
749  def test_StoichiometryMath_ancestor_create
750    sr = LibSBML::SpeciesReference.new(2,4)
751    sm = sr.createStoichiometryMath()
752    assert( sm.getAncestorOfType(LibSBML::SBML_SPECIES_REFERENCE) == sr )
753    assert( sm.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
754    assert( sm.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
755    obj = sr.getStoichiometryMath()
756    assert( obj.getAncestorOfType(LibSBML::SBML_SPECIES_REFERENCE) == sr )
757    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
758    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
759  end
760
761  def test_Trigger_ancestor_add
762    d = LibSBML::Trigger.new(2,4)
763    d.setMath(LibSBML.parseFormula("true"))
764    e = LibSBML::Event.new(2,4)
765    e.setTrigger(d)
766    d = nil
767    obj = e.getTrigger()
768    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
769    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == nil )
770    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
771    e = nil
772  end
773
774  def test_Trigger_ancestor_create
775    e = LibSBML::Event.new(2,4)
776    ea = e.createTrigger()
777    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
778    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
779    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
780    obj = e.getTrigger()
781    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
782    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
783    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
784  end
785
786  def test_Trigger_ancestor_create_model
787    m = LibSBML::Model.new(2,4)
788    e = m.createEvent()
789    ea = m.createTrigger()
790    assert( ea.getAncestorOfType(LibSBML::SBML_EVENT) == e )
791    assert( ea.getAncestorOfType(LibSBML::SBML_MODEL) == m )
792    assert( ea.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
793    assert( ea.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
794    obj = e.getTrigger()
795    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == e )
796    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
797    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
798    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
799  end
800
801  def test_UnitDefinition_ancestor_add
802    ia = LibSBML::UnitDefinition.new(2,4)
803    m = LibSBML::Model.new(2,4)
804    ia.setId("u")
805    ia.createUnit()
806    m.addUnitDefinition(ia)
807    ia = nil
808    lo = m.getListOfUnitDefinitions()
809    obj = m.getUnitDefinition(0)
810    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
811    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
812    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
813    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
814  end
815
816  def test_UnitDefinition_ancestor_create
817    m = LibSBML::Model.new(2,4)
818    ud = m.createUnitDefinition()
819    lo = m.getListOfUnitDefinitions()
820    assert( ud.getAncestorOfType(LibSBML::SBML_MODEL) == m )
821    assert( ud.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
822    assert( ud.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
823    assert( ud.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
824    obj = m.getUnitDefinition(0)
825    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
826    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
827    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
828    assert( obj.getAncestorOfType(LibSBML::SBML_EVENT) == nil )
829  end
830
831  def test_Unit_ancestor_add
832    ud = LibSBML::UnitDefinition.new(2,4)
833    u = LibSBML::Unit.new(2,4)
834    u.setKind(LibSBML::UNIT_KIND_MOLE)
835    ud.addUnit(u)
836    u = nil
837    assert( ud.getNumUnits() == 1 )
838    lo = ud.getListOfUnits()
839    obj = ud.getUnit(0)
840    assert( obj.getAncestorOfType(LibSBML::SBML_UNIT_DEFINITION) == ud )
841    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
842    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
843    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
844    ud = nil
845  end
846
847  def test_Unit_ancestor_create
848    ud = LibSBML::UnitDefinition.new(2,4)
849    u = ud.createUnit()
850    assert( ud.getNumUnits() == 1 )
851    lo = ud.getListOfUnits()
852    assert( u.getAncestorOfType(LibSBML::SBML_UNIT_DEFINITION) == ud )
853    assert( u.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
854    assert( u.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
855    assert( u.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
856    obj = ud.getUnit(0)
857    assert( obj.getAncestorOfType(LibSBML::SBML_UNIT_DEFINITION) == ud )
858    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
859    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
860    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
861    ud = nil
862  end
863
864  def test_Unit_ancestor_create_model
865    m = LibSBML::Model.new(2,4)
866    ud = m.createUnitDefinition()
867    u = m.createUnit()
868    assert( ud.getNumUnits() == 1 )
869    lo = ud.getListOfUnits()
870    assert( u.getAncestorOfType(LibSBML::SBML_UNIT_DEFINITION) == ud )
871    assert( u.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
872    assert( u.getAncestorOfType(LibSBML::SBML_MODEL) == m )
873    assert( u.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
874    assert( u.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
875    obj = ud.getUnit(0)
876    assert( obj.getAncestorOfType(LibSBML::SBML_UNIT_DEFINITION) == ud )
877    assert( obj.getAncestorOfType(LibSBML::SBML_LIST_OF) == lo )
878    assert( obj.getAncestorOfType(LibSBML::SBML_DOCUMENT) == nil )
879    assert( obj.getAncestorOfType(LibSBML::SBML_MODEL) == m )
880    assert( obj.getAncestorOfType(LibSBML::SBML_COMPARTMENT) == nil )
881    ud = nil
882  end
883
884end
885
886