test_recursion.xml 734 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?xml version="1.0" ?>
  2. <test>
  3. <statechart>
  4. <datamodel><![CDATA[
  5. factorial = func(i:int) {
  6. return 0;
  7. };
  8. factorial = func(i:int) {
  9. if (i <= 0) return 1;
  10. return i*factorial(i-1);
  11. };
  12. ok = factorial(14) == 87178291200;
  13. ]]></datamodel>
  14. <root initial="ready">
  15. <state id="ready">
  16. <transition port="in" event="start" target="../final"
  17. cond="ok">
  18. <raise port="out" event="ok"/>
  19. </transition>
  20. </state>
  21. <state id="final"/>
  22. </root>
  23. </statechart>
  24. <input>
  25. <event port="in" name="start" time="0 d"/>
  26. </input>
  27. <output>
  28. <big_step>
  29. <event port="out" name="ok"/>
  30. </big_step>
  31. </output>
  32. </test>