From ec345f72f54cfdff1ef401968f646d698cf578eb Mon Sep 17 00:00:00 2001
From: Mahmoud Bentriou <mahmoud.bentriou@centralesupelec.fr>
Date: Wed, 27 Jan 2021 12:41:54 +0100
Subject: [PATCH] Small fix in tests

---
 tests/automata/euclidean_distance_single.jl |  4 +-
 tests/cosmos/distance_F/ER_1D.jl            | 62 ++++++++++----------
 tests/cosmos/distance_G/ER_R5.jl            | 52 +++++++++--------
 tests/cosmos/distance_G_F/ER_R6.jl          | 64 +++++++++++----------
 4 files changed, 94 insertions(+), 88 deletions(-)

diff --git a/tests/automata/euclidean_distance_single.jl b/tests/automata/euclidean_distance_single.jl
index 237ed3d..c28ad52 100644
--- a/tests/automata/euclidean_distance_single.jl
+++ b/tests/automata/euclidean_distance_single.jl
@@ -10,8 +10,8 @@ set_time_bound!(SIR, 200.0)
 y_obs = vectorize(simulate(SIR), :I, tml_obs)
 sync_SIR = SIR * create_euclidean_distance_automaton(SIR, tml_obs, y_obs, :I)
 σ = simulate(sync_SIR)
-test = euclidean_distance(σ, tml_obs, y_obs, :I) == σ.state_lha_end[:d]
-@show test, euclidean_distance(σ, tml_obs, y_obs, :I), σ.state_lha_end[:d]
+test = euclidean_distance(σ, :I, tml_obs, y_obs) == σ.state_lha_end[:d]
+@show test, euclidean_distance(σ, :I, tml_obs, y_obs), σ.state_lha_end[:d]
 
 return test
 
diff --git a/tests/cosmos/distance_F/ER_1D.jl b/tests/cosmos/distance_F/ER_1D.jl
index 004d7a1..7eaac2d 100644
--- a/tests/cosmos/distance_F/ER_1D.jl
+++ b/tests/cosmos/distance_F/ER_1D.jl
@@ -28,41 +28,43 @@ for exp in l_exp
         continue
     end
     val_exp = dict_exp[exp]
-    x1, x2, t1, t2 = val_exp[1], val_exp[2], val_exp[3], val_exp[4]
-    A_F = create_automaton_F(model, x1, x2, t1, t2, :P)  
     l_k3 = 0:10:100
     nb_param = length(l_k3)
     l_dist_cosmos = zeros(nb_param)
     l_dist_pkg = zeros(nb_param)
     for i in 1:nb_param
-        # Cosmos estimation
-        k3 = l_k3[i]
-        command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
-        $(absolute_path * "distance_F/dist_F_"  * str_model * ".lha") --njob $(nworkers()) 
-        --const k_3=$(k3),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
-        --level $(level) --width $(width) 
-        --verbose 0` 
-        #run(command)
-        run(pipeline(command, stderr=devnull))
-        dict_values = cosmos_get_values("Result_dist_F_$(str_model).res")
-        l_dist_cosmos[i] = dict_values["Estimated value"][1]
-        nb_sim = dict_values["Total paths"][1]
-        nb_accepted = dict_values["Accepted paths"][1]
-        nb_sim = convert(Int, nb_sim)
-        # MarkovProcesses estimation
-        set_param!(ER, :k3, convert(Float64, k3))
-        sync_ER = ER*A_F
-        l_dist_pkg[i], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, :d, nb_sim; with_accepts = true)
-        #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
-        test = isapprox(l_dist_cosmos[i], l_dist_pkg[i]; atol = width*1.01) || 
-               (l_dist_cosmos[i] == 9997999 && l_dist_pkg[i] == Inf)
-        test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
-        global test_all = test_all && test && test2
-        if !test
-            @show l_dist_pkg[i], l_dist_cosmos[i]
-            @show exp
-            @show k3
-            @show nb_sim
+        let test, test2, nb_sim, sync_ER, k3, x1, x2, t1, t2, A_F
+            x1, x2, t1, t2 = val_exp[1], val_exp[2], val_exp[3], val_exp[4]
+            A_F = create_automaton_F(model, x1, x2, t1, t2, :P)  
+            # Cosmos estimation
+            k3 = l_k3[i]
+            command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
+            $(absolute_path * "distance_F/dist_F_"  * str_model * ".lha") --njob $(nworkers()) 
+            --const k_3=$(k3),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
+            --level $(level) --width $(width) 
+            --verbose 0` 
+            #run(command)
+            run(pipeline(command, stderr=devnull))
+            dict_values = cosmos_get_values("Result_dist_F_$(str_model).res")
+            l_dist_cosmos[i] = dict_values["Estimated value"][1]
+            nb_sim = dict_values["Total paths"][1]
+            nb_accepted = dict_values["Accepted paths"][1]
+            nb_sim = convert(Int, nb_sim)
+            # MarkovProcesses estimation
+            set_param!(ER, :k3, convert(Float64, k3))
+            sync_ER = ER*A_F
+            l_dist_pkg[i], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, :d, nb_sim; with_accepts = true)
+            #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
+            test = isapprox(l_dist_cosmos[i], l_dist_pkg[i]; atol = width*1.01) || 
+            (l_dist_cosmos[i] == 9997999 && l_dist_pkg[i] == Inf)
+            test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
+            global test_all = test_all && test && test2
+            if !test
+                @show l_dist_pkg[i], l_dist_cosmos[i]
+                @show exp
+                @show k3
+                @show nb_sim
+            end
         end
     end
     @info exp l_dist_pkg l_dist_cosmos
