| 1234567891011121314151617181920212223242526272829303132333435363738 |
- @testset "Simulation Duration Boundary" begin
- top = CoupledDEVS(:Top)
- ticker = add_submodel!(
- top, :Ticker, MockNode;
- ta=1.0, cycles=-1
- )
- model = compile_devs(top; logging="test/traces/julia.csv")
- simulate_devs!(model, 3.5)
- test_trace_equivalence("test/traces/julia.csv", "test/traces/SimDurationBoundary.csv")
- tick_agent = model[model.path_to_id["Top.Ticker"]]
- @test tick_agent.n_internal == 3
- @test abmtime(model) == 3.0
- queue = getfield(model, :event_queue)
- @test !isempty(queue)
- @test first(queue)[2] == 4.0
- end
- @testset "Tracer and Logging Execution" begin
- top = CoupledDEVS(:Top)
- sender = add_submodel!(top, :Sender, MockNode;
- out_ports=(; out=Int), ta=1.0
- )
- model = compile_devs(top; logging="")
- simulate_devs!(model, 2.0)
- @test length(model.event_logs) > 0
- first_log = model.event_logs[1]
- @test first_log[1] == 1.0 # time
- @test first_log[3] == INTERNAL
- end
|