diff --git a/NEWS.md b/NEWS.md index e74248c..6d5e295 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,11 @@ # Release notes +## Unversioned + +### Bug fixes + +* Fixed a bug in the function `check_scenario_profile` resulting in an error, if utilized. + ## Version 0.10.0 (2026-04-09) ### Breaking changes diff --git a/src/checks.jl b/src/checks.jl index 2a5f8a3..07e5b01 100644 --- a/src/checks.jl +++ b/src/checks.jl @@ -750,28 +750,28 @@ scenario indexing. """ function check_scenario_profile(time_profile::TimeProfile, message::String) # Check on the highest level - bool_osc = check_osc_sub_profile(time_profile, message, true) + bool_scp = check_osc_sub_profile(time_profile, message, true) # Iterate through the strategic profiles, if existing if isa(time_profile, StrategicProfile) for l1_profile ∈ time_profile.vals sub_msg = "in strategic profiles " * message - bool_osc = check_osc_sub_profile(l1_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l1_profile, sub_msg, bool_scp) if isa(l1_profile, RepresentativeProfile) for l2_profile ∈ l1_profile.vals sub_msg = "in representative profiles in strategic profiles " * message - bool_osc = check_osc_sub_profile(l2_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l2_profile, sub_msg, bool_scp) if isa(l2_profile, ScenarioProfile) for l3_profile ∈ l2_profile.vals sub_msg = "in scenario profiles in representative profiles in strategic profiles " * message - bool_osc = check_osc_sub_profile(l3_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l3_profile, sub_msg, bool_scp) end end end elseif isa(l1_profile, ScenarioProfile) for l2_profile ∈ l1_profile.vals sub_msg = "in scenario profiles in strategic profiles " * message - bool_osc = check_osc_sub_profile(l2_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l2_profile, sub_msg, bool_scp) end end end @@ -781,11 +781,11 @@ function check_scenario_profile(time_profile::TimeProfile, message::String) if isa(time_profile, RepresentativeProfile) for l1_profile ∈ time_profile.vals sub_msg = "in representative profiles " * message - bool_osc = check_osc_sub_profile(l1_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l1_profile, sub_msg, bool_scp) if isa(l1_profile, ScenarioProfile) for l2_profile ∈ l1_profile.vals sub_msg = "in scenario profiles in representative profiles " * message - bool_osc = check_osc_sub_profile(l2_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l2_profile, sub_msg, bool_scp) end end end @@ -795,7 +795,7 @@ function check_scenario_profile(time_profile::TimeProfile, message::String) if isa(time_profile, ScenarioProfile) for l1_profile ∈ time_profile.vals sub_msg = "in scenario profiles " * message - bool_osc = check_osc_sub_profile(l1_profile, sub_msg, bool_osc) + bool_scp = check_osc_sub_profile(l1_profile, sub_msg, bool_scp) end end return bool_scp diff --git a/src/constraint_functions.jl b/src/constraint_functions.jl index 2b6f101..4e1b352 100644 --- a/src/constraint_functions.jl +++ b/src/constraint_functions.jl @@ -638,7 +638,7 @@ function constraints_opex_fixed(m, n::Sink, 𝒯ᴵⁿᵛ, modeltype::EnergyMode # Fix the fixed OPEX for t_inv ∈ 𝒯ᴵⁿᵛ - fix(m[:opex_fixed][n, t_inv], 0, ; force = true) + fix(m[:opex_fixed][n, t_inv], 0; force = true) end end diff --git a/src/data_functions.jl b/src/data_functions.jl index c13cb79..181d272 100644 --- a/src/data_functions.jl +++ b/src/data_functions.jl @@ -33,7 +33,7 @@ function constraints_ext_data(m, n::Node, 𝒯, 𝒫, modeltype::EnergyModel, da # Fix the other emissions to 0 to avoid problems with unconstrained variables for t ∈ 𝒯, p_em ∈ 𝒫ᵉᵐ - fix(m[:emissions_node][n, t, p_em], 0, ; force = true) + fix(m[:emissions_node][n, t, p_em], 0; force = true) end end function constraints_ext_data(m, n::Node, 𝒯, 𝒫, modeltype::EnergyModel, data::EmissionsProcess) diff --git a/test/test_checks.jl b/test/test_checks.jl index 7dbb105..0c8ef8c 100644 --- a/test/test_checks.jl +++ b/test/test_checks.jl @@ -498,6 +498,17 @@ end @test_throws AssertionError EMB.check_scenario_profile(tp, "") end + # Check that valid profiles pass check_scenario_profile without error + valid_profiles = [ + FixedProfile(5), + StrategicProfile([FixedProfile(5)]), + StrategicProfile([RepresentativeProfile([FixedProfile(5)])]), + RepresentativeProfile([ScenarioProfile([FixedProfile(5)])]), + ] + for tp ∈ valid_profiles + @test EMB.check_scenario_profile(tp, "") + end + # Reactivate logging EMB.ASSERTS_AS_LOG = true end