test_functions.xml 934 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?xml version="1.0" ?>
  2. <test>
  3. <statechart>
  4. <semantics
  5. big_step_maximality="take_many"
  6. concurrency="single"
  7. input_event_lifeline="first_combo_step"/>
  8. <datamodel>
  9. <func id="digit(i:int, pos:int)">
  10. pow = 10 ** pos;
  11. return i // pow % 10;
  12. </func>
  13. <func id="numdigits(i:int)">
  14. return float_to_int(log10(i)) + 1;
  15. </func>
  16. </datamodel>
  17. <tree>
  18. <state initial="ready">
  19. <state id="ready">
  20. <transition port="in" event="start" target="../final"
  21. cond="numdigits(123) == 3 and digit(123, 1) == 2">
  22. <raise port="out" event="ok"/>
  23. </transition>
  24. </state>
  25. <state id="final"/>
  26. </state>
  27. </tree>
  28. </statechart>
  29. <input>
  30. <input_event port="in" name="start" time="0 d"/>
  31. </input>
  32. <output>
  33. <big_step>
  34. <event port="out" name="ok"/>
  35. </big_step>
  36. </output>
  37. </test>