diff --git a/tests/cosmos/distance_G/ER_R5.jl b/tests/cosmos/distance_G/ER_R5.jl
index 6e05d75..ce300bf 100644
--- a/tests/cosmos/distance_G/ER_R5.jl
+++ b/tests/cosmos/distance_G/ER_R5.jl
@@ -29,32 +29,34 @@ mat_full_k1 = zeros(nb_k1,nb_k2)
 mat_full_k2 = zeros(nb_k1,nb_k2)
 for i = 1:nb_k1
     for j = 1:nb_k2
-        # Cosmos estimation
-        k1 = l_k1[i]
-        k2 = l_k2[j]
-        command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
-        $(absolute_path * "distance_G/dist_G_"  * str_model * ".lha") --njob $(nworkers()) 
-        --const k_1=$(k1),k_2=$(k2),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
-        --level $(level) --width $(width) 
-        --verbose 0` 
-        run(pipeline(command, stderr=devnull))
-        dict_values = cosmos_get_values("Result_dist_G_$(str_model).res")
-        mat_dist_cosmos[i,j] = dict_values["Estimated value"][1]
-        nb_sim = dict_values["Total paths"][1]
-        nb_accepted = dict_values["Accepted paths"][1]
-        nb_sim = convert(Int, nb_sim)
-        # MarkovProcesses estimation
-        set_param!(ER, :k1, convert(Float64, k1))
-        set_param!(ER, :k2, convert(Float64, k2))
-        sync_ER = ER*A_G
-        mat_dist_pkg[i,j], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, :d, nb_sim; with_accepts = true)
-        #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
-        test = isapprox(mat_dist_cosmos[i,j], mat_dist_pkg[i,j]; atol = width*1.01)
-        test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
-        if !test
-            @info "Distances too different" (k1,k2) mat_dist_pkg[i,j] mat_dist_cosmos[i,j]
+        let test, test2, nb_sim, sync_ER, k1, k2
+            # Cosmos estimation
+            k1 = l_k1[i]
+            k2 = l_k2[j]
+            command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
+            $(absolute_path * "distance_G/dist_G_"  * str_model * ".lha") --njob $(nworkers()) 
+            --const k_1=$(k1),k_2=$(k2),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
+            --level $(level) --width $(width) 
+            --verbose 0` 
+            run(pipeline(command, stderr=devnull))
+            dict_values = cosmos_get_values("Result_dist_G_$(str_model).res")
+            mat_dist_cosmos[i,j] = dict_values["Estimated value"][1]
+            nb_sim = dict_values["Total paths"][1]
+            nb_accepted = dict_values["Accepted paths"][1]
+            nb_sim = convert(Int, nb_sim)
+            # MarkovProcesses estimation
+            set_param!(ER, :k1, convert(Float64, k1))
+            set_param!(ER, :k2, convert(Float64, k2))
+            sync_ER = ER*A_G
+            mat_dist_pkg[i,j], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, :d, nb_sim; with_accepts = true)
+            #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
+            test = isapprox(mat_dist_cosmos[i,j], mat_dist_pkg[i,j]; atol = width*1.01)
+            test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
+            if !test
+                @info "Distances too different" (k1,k2) mat_dist_pkg[i,j] mat_dist_cosmos[i,j]
+            end
+            global test_all = test_all && test && test2 
         end
-        global test_all = test_all && test && test2 
     end
 end
 
diff --git a/tests/cosmos/distance_G_F/ER_R6.jl b/tests/cosmos/distance_G_F/ER_R6.jl
index 39f6be0..3d411b9 100644
--- a/tests/cosmos/distance_G_F/ER_R6.jl
+++ b/tests/cosmos/distance_G_F/ER_R6.jl
@@ -32,38 +32,40 @@ mat_full_k1 = zeros(nb_k1,nb_k2)
 mat_full_k2 = zeros(nb_k1,nb_k2)
 for i = 1:nb_k1
     for j = 1:nb_k2
