Prechádzať zdrojové kódy

extra translation test and clean up of connections

Snej69420 5 mesiacov pred
rodič
commit
e63aae39bf
2 zmenil súbory, kde vykonal 38 pridanie a 2 odobranie
  1. 0 2
      test/test_connections.jl
  2. 38 0
      test/test_translations.jl

+ 0 - 2
test/test_connections.jl

@@ -140,7 +140,6 @@ end
 
     @test haskey(model.couplings, (atomic1_id, :out))
     @test routes_to(model, atomic1_id, :out, atomic2_id, :in)
-#     @test (atomic2_id, :in) in model.couplings[(atomic1_id, :out)]
     empty!(top.couplings)
 
     # atomic out -> coupled in
@@ -204,6 +203,5 @@ end
     receiver_id = model.path_to_id["parent.child2.receiver"]
 
     @test haskey(model.couplings, (sender_id, :out))
-#     @test (receiver_id, :in) in model.couplings[(sender_id, :out)]
     @test routes_to(model, sender_id, :out, receiver_id, :in)
 end

+ 38 - 0
test/test_translations.jl

@@ -89,6 +89,44 @@ end
     @test receiver.inbox_log[:in][1] == 42
 end
 
+@testset "Fan-Out Translation Test" begin
+    top = CoupledDEVS(:Top)
+
+    sender_ref = add_submodel!(top, :Sender, MockNode;
+        out_ports=(; out=Int),
+        make_out=true, ta=1.0, output_msg=8
+    )
+    receiver_ref1 = add_submodel!(top, :Receiver1, MockNode;
+        inbox=(; in=Int[]),
+    )
+    receiver_ref2 = add_submodel!(top, :Receiver2, MockNode;
+        inbox=(; in=Int[]),
+    )
+
+    t1 = (msg) -> (msg * 2)
+    t2 = (msg) -> (msg ^ 2)
+
+    connect!(top, sender_ref.out, receiver_ref1.in; Z=t1)
+    connect!(top, sender_ref.out, receiver_ref2.in; Z=t2)
+
+    model = compile_devs(top; logging=julia_test_file)
+    simulate_devs!(model)
+    test_trace_equivalence(julia_test_file, "test/traces/TranslationFanOut.csv")
+
+    receiver1 = model[model.path_to_id["Top.Receiver1"]]
+    receiver2 = model[model.path_to_id["Top.Receiver2"]]
+
+    @test receiver1.n_external == 1
+    @test receiver2.n_external == 1
+
+    @test length(receiver1.inbox_log) == 1
+    @test length(receiver2.inbox_log) == 1
+
+    @test receiver1.inbox_log[:in][1] == 16
+    @test receiver2.inbox_log[:in][1] == 64
+
+end
+
 @testset "Flattened Translation" begin
     parent = CoupledDEVS(:parent)