@@ -19,7 +19,7 @@ using CalibrateEmulateSample.ParameterDistributions
1919 n_ens = 10
2020 dim_obs = 3
2121 dim_par = 2
22- prior = constrained_gaussian (" test" , 1.0 , 2.0 , 0.0 , Inf , repeats= dim_par)
22+ prior = constrained_gaussian (" test" , 1.0 , 2.0 , 0.0 , Inf , repeats = dim_par)
2323 initial_ensemble = construct_initial_ensemble (rng, prior, n_ens) # params are cols
2424 y_obs = randn (rng, dim_obs)
2525 Γy = Matrix {Float64} (I, dim_obs, dim_obs)
@@ -47,33 +47,30 @@ using CalibrateEmulateSample.ParameterDistributions
4747 g_ens_final = randn (rng, dim_obs, n_ens) # add a final set out outputs.
4848 encoder_kwargs = encoder_kwargs_from (ekp, prior, final_samples_out = g_ens_final)
4949
50- prior_kwargs = (; prior_cov= cov (prior))
51- obs_kwargs = (; obs_noise_cov = [Γy], observation= [y_obs])
50+ prior_kwargs = (; prior_cov = cov (prior))
51+ obs_kwargs = (; obs_noise_cov = [Γy], observation = [y_obs])
5252 io_kwargs = (;
53- input_structure_vecs = Dict (
54- :dt => [0 , get_algorithm_time (ekp)... ],
55- :samples_in => get_u (ekp),
56- ),
57- output_structure_vecs = Dict (
58- :dt => [0 , get_algorithm_time (ekp)... ],
59- :samples_out => [get_g (ekp)... , g_ens_final],
60- ),
61- )
53+ input_structure_vecs = Dict (:dt => [0 , get_algorithm_time (ekp)... ], :samples_in => get_u (ekp)),
54+ output_structure_vecs = Dict (
55+ :dt => [0 , get_algorithm_time (ekp)... ],
56+ :samples_out => [get_g (ekp)... , g_ens_final],
57+ ),
58+ )
6259 test_kwargs = merge (prior_kwargs, obs_kwargs, io_kwargs)
63-
60+
6461 @test all (encoder_kwargs[key] == test_kwargs[key] for key in keys (encoder_kwargs))
6562 # remove final g
6663 encoder_reduced_kwargs = encoder_kwargs_from (ekp, prior)
6764 io_reduced_kwargs = (;
68- input_structure_vecs = Dict (
69- :dt => [0 , get_algorithm_time (ekp)... ][1 : end - 1 ],
70- :samples_in => get_u (ekp)[1 : end - 1 ],
71- ),
72- output_structure_vecs = Dict (
73- :dt => [0 , get_algorithm_time (ekp)... ][1 : end - 1 ],
74- :samples_out => [get_g (ekp)... ],
75- ),
76- )
65+ input_structure_vecs = Dict (
66+ :dt => [0 , get_algorithm_time (ekp)... ][1 : ( end - 1 ) ],
67+ :samples_in => get_u (ekp)[1 : ( end - 1 ) ],
68+ ),
69+ output_structure_vecs = Dict (
70+ :dt => [0 , get_algorithm_time (ekp)... ][1 : ( end - 1 ) ],
71+ :samples_out => [get_g (ekp)... ],
72+ ),
73+ )
7774 test_reduced_kwargs = merge (prior_kwargs, obs_kwargs, io_reduced_kwargs)
7875 @test all (encoder_reduced_kwargs[key] == test_reduced_kwargs[key] for key in keys (encoder_kwargs))
7976
490487 in_mat = in_dat * in_dat'
491488 out_mat = out_dat * out_dat'
492489 for (i_o, dat, mat) in ((" in" , in_dat, in_mat), (" out" , out_dat, out_mat))
490+
493491 enc_dat = encode_data (encoder_schedule, dat, i_o)
494492 dec_dat = decode_data (encoder_schedule, enc_dat, i_o)
495493 enc_mat = Matrix (encode_structure_matrix (encoder_schedule, mat, i_o))
504502 @test isapprox (norm ((D * enc_dat + b) - dec_dat), 0 ; atol = tol * size (D, 1 ))
505503 @test isapprox (norm (E * mat * E' - enc_mat), 0 ; atol = tol * size (E, 1 )^ 2 )
506504 @test isapprox (norm (D * enc_mat * D' - dec_mat), 0 ; atol = tol * size (D, 1 )^ 2 )
505+
506+ # test vec input
507+ enc_dat_vec = encode_data (encoder_schedule, vec (dat), i_o)
508+ dec_dat_vec = decode_data (encoder_schedule, enc_dat_vec, i_o)
509+ @test isapprox (norm (enc_dat_vec - vec (enc_dat)), 0 ; atol = tol)
510+ @test isapprox (norm (dec_dat_vec - vec (dec_dat)), 0 ; atol = tol)
511+
507512 end
508513 end
509514
0 commit comments