-        # Cosmos estimation
-        k1 = l_k1[i]
-        k2 = l_k2[j]
-        command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
-        $(absolute_path * "distance_G_F/dist_G_F_"  * str_model * ".lha") --njob $(nworkers()) 
-        --const k_1=$(k1),k_2=$(k2),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
-        --level $(level) --width $(width) 
-        --verbose 0` 
-        run(pipeline(command, stderr=devnull))
-        dict_values = cosmos_get_values("Result_dist_G_F_$(str_model).res")
-        mat_dist_cosmos[i,j] = dict_values["Estimated value"][1] 
-        mat_dist_prime_cosmos[i,j] = dict_values["Estimated value"][2]
-        nb_sim = dict_values["Total paths"][1]
-        nb_accepted = dict_values["Accepted paths"][1]
-        nb_sim = convert(Int, nb_sim)
-        # MarkovProcesses estimation
-        set_param!(ER, :k1, convert(Float64, k1))
-        set_param!(ER, :k2, convert(Float64, k2))
-        sync_ER = ER*A_G_F
-        mat_dist_pkg[i,j], mat_dist_prime_pkg[i,j], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, [:d,:dprime], nb_sim; with_accepts = true)
-        #@info "Computed distances" mat_dist_pkg[i,j] mat_dist_prime_pkg[i,j] mat_dist_cosmos[i,j] mat_dist_prime_cosmos[i,j]
-        #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
-        test = (isapprox(mat_dist_cosmos[i,j], mat_dist_pkg[i,j]; atol = width*1.01)) || 
-                (mat_dist_cosmos[i,j] == 9997999 && mat_dist_pkg[i,j] == Inf)
-        test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
-        if !test
-            @info "Distances too different" (k1,k2) mat_dist_pkg[i,j] mat_dist_prime_pkg[i,j] mat_dist_cosmos[i,j] mat_dist_prime_cosmos[i,j]
+        let test, test2, nb_sim, sync_ER, k1, k2
+            # Cosmos estimation
+            k1 = l_k1[i]
+            k2 = l_k2[j]
+            command = `Cosmos $(absolute_path * "models/" * str_model * ".gspn") 
+            $(absolute_path * "distance_G_F/dist_G_F_"  * str_model * ".lha") --njob $(nworkers()) 
+            --const k_1=$(k1),k_2=$(k2),x1=$x1,x2=$x2,t1=$t1,t2=$t2 
+            --level $(level) --width $(width) 
+            --verbose 0` 
+            run(pipeline(command, stderr=devnull))
+            dict_values = cosmos_get_values("Result_dist_G_F_$(str_model).res")
+            mat_dist_cosmos[i,j] = dict_values["Estimated value"][1] 
+            mat_dist_prime_cosmos[i,j] = dict_values["Estimated value"][2]
+            nb_sim = dict_values["Total paths"][1]
+            nb_accepted = dict_values["Accepted paths"][1]
+            nb_sim = convert(Int, nb_sim)
+            # MarkovProcesses estimation
+            set_param!(ER, :k1, convert(Float64, k1))
+            set_param!(ER, :k2, convert(Float64, k2))
+            sync_ER = ER*A_G_F
+            mat_dist_pkg[i,j], mat_dist_prime_pkg[i,j], nb_accepts_pkg = distribute_mean_value_lha(sync_ER, [:d,:dprime], nb_sim; with_accepts = true)
+            #@info "Computed distances" mat_dist_pkg[i,j] mat_dist_prime_pkg[i,j] mat_dist_cosmos[i,j] mat_dist_prime_cosmos[i,j]
+            #@info "About accepts" nb_sim nb_accepted nb_accepts_pkg
+            test = (isapprox(mat_dist_cosmos[i,j], mat_dist_pkg[i,j]; atol = width*1.01)) || 
+            (mat_dist_cosmos[i,j] == 9997999 && mat_dist_pkg[i,j] == Inf)
+            test2 = nb_accepts_pkg == (nb_sim / nb_accepted)
+            if !test
+                @info "Distances too different" (k1,k2) mat_dist_pkg[i,j] mat_dist_prime_pkg[i,j] mat_dist_cosmos[i,j] mat_dist_prime_cosmos[i,j]
+            end
+            if !test2
+                @info "Different proportion of accepted trajectories" nb_sim nb_accepted nb_accepts_pkg
+            end
+            global test_all = test_all && test && test2 
         end
-        if !test2
-            @info "Different proportion of accepted trajectories" nb_sim nb_accepted nb_accepts_pkg
-        end
-        global test_all = test_all && test && test2 
     end
 end
 
-- 
GitLab