1# 2# @file TestASTNode.py 3# @brief ASTNode unit tests 4# 5# @author Akiya Jouraku (Python conversion) 6# @author Ben Bornstein 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/math/test/TestASTNode.c 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# ----------------------------------------------------------------------------- 31 32import sys 33import unittest 34import libsbml 35 36DBL_EPSILON = 2.2204460492503131e-16 37 38 39class TestASTNode(unittest.TestCase): 40 41 42 def test_ASTNode_addChild1(self): 43 node = libsbml.ASTNode() 44 c1 = libsbml.ASTNode() 45 c2 = libsbml.ASTNode() 46 c1_1 = libsbml.ASTNode() 47 i = 0 48 node.setType(libsbml.AST_LOGICAL_AND) 49 c1.setName( "a") 50 c2.setName( "b") 51 node.addChild(c1) 52 node.addChild(c2) 53 self.assert_( node.getNumChildren() == 2 ) 54 self.assert_(( "and(a, b)" == libsbml.formulaToString(node) )) 55 c1_1.setName( "d") 56 i = node.addChild(c1_1) 57 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 58 self.assert_( node.getNumChildren() == 3 ) 59 self.assert_(( "and(a, b, d)" == libsbml.formulaToString(node) )) 60 self.assert_(( "a" == node.getChild(0).getName() )) 61 self.assert_(( "b" == node.getChild(1).getName() )) 62 self.assert_(( "d" == node.getChild(2).getName() )) 63 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 64 pass 65 66 def test_ASTNode_addSemanticsAnnotation(self): 67 ann = libsbml.XMLNode() 68 node = libsbml.ASTNode() 69 i = 0 70 i = node.addSemanticsAnnotation(ann) 71 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 72 self.assert_( node.getNumSemanticsAnnotations() == 1 ) 73 i = node.addSemanticsAnnotation(None) 74 self.assert_( i == libsbml.LIBSBML_OPERATION_FAILED ) 75 self.assert_( node.getNumSemanticsAnnotations() == 1 ) 76 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 77 pass 78 79 def test_ASTNode_avogadro(self): 80 n = libsbml.ASTNode() 81 n.setType(libsbml.AST_NAME_AVOGADRO) 82 n.setName( "NA") 83 self.assert_(( "NA" == n.getName() )) 84 val = n.getReal() 85 self.assert_( val == 6.02214179e23 ) 86 self.assert_( n.isConstant() == 1 ) 87 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 88 pass 89 90 def test_ASTNode_avogadro_bug(self): 91 n = libsbml.ASTNode() 92 n.setName( "NA") 93 n.setType(libsbml.AST_NAME_AVOGADRO) 94 self.assert_(( "NA" == n.getName() )) 95 val = n.getReal() 96 self.assert_( val == 6.02214179e23 ) 97 self.assert_( n.isConstant() == 1 ) 98 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 99 pass 100 101 def test_ASTNode_canonicalizeConstants(self): 102 n = libsbml.ASTNode() 103 n.setName( "ExponentialE") 104 self.assertEqual( True, n.isName() ) 105 n.canonicalize() 106 self.assert_( n.getType() == libsbml.AST_CONSTANT_E ) 107 n.setType(libsbml.AST_NAME) 108 n.setName( "False") 109 self.assertEqual( True, n.isName() ) 110 n.canonicalize() 111 self.assert_( n.getType() == libsbml.AST_CONSTANT_FALSE ) 112 n.setType(libsbml.AST_NAME) 113 n.setName( "Pi") 114 self.assertEqual( True, n.isName() ) 115 n.canonicalize() 116 self.assert_( n.getType() == libsbml.AST_CONSTANT_PI ) 117 n.setType(libsbml.AST_NAME) 118 n.setName( "True") 119 self.assertEqual( True, n.isName() ) 120 n.canonicalize() 121 self.assert_( n.getType() == libsbml.AST_CONSTANT_TRUE ) 122 n.setType(libsbml.AST_NAME) 123 n.setName( "Foo") 124 self.assertEqual( True, n.isName() ) 125 n.canonicalize() 126 self.assertEqual( True, n.isName() ) 127 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 128 pass 129 130 def test_ASTNode_canonicalizeFunctions(self): 131 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 132 n.setName( "abs") 133 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 134 n.canonicalize() 135 self.assert_( n.getType() == libsbml.AST_FUNCTION_ABS ) 136 n.setType(libsbml.AST_FUNCTION) 137 n.setName( "arccos") 138 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 139 n.canonicalize() 140 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCOS ) 141 n.setType(libsbml.AST_FUNCTION) 142 n.setName( "arccosh") 143 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 144 n.canonicalize() 145 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCOSH ) 146 n.setType(libsbml.AST_FUNCTION) 147 n.setName( "arccot") 148 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 149 n.canonicalize() 150 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCOT ) 151 n.setType(libsbml.AST_FUNCTION) 152 n.setName( "arccoth") 153 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 154 n.canonicalize() 155 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCOTH ) 156 n.setType(libsbml.AST_FUNCTION) 157 n.setName( "arccsc") 158 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 159 n.canonicalize() 160 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCSC ) 161 n.setType(libsbml.AST_FUNCTION) 162 n.setName( "arccsch") 163 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 164 n.canonicalize() 165 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCSCH ) 166 n.setType(libsbml.AST_FUNCTION) 167 n.setName( "arcsec") 168 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 169 n.canonicalize() 170 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCSEC ) 171 n.setType(libsbml.AST_FUNCTION) 172 n.setName( "arcsech") 173 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 174 n.canonicalize() 175 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCSECH ) 176 n.setType(libsbml.AST_FUNCTION) 177 n.setName( "arcsin") 178 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 179 n.canonicalize() 180 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCSIN ) 181 n.setType(libsbml.AST_FUNCTION) 182 n.setName( "arcsinh") 183 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 184 n.canonicalize() 185 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCSINH ) 186 n.setType(libsbml.AST_FUNCTION) 187 n.setName( "arctan") 188 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 189 n.canonicalize() 190 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCTAN ) 191 n.setType(libsbml.AST_FUNCTION) 192 n.setName( "arctanh") 193 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 194 n.canonicalize() 195 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCTANH ) 196 n.setType(libsbml.AST_FUNCTION) 197 n.setName( "ceiling") 198 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 199 n.canonicalize() 200 self.assert_( n.getType() == libsbml.AST_FUNCTION_CEILING ) 201 n.setType(libsbml.AST_FUNCTION) 202 n.setName( "cos") 203 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 204 n.canonicalize() 205 self.assert_( n.getType() == libsbml.AST_FUNCTION_COS ) 206 n.setType(libsbml.AST_FUNCTION) 207 n.setName( "cosh") 208 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 209 n.canonicalize() 210 self.assert_( n.getType() == libsbml.AST_FUNCTION_COSH ) 211 n.setType(libsbml.AST_FUNCTION) 212 n.setName( "cot") 213 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 214 n.canonicalize() 215 self.assert_( n.getType() == libsbml.AST_FUNCTION_COT ) 216 n.setType(libsbml.AST_FUNCTION) 217 n.setName( "coth") 218 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 219 n.canonicalize() 220 self.assert_( n.getType() == libsbml.AST_FUNCTION_COTH ) 221 n.setType(libsbml.AST_FUNCTION) 222 n.setName( "csc") 223 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 224 n.canonicalize() 225 self.assert_( n.getType() == libsbml.AST_FUNCTION_CSC ) 226 n.setType(libsbml.AST_FUNCTION) 227 n.setName( "csch") 228 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 229 n.canonicalize() 230 self.assert_( n.getType() == libsbml.AST_FUNCTION_CSCH ) 231 n.setType(libsbml.AST_FUNCTION) 232 n.setName( "exp") 233 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 234 n.canonicalize() 235 self.assert_( n.getType() == libsbml.AST_FUNCTION_EXP ) 236 n.setType(libsbml.AST_FUNCTION) 237 n.setName( "factorial") 238 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 239 n.canonicalize() 240 self.assert_( n.getType() == libsbml.AST_FUNCTION_FACTORIAL ) 241 n.setType(libsbml.AST_FUNCTION) 242 n.setName( "floor") 243 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 244 n.canonicalize() 245 self.assert_( n.getType() == libsbml.AST_FUNCTION_FLOOR ) 246 n.setType(libsbml.AST_FUNCTION) 247 n.setName( "lambda") 248 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 249 n.canonicalize() 250 self.assert_( n.getType() == libsbml.AST_LAMBDA ) 251 n.setType(libsbml.AST_FUNCTION) 252 n.setName( "ln") 253 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 254 n.canonicalize() 255 self.assert_( n.getType() == libsbml.AST_FUNCTION_LN ) 256 n.setType(libsbml.AST_FUNCTION) 257 n.setName( "log") 258 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 259 n.canonicalize() 260 self.assert_( n.getType() == libsbml.AST_FUNCTION_LOG ) 261 n.setType(libsbml.AST_FUNCTION) 262 n.setName( "piecewise") 263 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 264 n.canonicalize() 265 self.assert_( n.getType() == libsbml.AST_FUNCTION_PIECEWISE ) 266 n.setType(libsbml.AST_FUNCTION) 267 n.setName( "power") 268 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 269 n.canonicalize() 270 self.assert_( n.getType() == libsbml.AST_FUNCTION_POWER ) 271 n.setType(libsbml.AST_FUNCTION) 272 n.setName( "root") 273 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 274 n.canonicalize() 275 self.assert_( n.getType() == libsbml.AST_FUNCTION_ROOT ) 276 n.setType(libsbml.AST_FUNCTION) 277 n.setName( "sec") 278 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 279 n.canonicalize() 280 self.assert_( n.getType() == libsbml.AST_FUNCTION_SEC ) 281 n.setType(libsbml.AST_FUNCTION) 282 n.setName( "sech") 283 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 284 n.canonicalize() 285 self.assert_( n.getType() == libsbml.AST_FUNCTION_SECH ) 286 n.setType(libsbml.AST_FUNCTION) 287 n.setName( "sin") 288 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 289 n.canonicalize() 290 self.assert_( n.getType() == libsbml.AST_FUNCTION_SIN ) 291 n.setType(libsbml.AST_FUNCTION) 292 n.setName( "sinh") 293 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 294 n.canonicalize() 295 self.assert_( n.getType() == libsbml.AST_FUNCTION_SINH ) 296 n.setType(libsbml.AST_FUNCTION) 297 n.setName( "tan") 298 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 299 n.canonicalize() 300 self.assert_( n.getType() == libsbml.AST_FUNCTION_TAN ) 301 n.setType(libsbml.AST_FUNCTION) 302 n.setName( "tanh") 303 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 304 n.canonicalize() 305 self.assert_( n.getType() == libsbml.AST_FUNCTION_TANH ) 306 n.setType(libsbml.AST_FUNCTION) 307 n.setName( "Foo") 308 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 309 n.canonicalize() 310 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 311 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 312 pass 313 314 def test_ASTNode_canonicalizeFunctionsL1(self): 315 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 316 n.setName( "acos") 317 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 318 n.canonicalize() 319 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCCOS ) 320 n.setType(libsbml.AST_FUNCTION) 321 n.setName( "asin") 322 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 323 n.canonicalize() 324 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCSIN ) 325 n.setType(libsbml.AST_FUNCTION) 326 n.setName( "atan") 327 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 328 n.canonicalize() 329 self.assert_( n.getType() == libsbml.AST_FUNCTION_ARCTAN ) 330 n.setType(libsbml.AST_FUNCTION) 331 n.setName( "ceil") 332 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 333 n.canonicalize() 334 self.assert_( n.getType() == libsbml.AST_FUNCTION_CEILING ) 335 n.setType(libsbml.AST_FUNCTION) 336 n.setName( "pow") 337 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 338 n.canonicalize() 339 self.assert_( n.getType() == libsbml.AST_FUNCTION_POWER ) 340 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 341 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 342 n.setName( "log") 343 c = libsbml.ASTNode() 344 c.setName( "x") 345 n.addChild(c) 346 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 347 self.assert_( n.getNumChildren() == 1 ) 348 n.canonicalize() 349 self.assert_( n.getType() == libsbml.AST_FUNCTION_LN ) 350 self.assert_( n.getNumChildren() == 1 ) 351 n.setType(libsbml.AST_FUNCTION) 352 c = libsbml.ASTNode() 353 c.setName( "y") 354 n.addChild(c) 355 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 356 self.assert_( n.getNumChildren() == 2 ) 357 n.canonicalize() 358 self.assert_( n.getType() == libsbml.AST_FUNCTION_LOG ) 359 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 360 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 361 n.setName( "log10") 362 c = libsbml.ASTNode() 363 c.setName( "x") 364 n.addChild(c) 365 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 366 self.assert_( n.getNumChildren() == 1 ) 367 n.canonicalize() 368 self.assert_( n.getType() == libsbml.AST_FUNCTION_LOG ) 369 self.assert_( n.getNumChildren() == 2 ) 370 c = n.getLeftChild() 371 self.assert_( c.getType() == libsbml.AST_INTEGER ) 372 self.assert_( c.getInteger() == 10 ) 373 c = n.getRightChild() 374 self.assert_( c.getType() == libsbml.AST_NAME ) 375 self.assert_(( "x" == c.getName() )) 376 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 377 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 378 n.setName( "sqr") 379 c = libsbml.ASTNode() 380 c.setName( "x") 381 n.addChild(c) 382 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 383 self.assert_( n.getNumChildren() == 1 ) 384 n.canonicalize() 385 self.assert_( n.getType() == libsbml.AST_FUNCTION_POWER ) 386 self.assert_( n.getNumChildren() == 2 ) 387 c = n.getLeftChild() 388 self.assert_( c.getType() == libsbml.AST_NAME ) 389 self.assert_(( "x" == c.getName() )) 390 c = n.getRightChild() 391 self.assert_( c.getType() == libsbml.AST_INTEGER ) 392 self.assert_( c.getInteger() == 2 ) 393 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 394 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 395 n.setName( "sqrt") 396 c = libsbml.ASTNode() 397 c.setName( "x") 398 n.addChild(c) 399 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 400 self.assert_( n.getNumChildren() == 1 ) 401 n.canonicalize() 402 self.assert_( n.getType() == libsbml.AST_FUNCTION_ROOT ) 403 self.assert_( n.getNumChildren() == 2 ) 404 c = n.getLeftChild() 405 self.assert_( c.getType() == libsbml.AST_INTEGER ) 406 self.assert_( c.getInteger() == 2 ) 407 c = n.getRightChild() 408 self.assert_( c.getType() == libsbml.AST_NAME ) 409 self.assert_(( "x" == c.getName() )) 410 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 411 pass 412 413 def test_ASTNode_canonicalizeLogical(self): 414 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 415 n.setName( "and") 416 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 417 n.canonicalize() 418 self.assert_( n.getType() == libsbml.AST_LOGICAL_AND ) 419 n.setType(libsbml.AST_FUNCTION) 420 n.setName( "not") 421 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 422 n.canonicalize() 423 self.assert_( n.getType() == libsbml.AST_LOGICAL_NOT ) 424 n.setType(libsbml.AST_FUNCTION) 425 n.setName( "or") 426 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 427 n.canonicalize() 428 self.assert_( n.getType() == libsbml.AST_LOGICAL_OR ) 429 n.setType(libsbml.AST_FUNCTION) 430 n.setName( "xor") 431 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 432 n.canonicalize() 433 self.assert_( n.getType() == libsbml.AST_LOGICAL_XOR ) 434 n.setType(libsbml.AST_FUNCTION) 435 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 436 pass 437 438 def test_ASTNode_canonicalizeRelational(self): 439 n = libsbml.ASTNode(libsbml.AST_FUNCTION) 440 n.setName( "eq") 441 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 442 n.canonicalize() 443 self.assert_( n.getType() == libsbml.AST_RELATIONAL_EQ ) 444 n.setType(libsbml.AST_FUNCTION) 445 n.setName( "geq") 446 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 447 n.canonicalize() 448 self.assert_( n.getType() == libsbml.AST_RELATIONAL_GEQ ) 449 n.setType(libsbml.AST_FUNCTION) 450 n.setName( "gt") 451 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 452 n.canonicalize() 453 self.assert_( n.getType() == libsbml.AST_RELATIONAL_GT ) 454 n.setType(libsbml.AST_FUNCTION) 455 n.setName( "leq") 456 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 457 n.canonicalize() 458 self.assert_( n.getType() == libsbml.AST_RELATIONAL_LEQ ) 459 n.setType(libsbml.AST_FUNCTION) 460 n.setName( "lt") 461 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 462 n.canonicalize() 463 self.assert_( n.getType() == libsbml.AST_RELATIONAL_LT ) 464 n.setType(libsbml.AST_FUNCTION) 465 n.setName( "neq") 466 self.assert_( n.getType() == libsbml.AST_FUNCTION ) 467 n.canonicalize() 468 self.assert_( n.getType() == libsbml.AST_RELATIONAL_NEQ ) 469 n.setType(libsbml.AST_FUNCTION) 470 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 471 pass 472 473 def test_ASTNode_children(self): 474 parent = libsbml.ASTNode() 475 left = libsbml.ASTNode() 476 right = libsbml.ASTNode() 477 right2 = libsbml.ASTNode() 478 parent.setType(libsbml.AST_PLUS) 479 left.setValue(1) 480 right.setValue(2) 481 right2.setValue(3) 482 parent.addChild(left) 483 parent.addChild(right) 484 self.assert_( parent.getNumChildren() == 2 ) 485 self.assert_( left.getNumChildren() == 0 ) 486 self.assert_( right.getNumChildren() == 0 ) 487 self.assert_( parent.getLeftChild() == left ) 488 self.assert_( parent.getRightChild() == right ) 489 self.assert_( parent.getChild(0) == left ) 490 self.assert_( parent.getChild(1) == right ) 491 self.assert_( parent.getChild(2) == None ) 492 parent.addChild(right2) 493 self.assert_( parent.getNumChildren() == 3 ) 494 self.assert_( left.getNumChildren() == 0 ) 495 self.assert_( right.getNumChildren() == 0 ) 496 self.assert_( right2.getNumChildren() == 0 ) 497 self.assert_( parent.getLeftChild() == left ) 498 self.assert_( parent.getRightChild() == right2 ) 499 self.assert_( parent.getChild(0) == left ) 500 self.assert_( parent.getChild(1) == right ) 501 self.assert_( parent.getChild(2) == right2 ) 502 self.assert_( parent.getChild(3) == None ) 503 _dummyList = [ parent ]; _dummyList[:] = []; del _dummyList 504 pass 505 506 def test_ASTNode_create(self): 507 n = libsbml.ASTNode() 508 ea = libsbml.EventAssignment(2,4) 509 self.assert_( n.getType() == libsbml.AST_UNKNOWN ) 510 self.assert_( n.getCharacter() == "\0" ) 511 self.assert_( n.getName() == None ) 512 self.assert_( n.getInteger() == 0 ) 513 self.assert_( n.getExponent() == 0 ) 514 self.assert_( n.getNumChildren() == 0 ) 515 self.assert_( n.getParentSBMLObject() == None ) 516 _dummyList = [ ea ]; _dummyList[:] = []; del _dummyList 517 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 518 pass 519 520 def test_ASTNode_deepCopy_1(self): 521 node = libsbml.ASTNode() 522 node.setCharacter( '+') 523 node.addChild(libsbml.ASTNode()) 524 node.addChild(libsbml.ASTNode()) 525 node.getLeftChild().setValue(1) 526 node.getRightChild().setValue(2) 527 self.assert_( node.getType() == libsbml.AST_PLUS ) 528 self.assert_( node.getCharacter() == '+' ) 529 self.assert_( node.getNumChildren() == 2 ) 530 child = node.getLeftChild() 531 self.assert_( child.getType() == libsbml.AST_INTEGER ) 532 self.assert_( child.getInteger() == 1 ) 533 self.assert_( child.getNumChildren() == 0 ) 534 child = node.getRightChild() 535 self.assert_( child.getType() == libsbml.AST_INTEGER ) 536 self.assert_( child.getInteger() == 2 ) 537 self.assert_( child.getNumChildren() == 0 ) 538 copy = node.deepCopy() 539 self.assert_( copy != node ) 540 self.assert_( copy.getType() == libsbml.AST_PLUS ) 541 self.assert_( copy.getCharacter() == '+' ) 542 self.assert_( copy.getNumChildren() == 2 ) 543 child = copy.getLeftChild() 544 self.assert_( child != node.getLeftChild() ) 545 self.assert_( child.getType() == libsbml.AST_INTEGER ) 546 self.assert_( child.getInteger() == 1 ) 547 self.assert_( child.getNumChildren() == 0 ) 548 child = copy.getRightChild() 549 self.assert_( child != node.getRightChild() ) 550 self.assert_( child.getType() == libsbml.AST_INTEGER ) 551 self.assert_( child.getInteger() == 2 ) 552 self.assert_( child.getNumChildren() == 0 ) 553 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 554 _dummyList = [ copy ]; _dummyList[:] = []; del _dummyList 555 pass 556 557 def test_ASTNode_deepCopy_2(self): 558 node = libsbml.ASTNode() 559 node.setName( "Foo") 560 self.assert_( node.getType() == libsbml.AST_NAME ) 561 self.assert_(( "Foo" == node.getName() )) 562 self.assert_( node.getNumChildren() == 0 ) 563 copy = node.deepCopy() 564 self.assert_( copy != node ) 565 self.assert_( copy.getType() == libsbml.AST_NAME ) 566 self.assert_(( "Foo" == copy.getName() )) 567 self.assert_( copy.getNumChildren() == 0 ) 568 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 569 _dummyList = [ copy ]; _dummyList[:] = []; del _dummyList 570 pass 571 572 def test_ASTNode_deepCopy_3(self): 573 node = libsbml.ASTNode(libsbml.AST_FUNCTION) 574 node.setName( "Foo") 575 self.assert_( node.getType() == libsbml.AST_FUNCTION ) 576 self.assert_(( "Foo" == node.getName() )) 577 self.assert_( node.getNumChildren() == 0 ) 578 copy = node.deepCopy() 579 self.assert_( copy != node ) 580 self.assert_( copy.getType() == libsbml.AST_FUNCTION ) 581 self.assert_(( "Foo" == copy.getName() )) 582 self.assert_( copy.getNumChildren() == 0 ) 583 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 584 _dummyList = [ copy ]; _dummyList[:] = []; del _dummyList 585 pass 586 587 def test_ASTNode_deepCopy_4(self): 588 node = libsbml.ASTNode(libsbml.AST_FUNCTION_ABS) 589 node.setName( "ABS") 590 self.assert_( node.getType() == libsbml.AST_FUNCTION_ABS ) 591 self.assert_(( "ABS" == node.getName() )) 592 self.assert_( node.getNumChildren() == 0 ) 593 copy = node.deepCopy() 594 self.assert_( copy != node ) 595 self.assert_( copy.getType() == libsbml.AST_FUNCTION_ABS ) 596 self.assert_(( "ABS" == copy.getName() )) 597 self.assert_( copy.getNumChildren() == 0 ) 598 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 599 _dummyList = [ copy ]; _dummyList[:] = []; del _dummyList 600 pass 601 602 def test_ASTNode_freeName(self): 603 node = libsbml.ASTNode() 604 i = 0 605 i = node.setName( "a") 606 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 607 self.assert_(( "a" == libsbml.formulaToString(node) )) 608 self.assert_(( "a" == node.getName() )) 609 i = node.freeName() 610 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 611 self.assert_( node.getName() == None ) 612 i = node.freeName() 613 self.assert_( i == libsbml.LIBSBML_UNEXPECTED_ATTRIBUTE ) 614 self.assert_( node.getName() == None ) 615 node.setType(libsbml.AST_UNKNOWN) 616 i = node.freeName() 617 self.assert_( i == libsbml.LIBSBML_UNEXPECTED_ATTRIBUTE ) 618 self.assert_( node.getName() == None ) 619 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 620 pass 621 622 def test_ASTNode_free_NULL(self): 623 _dummyList = [ None ]; _dummyList[:] = []; del _dummyList 624 pass 625 626 def test_ASTNode_getName(self): 627 n = libsbml.ASTNode() 628 n.setName( "foo") 629 self.assert_(( "foo" == n.getName() )) 630 n.setType(libsbml.AST_NAME_TIME) 631 self.assert_(( "foo" == n.getName() )) 632 n.setName(None) 633 self.assert_( n.getName() == None ) 634 n.setType(libsbml.AST_CONSTANT_E) 635 self.assert_(( "exponentiale" == n.getName() )) 636 n.setType(libsbml.AST_CONSTANT_FALSE) 637 self.assert_(( "false" == n.getName() )) 638 n.setType(libsbml.AST_CONSTANT_PI) 639 self.assert_(( "pi" == n.getName() )) 640 n.setType(libsbml.AST_CONSTANT_TRUE) 641 self.assert_(( "true" == n.getName() )) 642 n.setType(libsbml.AST_LAMBDA) 643 self.assert_(( "lambda" == n.getName() )) 644 n.setType(libsbml.AST_FUNCTION) 645 n.setName( "f") 646 self.assert_(( "f" == n.getName() )) 647 n.setType(libsbml.AST_FUNCTION_DELAY) 648 self.assert_(( "f" == n.getName() )) 649 n.setName(None) 650 self.assert_(( "delay" == n.getName() )) 651 n.setType(libsbml.AST_FUNCTION) 652 self.assert_( n.getName() == None ) 653 n.setType(libsbml.AST_FUNCTION_ABS) 654 self.assert_(( "abs" == n.getName() )) 655 n.setType(libsbml.AST_FUNCTION_ARCCOS) 656 self.assert_(( "arccos" == n.getName() )) 657 n.setType(libsbml.AST_FUNCTION_TAN) 658 self.assert_(( "tan" == n.getName() )) 659 n.setType(libsbml.AST_FUNCTION_TANH) 660 self.assert_(( "tanh" == n.getName() )) 661 n.setType(libsbml.AST_LOGICAL_AND) 662 self.assert_(( "and" == n.getName() )) 663 n.setType(libsbml.AST_LOGICAL_NOT) 664 self.assert_(( "not" == n.getName() )) 665 n.setType(libsbml.AST_LOGICAL_OR) 666 self.assert_(( "or" == n.getName() )) 667 n.setType(libsbml.AST_LOGICAL_XOR) 668 self.assert_(( "xor" == n.getName() )) 669 n.setType(libsbml.AST_RELATIONAL_EQ) 670 self.assert_(( "eq" == n.getName() )) 671 n.setType(libsbml.AST_RELATIONAL_GEQ) 672 self.assert_(( "geq" == n.getName() )) 673 n.setType(libsbml.AST_RELATIONAL_LT) 674 self.assert_(( "lt" == n.getName() )) 675 n.setType(libsbml.AST_RELATIONAL_NEQ) 676 self.assert_(( "neq" == n.getName() )) 677 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 678 pass 679 680 def test_ASTNode_getPrecedence(self): 681 n = libsbml.ASTNode() 682 n.setType(libsbml.AST_PLUS) 683 self.assert_( n.getPrecedence() == 2 ) 684 n.setType(libsbml.AST_MINUS) 685 self.assert_( n.getPrecedence() == 2 ) 686 n.setType(libsbml.AST_TIMES) 687 self.assert_( n.getPrecedence() == 3 ) 688 n.setType(libsbml.AST_DIVIDE) 689 self.assert_( n.getPrecedence() == 3 ) 690 n.setType(libsbml.AST_POWER) 691 self.assert_( n.getPrecedence() == 4 ) 692 n.setType(libsbml.AST_MINUS) 693 n.addChild(libsbml.ASTNode(libsbml.AST_NAME)) 694 self.assert_( n.isUMinus() == True ) 695 self.assert_( n.getPrecedence() == 5 ) 696 n.setType(libsbml.AST_NAME) 697 self.assert_( n.getPrecedence() == 6 ) 698 n.setType(libsbml.AST_FUNCTION) 699 self.assert_( n.getPrecedence() == 6 ) 700 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 701 pass 702 703 def test_ASTNode_getReal(self): 704 n = libsbml.ASTNode() 705 n.setType(libsbml.AST_REAL) 706 n.setValue(1.6) 707 self.assert_( n.getReal() == 1.6 ) 708 n.setType(libsbml.AST_REAL_E) 709 n.setValue(12.3,3) 710 val = abs(n.getReal() - 12300.0) 711 self.assert_( val < DBL_EPSILON ) 712 n.setType(libsbml.AST_RATIONAL) 713 n.setValue(1,2) 714 self.assert_( n.getReal() == 0.5 ) 715 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 716 pass 717 718 def test_ASTNode_insertChild(self): 719 node = libsbml.ASTNode() 720 c1 = libsbml.ASTNode() 721 c2 = libsbml.ASTNode() 722 c3 = libsbml.ASTNode() 723 newc = libsbml.ASTNode() 724 newc1 = libsbml.ASTNode() 725 i = 0 726 node.setType(libsbml.AST_LOGICAL_AND) 727 c1.setName( "a") 728 c2.setName( "b") 729 c3.setName( "c") 730 node.addChild(c1) 731 node.addChild(c2) 732 node.addChild(c3) 733 self.assert_( node.getNumChildren() == 3 ) 734 self.assert_(( "and(a, b, c)" == libsbml.formulaToString(node) )) 735 newc.setName( "d") 736 newc1.setName( "e") 737 i = node.insertChild(1,newc) 738 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 739 self.assert_( node.getNumChildren() == 4 ) 740 self.assert_(( "and(a, d, b, c)" == libsbml.formulaToString(node) )) 741 i = node.insertChild(5,newc) 742 self.assert_( i == libsbml.LIBSBML_INDEX_EXCEEDS_SIZE ) 743 self.assert_( node.getNumChildren() == 4 ) 744 self.assert_(( "and(a, d, b, c)" == libsbml.formulaToString(node) )) 745 i = node.insertChild(2,newc1) 746 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 747 self.assert_( node.getNumChildren() == 5 ) 748 self.assert_(( "and(a, d, e, b, c)" == libsbml.formulaToString(node) )) 749 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 750 pass 751 752 def test_ASTNode_isLog10(self): 753 n = libsbml.ASTNode() 754 n.setType(libsbml.AST_FUNCTION) 755 self.assert_( n.isLog10() == False ) 756 n.setType(libsbml.AST_FUNCTION_LOG) 757 self.assert_( n.isLog10() == False ) 758 c = libsbml.ASTNode() 759 n.addChild(c) 760 c.setValue(10) 761 self.assert_( n.isLog10() == False ) 762 n.addChild(libsbml.ASTNode()) 763 self.assert_( n.isLog10() == True ) 764 c.setValue(2) 765 self.assert_( n.isLog10() == False ) 766 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 767 pass 768 769 def test_ASTNode_isSqrt(self): 770 n = libsbml.ASTNode() 771 n.setType(libsbml.AST_FUNCTION) 772 self.assert_( n.isSqrt() == False ) 773 n.setType(libsbml.AST_FUNCTION_ROOT) 774 self.assert_( n.isSqrt() == False ) 775 c = libsbml.ASTNode() 776 n.addChild(c) 777 c.setValue(2) 778 self.assert_( n.isSqrt() == False ) 779 n.addChild(libsbml.ASTNode()) 780 self.assert_( n.isSqrt() == True ) 781 c.setValue(3) 782 self.assert_( n.isSqrt() == False ) 783 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 784 pass 785 786 def test_ASTNode_isUMinus(self): 787 n = libsbml.ASTNode() 788 n.setType(libsbml.AST_MINUS) 789 self.assert_( n.isUMinus() == False ) 790 n.addChild(libsbml.ASTNode(libsbml.AST_NAME)) 791 self.assert_( n.isUMinus() == True ) 792 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 793 pass 794 795 def test_ASTNode_no_children(self): 796 node = libsbml.ASTNode() 797 self.assert_( node.getNumChildren() == 0 ) 798 self.assert_( node.getLeftChild() == None ) 799 self.assert_( node.getRightChild() == None ) 800 self.assert_( node.getChild(0) == None ) 801 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 802 pass 803 804 def test_ASTNode_one_child(self): 805 node = libsbml.ASTNode() 806 child = libsbml.ASTNode() 807 node.addChild(child) 808 self.assert_( node.getNumChildren() == 1 ) 809 self.assert_( node.getLeftChild() == child ) 810 self.assert_( node.getRightChild() == None ) 811 self.assert_( node.getChild(0) == child ) 812 self.assert_( node.getChild(1) == None ) 813 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 814 pass 815 816 def test_ASTNode_prependChild1(self): 817 node = libsbml.ASTNode() 818 c1 = libsbml.ASTNode() 819 c2 = libsbml.ASTNode() 820 c1_1 = libsbml.ASTNode() 821 i = 0 822 node.setType(libsbml.AST_LOGICAL_AND) 823 c1.setName( "a") 824 c2.setName( "b") 825 node.addChild(c1) 826 node.addChild(c2) 827 self.assert_( node.getNumChildren() == 2 ) 828 self.assert_(( "and(a, b)" == libsbml.formulaToString(node) )) 829 c1_1.setName( "d") 830 i = node.prependChild(c1_1) 831 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 832 self.assert_( node.getNumChildren() == 3 ) 833 self.assert_(( "and(d, a, b)" == libsbml.formulaToString(node) )) 834 self.assert_(( "d" == node.getChild(0).getName() )) 835 self.assert_(( "a" == node.getChild(1).getName() )) 836 self.assert_(( "b" == node.getChild(2).getName() )) 837 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 838 pass 839 840 def test_ASTNode_removeChild(self): 841 node = libsbml.ASTNode() 842 c1 = libsbml.ASTNode() 843 c2 = libsbml.ASTNode() 844 i = 0 845 node.setType(libsbml.AST_PLUS) 846 c1.setName( "foo") 847 c2.setName( "foo2") 848 node.addChild(c1) 849 node.addChild(c2) 850 self.assert_( node.getNumChildren() == 2 ) 851 i = node.removeChild(0) 852 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 853 self.assert_( node.getNumChildren() == 1 ) 854 i = node.removeChild(1) 855 self.assert_( i == libsbml.LIBSBML_INDEX_EXCEEDS_SIZE ) 856 self.assert_( node.getNumChildren() == 1 ) 857 i = node.removeChild(0) 858 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 859 self.assert_( node.getNumChildren() == 0 ) 860 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 861 pass 862 863 def test_ASTNode_replaceChild(self): 864 node = libsbml.ASTNode() 865 c1 = libsbml.ASTNode() 866 c2 = libsbml.ASTNode() 867 c3 = libsbml.ASTNode() 868 newc = libsbml.ASTNode() 869 i = 0 870 node.setType(libsbml.AST_LOGICAL_AND) 871 c1.setName( "a") 872 c2.setName( "b") 873 c3.setName( "c") 874 node.addChild(c1) 875 node.addChild(c2) 876 node.addChild(c3) 877 self.assert_( node.getNumChildren() == 3 ) 878 self.assert_(( "and(a, b, c)" == libsbml.formulaToString(node) )) 879 newc.setName( "d") 880 i = node.replaceChild(0,newc) 881 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 882 self.assert_( node.getNumChildren() == 3 ) 883 self.assert_(( "and(d, b, c)" == libsbml.formulaToString(node) )) 884 i = node.replaceChild(3,newc) 885 self.assert_( i == libsbml.LIBSBML_INDEX_EXCEEDS_SIZE ) 886 self.assert_( node.getNumChildren() == 3 ) 887 self.assert_(( "and(d, b, c)" == libsbml.formulaToString(node) )) 888 i = node.replaceChild(1,c1) 889 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 890 self.assert_( node.getNumChildren() == 3 ) 891 self.assert_(( "and(d, a, c)" == libsbml.formulaToString(node) )) 892 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 893 pass 894 895 def test_ASTNode_setCharacter(self): 896 node = libsbml.ASTNode() 897 node.setName( "foo") 898 self.assert_( node.getType() == libsbml.AST_NAME ) 899 self.assert_( node.getCharacter() == "\0" ) 900 self.assert_(( "foo" == node.getName() )) 901 self.assert_( node.getInteger() == 0 ) 902 self.assert_( node.getReal() == 0 ) 903 self.assert_( node.getExponent() == 0 ) 904 self.assert_( node.getDenominator() == 1 ) 905 node.setCharacter( '+') 906 self.assert_( node.getType() == libsbml.AST_PLUS ) 907 self.assert_( node.getCharacter() == '+' ) 908 self.assert_( node.getName() == None ) 909 self.assert_( node.getInteger() == 0 ) 910 self.assert_( node.getReal() == 0 ) 911 self.assert_( node.getExponent() == 0 ) 912 self.assert_( node.getDenominator() == 1 ) 913 node.setCharacter( '-') 914 self.assert_( node.getType() == libsbml.AST_MINUS ) 915 self.assert_( node.getCharacter() == '-' ) 916 self.assert_( node.getName() == None ) 917 self.assert_( node.getInteger() == 0 ) 918 self.assert_( node.getReal() == 0 ) 919 self.assert_( node.getExponent() == 0 ) 920 self.assert_( node.getDenominator() == 1 ) 921 node.setCharacter( '*') 922 self.assert_( node.getType() == libsbml.AST_TIMES ) 923 self.assert_( node.getCharacter() == '*' ) 924 self.assert_( node.getName() == None ) 925 self.assert_( node.getInteger() == 0 ) 926 self.assert_( node.getReal() == 0 ) 927 self.assert_( node.getExponent() == 0 ) 928 self.assert_( node.getDenominator() == 1 ) 929 node.setCharacter( '/') 930 self.assert_( node.getType() == libsbml.AST_DIVIDE ) 931 self.assert_( node.getCharacter() == '/' ) 932 self.assert_( node.getName() == None ) 933 self.assert_( node.getInteger() == 0 ) 934 self.assert_( node.getReal() == 0 ) 935 self.assert_( node.getExponent() == 0 ) 936 self.assert_( node.getDenominator() == 1 ) 937 node.setCharacter( '^') 938 self.assert_( node.getType() == libsbml.AST_POWER ) 939 self.assert_( node.getCharacter() == '^' ) 940 self.assert_( node.getName() == None ) 941 self.assert_( node.getInteger() == 0 ) 942 self.assert_( node.getReal() == 0 ) 943 self.assert_( node.getExponent() == 0 ) 944 self.assert_( node.getDenominator() == 1 ) 945 node.setCharacter( '$') 946 self.assert_( node.getType() == libsbml.AST_UNKNOWN ) 947 self.assert_( node.getCharacter() == '$' ) 948 self.assert_( node.getName() == None ) 949 self.assert_( node.getInteger() == 0 ) 950 self.assert_( node.getReal() == 0 ) 951 self.assert_( node.getExponent() == 0 ) 952 self.assert_( node.getDenominator() == 1 ) 953 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 954 pass 955 956 def test_ASTNode_setInteger(self): 957 node = libsbml.ASTNode() 958 node.setName( "foo") 959 self.assert_( node.getType() == libsbml.AST_NAME ) 960 self.assert_(( "foo" == node.getName() )) 961 self.assert_( node.getCharacter() == "\0" ) 962 self.assert_( node.getInteger() == 0 ) 963 self.assert_( node.getReal() == 0 ) 964 self.assert_( node.getExponent() == 0 ) 965 self.assert_( node.getDenominator() == 1 ) 966 node.setValue(3.2) 967 self.assert_( node.getType() == libsbml.AST_REAL ) 968 self.assert_( node.getInteger() == 0 ) 969 self.assert_( node.getName() == None ) 970 self.assert_( node.getCharacter() == "\0" ) 971 self.assert_( node.getReal() == 3.2 ) 972 self.assert_( node.getExponent() == 0 ) 973 self.assert_( node.getDenominator() == 1 ) 974 node.setValue(321) 975 self.assert_( node.getType() == libsbml.AST_INTEGER ) 976 self.assert_( node.getInteger() == 321 ) 977 self.assert_( node.getName() == None ) 978 self.assert_( node.getCharacter() == "\0" ) 979 self.assert_( node.getReal() == 0 ) 980 self.assert_( node.getExponent() == 0 ) 981 self.assert_( node.getDenominator() == 1 ) 982 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 983 pass 984 985 def test_ASTNode_setName(self): 986 name = "foo"; 987 node = libsbml.ASTNode() 988 self.assert_( node.getType() == libsbml.AST_UNKNOWN ) 989 node.setName(name) 990 self.assert_( node.getType() == libsbml.AST_NAME ) 991 self.assert_(( name == node.getName() )) 992 self.assert_( node.getCharacter() == "\0" ) 993 self.assert_( node.getInteger() == 0 ) 994 self.assert_( node.getReal() == 0 ) 995 self.assert_( node.getExponent() == 0 ) 996 self.assert_( node.getDenominator() == 1 ) 997 if (node.getName() == name): 998 pass 999 node.setName(None) 1000 self.assert_( node.getType() == libsbml.AST_NAME ) 1001 if (node.getName() != None): 1002 pass 1003 node.setType(libsbml.AST_FUNCTION_COS) 1004 self.assert_( node.getType() == libsbml.AST_FUNCTION_COS ) 1005 self.assert_(( "cos" == node.getName() )) 1006 self.assert_( node.getCharacter() == "\0" ) 1007 self.assert_( node.getInteger() == 0 ) 1008 self.assert_( node.getReal() == 0 ) 1009 self.assert_( node.getExponent() == 0 ) 1010 self.assert_( node.getDenominator() == 1 ) 1011 node.setType(libsbml.AST_PLUS) 1012 node.setName(name) 1013 self.assert_( node.getType() == libsbml.AST_NAME ) 1014 self.assert_(( name == node.getName() )) 1015 self.assert_( node.getCharacter() == '+' ) 1016 self.assert_( node.getInteger() == 0 ) 1017 self.assert_( node.getReal() == 0 ) 1018 self.assert_( node.getExponent() == 0 ) 1019 self.assert_( node.getDenominator() == 1 ) 1020 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 1021 pass 1022 1023 def test_ASTNode_setName_override(self): 1024 node = libsbml.ASTNode(libsbml.AST_FUNCTION_SIN) 1025 self.assert_(( "sin" == node.getName() )) 1026 self.assert_( node.getType() == libsbml.AST_FUNCTION_SIN ) 1027 node.setName( "MySinFunc") 1028 self.assert_(( "MySinFunc" == node.getName() )) 1029 self.assert_( node.getType() == libsbml.AST_FUNCTION_SIN ) 1030 node.setName(None) 1031 self.assert_(( "sin" == node.getName() )) 1032 self.assert_( node.getType() == libsbml.AST_FUNCTION_SIN ) 1033 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 1034 pass 1035 1036 def test_ASTNode_setReal(self): 1037 node = libsbml.ASTNode() 1038 node.setName( "foo") 1039 self.assert_( node.getType() == libsbml.AST_NAME ) 1040 node.setValue(32.1) 1041 self.assert_( node.getType() == libsbml.AST_REAL ) 1042 self.assert_( node.getInteger() == 0 ) 1043 self.assert_( node.getName() == None ) 1044 self.assert_( node.getCharacter() == "\0" ) 1045 self.assert_( node.getReal() == 32.1 ) 1046 self.assert_( node.getExponent() == 0 ) 1047 self.assert_( node.getDenominator() == 1 ) 1048 self.assert_( node.getMantissa() == 32.1 ) 1049 node.setValue(45,90) 1050 self.assert_( node.getType() == libsbml.AST_RATIONAL ) 1051 self.assert_( node.getInteger() == 45 ) 1052 self.assert_( node.getName() == None ) 1053 self.assert_( node.getCharacter() == "\0" ) 1054 self.assert_( node.getReal() == 0.5 ) 1055 self.assert_( node.getExponent() == 0 ) 1056 self.assert_( node.getDenominator() == 90 ) 1057 self.assert_( node.getMantissa() == 0 ) 1058 node.setValue(32.0,4) 1059 self.assert_( node.getType() == libsbml.AST_REAL_E ) 1060 self.assert_( node.getInteger() == 0 ) 1061 self.assert_( node.getName() == None ) 1062 self.assert_( node.getCharacter() == "\0" ) 1063 self.assert_( node.getReal() == 320000 ) 1064 self.assert_( node.getExponent() == 4 ) 1065 self.assert_( node.getDenominator() == 1 ) 1066 self.assert_( node.getMantissa() == 32 ) 1067 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 1068 pass 1069 1070 def test_ASTNode_setType(self): 1071 node = libsbml.ASTNode() 1072 node.setName( "foo") 1073 self.assert_( node.getType() == libsbml.AST_NAME ) 1074 node.setType(libsbml.AST_FUNCTION) 1075 self.assert_( node.getType() == libsbml.AST_FUNCTION ) 1076 self.assert_(( "foo" == node.getName() )) 1077 node.setType(libsbml.AST_NAME) 1078 self.assert_( node.getType() == libsbml.AST_NAME ) 1079 self.assert_(( "foo" == node.getName() )) 1080 node.setType(libsbml.AST_INTEGER) 1081 self.assert_( node.getType() == libsbml.AST_INTEGER ) 1082 node.setType(libsbml.AST_REAL) 1083 self.assert_( node.getType() == libsbml.AST_REAL ) 1084 node.setType(libsbml.AST_UNKNOWN) 1085 self.assert_( node.getType() == libsbml.AST_UNKNOWN ) 1086 node.setType(libsbml.AST_PLUS) 1087 self.assert_( node.getType() == libsbml.AST_PLUS ) 1088 self.assert_( node.getCharacter() == '+' ) 1089 node.setType(libsbml.AST_MINUS) 1090 self.assert_( node.getType() == libsbml.AST_MINUS ) 1091 self.assert_( node.getCharacter() == '-' ) 1092 node.setType(libsbml.AST_TIMES) 1093 self.assert_( node.getType() == libsbml.AST_TIMES ) 1094 self.assert_( node.getCharacter() == '*' ) 1095 node.setType(libsbml.AST_DIVIDE) 1096 self.assert_( node.getType() == libsbml.AST_DIVIDE ) 1097 self.assert_( node.getCharacter() == '/' ) 1098 node.setType(libsbml.AST_POWER) 1099 self.assert_( node.getType() == libsbml.AST_POWER ) 1100 self.assert_( node.getCharacter() == '^' ) 1101 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 1102 pass 1103 1104 def test_ASTNode_swapChildren(self): 1105 node = libsbml.ASTNode() 1106 c1 = libsbml.ASTNode() 1107 c2 = libsbml.ASTNode() 1108 node_1 = libsbml.ASTNode() 1109 c1_1 = libsbml.ASTNode() 1110 c2_1 = libsbml.ASTNode() 1111 i = 0 1112 node.setType(libsbml.AST_LOGICAL_AND) 1113 c1.setName( "a") 1114 c2.setName( "b") 1115 node.addChild(c1) 1116 node.addChild(c2) 1117 self.assert_( node.getNumChildren() == 2 ) 1118 self.assert_(( "and(a, b)" == libsbml.formulaToString(node) )) 1119 node_1.setType(libsbml.AST_LOGICAL_AND) 1120 c1_1.setName( "d") 1121 c2_1.setName( "f") 1122 node_1.addChild(c1_1) 1123 node_1.addChild(c2_1) 1124 self.assert_( node_1.getNumChildren() == 2 ) 1125 self.assert_(( "and(d, f)" == libsbml.formulaToString(node_1) )) 1126 i = node.swapChildren(node_1) 1127 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 1128 self.assert_( node.getNumChildren() == 2 ) 1129 self.assert_(( "and(d, f)" == libsbml.formulaToString(node) )) 1130 self.assert_( node_1.getNumChildren() == 2 ) 1131 self.assert_(( "and(a, b)" == libsbml.formulaToString(node_1) )) 1132 _dummyList = [ node_1 ]; _dummyList[:] = []; del _dummyList 1133 _dummyList = [ node ]; _dummyList[:] = []; del _dummyList 1134 pass 1135 1136 def test_ASTNode_units(self): 1137 n = libsbml.ASTNode() 1138 n.setType(libsbml.AST_REAL) 1139 n.setValue(1.6) 1140 i = n.setUnits( "mole") 1141 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 1142 self.assert_( n.isSetUnits() == True ) 1143 self.assert_(( "mole" == n.getUnits() )) 1144 i = n.unsetUnits() 1145 self.assert_( i == libsbml.LIBSBML_OPERATION_SUCCESS ) 1146 self.assert_( n.isSetUnits() == False ) 1147 self.assert_(( "" == n.getUnits() )) 1148 i = n.setUnits( "1mole") 1149 self.assert_( i == libsbml.LIBSBML_INVALID_ATTRIBUTE_VALUE ) 1150 self.assert_( n.isSetUnits() == False ) 1151 n.setType(libsbml.AST_FUNCTION) 1152 i = n.setUnits( "mole") 1153 self.assert_( i == libsbml.LIBSBML_UNEXPECTED_ATTRIBUTE ) 1154 self.assert_( n.isSetUnits() == False ) 1155 self.assert_(( "" == n.getUnits() )) 1156 _dummyList = [ n ]; _dummyList[:] = []; del _dummyList 1157 pass 1158 1159def suite(): 1160 suite = unittest.TestSuite() 1161 suite.addTest(unittest.makeSuite(TestASTNode)) 1162 1163 return suite 1164 1165if __name__ == "__main__": 1166 if unittest.TextTestRunner(verbosity=1).run(suite()).wasSuccessful() : 1167 sys.exit(0) 1168 else: 1169 sys.exit(1) 1170