Hi Erol, For those who might not be familiar with Jacl: Jacl is a 100% Java implementation of a subset of Tcl. Tcl is a scripting language.
We use Jacl to write unit tests. The combination of using Jacl to create Unit tests and using models to create system tests is very powerful. Jacl can be used to easily test boundary and error conditions. Information about the test harness can be found at http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIlatest/ptII/doc/coding/testing.htm A copy of the Jacl manual page is at http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIlatest/ptII/doc/coding/tcljava.htm The version of jacl we ship with Ptolemy is a little different than the Jacl version elsewhere. I've fixed a few bugs and made some minor enhancements. $PTII/util/testsuite/models.tcl includes some tcl procs that create models. For example: proc sdfModel {{iters 1}} { set e0 [java::new ptolemy.actor.TypedCompositeActor] createBasicModelErrorHandler $e0 set manager [java::new ptolemy.actor.Manager] set director [java::new ptolemy.domains.sdf.kernel.SDFDirector] $e0 setDirector $director $e0 setName top $e0 setManager $manager set iterparam [getParameter $director iterations] $iterparam setToken [java::new ptolemy.data.IntToken $iters]; return $e0 } Then $PTII/ptolemy/domains/sdf/lib/test/Repeat.tcl uses the test Tcl proc to create a test. The test proc has four args test Name {comment} { body } {expected results} The return value of the last command in the body is compared with the expected results. In the test below, we create a TypedCompositeActor and add a Repeat actor to it: ###################################################################### #### # test Repeat-1.1 {test constructor and clone} { set e0 [java::new ptolemy.actor.TypedCompositeActor] set repeatbase [java::new ptolemy.domains.sdf.lib.Repeat $e0 repeat] set repeat [java::cast ptolemy.domains.sdf.lib.Repeat \ [$repeatbase clone [$e0 workspace]]] # Success here is just not throwing an exception. list {} } {{}} Here, we create a model, add the actor created in the above test, clone it so that we test clone (not necessary for just running a model) and run it: ###################################################################### #### Test Repeat in an SDF model # test Repeat-2.1 {test with the default output values} { set e0 [sdfModel 2] set ramp [java::new ptolemy.actor.lib.Ramp $e0 ramp] set init [getParameter $ramp init] set step [getParameter $ramp step] $init setExpression {0.0} $step setExpression {1.0} # Use clone of repeat to make sure that is ok. set clone [java::cast ptolemy.domains.sdf.lib.SDFTransformer \ [$repeat clone [$e0 workspace]]] $repeat {setContainer ptolemy.kernel.CompositeEntity} [java::null] $clone setName clone $clone {setContainer ptolemy.kernel.CompositeEntity} $e0 set blocksize [getParameter $clone blockSize] $blocksize setExpression { 3 } set rec [java::new ptolemy.actor.lib.Recorder $e0 rec] $e0 connect \ [java::field [java::cast ptolemy.actor.lib.Source $ramp] output] \ [java::field [java::cast ptolemy.domains.sdf.lib.SDFTransformer $clone] input] $e0 connect \ [java::field \ [java::cast ptolemy.domains.sdf.lib.SDFTransformer $clone] output] \ [java::field [java::cast ptolemy.actor.lib.Sink $rec] input] [$e0 getManager] execute ptclose [enumToTokenValues [$rec getRecord 0]] \ {0.0 1.0 2.0 0.0 1.0 2.0 3.0 4.0 5.0 3.0 4.0 5.0} \ 0.001 } {1} You can also create models with Java, see $PTII/ptolemy/domains/sdf/demo/Butterfly/Butterfly.java _Christopher -------- Hi, I would like to see some models that was created by JACL. Could you point me into some in either ptolemy package or somewhere else? Best Regards Thanks Erol Akarsu __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------------- - Posted to the ptolemy-hackers mailing list. Please send administrative mail for this list to: [EMAIL PROTECTED] -------- ---------------------------------------------------------------------------- Posted to the ptolemy-hackers mailing list. Please send administrative mail for this list to: [EMAIL PROTECTED]