diff --git a/src/Utilities.jl b/src/Utilities.jl index 01b8d02bf..2ebce7011 100644 --- a/src/Utilities.jl +++ b/src/Utilities.jl @@ -1163,7 +1163,7 @@ function create_noise_injector( end C = cov(prior) - m = reshape(mean(prior), :, 1) + m = (ndims(prior) > 1) ? reshape(mean(prior), :, 1) : fill(mean(prior), 1, 1) E = Matrix(E) enc_m = E * m + b diff --git a/test/MarkovChainMonteCarlo/runtests.jl b/test/MarkovChainMonteCarlo/runtests.jl index 5bf6d05ee..ab954c002 100644 --- a/test/MarkovChainMonteCarlo/runtests.jl +++ b/test/MarkovChainMonteCarlo/runtests.jl @@ -8,6 +8,7 @@ using CalibrateEmulateSample.EnsembleKalmanProcesses using CalibrateEmulateSample.MarkovChainMonteCarlo const MCMC = MarkovChainMonteCarlo using CalibrateEmulateSample.ParameterDistributions +const PD = ParameterDistributions using CalibrateEmulateSample.Emulators using CalibrateEmulateSample.DataContainers using CalibrateEmulateSample.Utilities @@ -624,6 +625,20 @@ end @test noise_injector.use_noise # check for noise_injector_threshold @test noise_injector.scaling == 0.5 + # check 1D + input_dim = 1 + n_samples = 10 + prior_1d = constrained_gaussian("1d-check", 0, 1, -Inf, 5) + in_data = PD.sample(prior_1d, n_samples) + out_data = PD.sample(prior_1d, n_samples) + io_pairs_1d = PairedDataContainer(in_data, out_data, data_are_columns = true) + + # lossless encoding + lossless_sch = create_encoder_schedule((minmax_scale(), "in")) + initialize_and_encode_with_schedule!(lossless_sch, io_pairs_1d; prior_cov = cov(prior_1d)) + + noise_injector = create_noise_injector(lossless_sch, prior_1d, 0.0, 0.5) + end