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