From 538080ac5cd2aac9646f451bc54e0f4ae5251d95 Mon Sep 17 00:00:00 2001 From: Marcel Stimberg Date: Wed, 29 May 2024 11:44:13 +0200 Subject: [PATCH] Do not convert run_args values to lower case This broke setting values with arrays for group names with upper case characters --- brian2/devices/cpp_standalone/templates/objects.cpp | 9 +++------ brian2/tests/test_cpp_standalone.py | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/brian2/devices/cpp_standalone/templates/objects.cpp b/brian2/devices/cpp_standalone/templates/objects.cpp index 17a1afad3..166caab29 100644 --- a/brian2/devices/cpp_standalone/templates/objects.cpp +++ b/brian2/devices/cpp_standalone/templates/objects.cpp @@ -78,13 +78,10 @@ template void set_variable_from_file(std::string varname, T* var_pointe void set_variable_by_name(std::string name, std::string s_value) { size_t var_size; size_t data_size; - std::for_each(s_value.begin(), s_value.end(), [](char& c) // modify in-place - { - c = std::tolower(static_cast(c)); - }); - if (s_value == "true") + // C-style or Python-style capitalization is allowed for boolean values + if (s_value == "true" || s_value == "True") s_value = "1"; - else if (s_value == "false") + else if (s_value == "false" || s_value == "False") s_value = "0"; // non-dynamic arrays {% for var, varname in array_specs | dictsort(by='value') %} diff --git a/brian2/tests/test_cpp_standalone.py b/brian2/tests/test_cpp_standalone.py index 0d4db56b8..3a5d28a84 100644 --- a/brian2/tests/test_cpp_standalone.py +++ b/brian2/tests/test_cpp_standalone.py @@ -868,7 +868,7 @@ def test_change_parameter_without_recompile_dict_syntax(): def test_change_synapse_parameter_without_recompile_dict_syntax(): set_device("cpp_standalone", directory=None, with_output=False) G = NeuronGroup(10, "", name="neurons") - S = Synapses(G, G, "w:1", name="synapses") + S = Synapses(G, G, "w:1", name="Synapses") S.connect(j="i") S.w = np.arange(10) run(0 * ms)