diff --git a/arborio/cableio.cpp b/arborio/cableio.cpp index d87b1413e6a9d202a8c69a19b4b64d5bda4dcb43..c883bfef66138307e5f22a918ad86fa59189373e 100644 --- a/arborio/cableio.cpp +++ b/arborio/cableio.cpp @@ -60,8 +60,7 @@ s_expr mksexp(const i_clamp& c) { std::vector<s_expr> evlps; std::transform(c.envelope.begin(), c.envelope.end(), std::back_inserter(evlps), [](const auto& x){return slist(x.t, x.amplitude);}); - auto envelope = slist("envelope"_symbol, slist_range(evlps)); - return slist("current-clamp"_symbol, envelope, c.frequency, c.phase); + return slist("current-clamp"_symbol, s_expr{"envelope"_symbol, slist_range(evlps)}, c.frequency, c.phase); } s_expr mksexp(const threshold_detector& d) { return slist("threshold-detector"_symbol, d.threshold); diff --git a/test/unit/test_s_expr.cpp b/test/unit/test_s_expr.cpp index 078d531f3dfbfd19d871923bb1b9d51a7c18ddf7..970e972ed0b077fc93462ecf6e05eaf19b965676 100644 --- a/test/unit/test_s_expr.cpp +++ b/test/unit/test_s_expr.cpp @@ -600,6 +600,9 @@ TEST(decor, round_tripping) { " (ion-internal-concentration \"ca\" 0.500000))\n" " (place \n" " (location 0 0)\n" + " (gap-junction-site))\n" + " (place \n" + " (location 0 0)\n" " (threshold-detector 10.000000))\n" " (place \n" " (location 0 0.5)\n" @@ -803,10 +806,16 @@ TEST(cable_cell, round_tripping) { " (mechanism \"pas\"))\n" " (paint \n" " (region \"soma\")\n" - " (mechanism \"hh\"))\n" + " (mechanism \"hh\" \n" + " (\"el\" 0.500000)))\n" " (place \n" " (location 0 1)\n" - " (mechanism \"exp2syn\")))))"; + " (current-clamp \n" + " (envelope \n" + " (10.000000 0.500000)\n" + " (110.000000 0.500000)\n" + " (110.000000 0.000000))\n" + " 0.000000 0.000000)))))"; EXPECT_EQ(component_str, round_trip_component(component_str.c_str()));