Source code for tests.test_hierarchical

"""
Author: Changbeom Choi (@cbchoi)
Copyright (c) 2014-2020 Handong Global University
Copyright (c) 2021-2024 Hanbat National University
License: MIT.  The full license text is available at:
https://github.com/eventsim/pyjevsim/blob/main/LICENSE

A simple GBP example using Behavior Model and Structural Model. 

PEG(process event generator) model generates events periodically.
Buffer model stores and forwards Events generated by the PEG.
MsgRecv handles the event messages generated by the PEG.

Usage:
From a terminal in the parent directory, run the following command.

   pytest -s ./tests/test_hierachical.py 
"""

from pyjevsim.definition import *
from pyjevsim.system_executor import SysExecutor

from .model_msg_recv import MsgRecv
from .model_peg import PEG
from .model_stm import STM


[docs] def execute_simulation(): # System Simulator Initialization se = SysExecutor(1, ex_mode=ExecutionType.V_TIME, snapshot_manager=None) se.insert_input_port("start") #set Structural Model gen = STM("Gen") se.register_entity(gen, inst_t=3) #set Behavior Model peg = PEG("GEN") se.register_entity(peg) #set Model Relation se.coupling_relation(se, "start", gen, "start") se.coupling_relation(se, "start", peg, "start") se.insert_external_event("start", None) for _ in range(5): se.simulate(1)
[docs] def test_f(capsys): execute_simulation() captured = capsys.readouterr()