test_miscellaneous.jl 982 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. @testset "Simulation Duration Boundary" begin
  2. top = CoupledDEVS(:Top)
  3. ticker = add_submodel!(
  4. top, :Ticker, MockNode;
  5. ta=1.0, cycles=-1
  6. )
  7. model = compile_devs(top; logging="test/traces/julia.csv")
  8. simulate_devs!(model, 3.5)
  9. test_trace_equivalence("test/traces/julia.csv", "test/traces/SimDurationBoundary.csv")
  10. tick_agent = model[model.path_to_id["Top.Ticker"]]
  11. @test tick_agent.n_internal == 3
  12. @test abmtime(model) == 3.0
  13. queue = getfield(model, :event_queue)
  14. @test !isempty(queue)
  15. @test first(queue)[2] == 4.0
  16. end
  17. @testset "Tracer and Logging Execution" begin
  18. top = CoupledDEVS(:Top)
  19. sender = add_submodel!(top, :Sender, MockNode;
  20. out_ports=(; out=Int), ta=1.0
  21. )
  22. model = compile_devs(top; logging="")
  23. simulate_devs!(model, 2.0)
  24. @test length(model.event_logs) > 0
  25. first_log = model.event_logs[1]
  26. @test first_log[1] == 1.0 # time
  27. @test first_log[3] == INTERNAL
  28. end