diff --git a/external/vector b/external/vector index 8284611f05b0fbe21a1f84630e2726015cb1d96d..c8678e80660cd63b293ade80ece8eed2249c1b06 160000 --- a/external/vector +++ b/external/vector @@ -1 +1 @@ -Subproject commit 8284611f05b0fbe21a1f84630e2726015cb1d96d +Subproject commit c8678e80660cd63b293ade80ece8eed2249c1b06 diff --git a/tests/unit/test_algorithms.cpp b/tests/unit/test_algorithms.cpp index 2e82bcc9a6effc4e0fdbb70bbad3d7cddf443aba..b371b9d6f2d071057082e0354951876c7e732b80 100644 --- a/tests/unit/test_algorithms.cpp +++ b/tests/unit/test_algorithms.cpp @@ -14,9 +14,12 @@ TEST(algorithms, sum) EXPECT_EQ(10*2, nest::mc::algorithms::sum(v1)); // make an array 1:20 and sum it up using formula for arithmetic sequence - std::vector<int> v2(20); - std::iota(v2.begin(), v2.end(), 1); auto n = 20; + std::vector<int> v2(n); + // can't use iota because the Intel compiler optimizes it out, despite + // the result being required in EXPECT_EQ + // std::iota(v2.begin(), v2.end(), 1); + for(auto i=0; i<n; ++i) { v2[i] = i+1; } EXPECT_EQ((n+1)*n/2, nest::mc::algorithms::sum(v2)); } diff --git a/tests/unit/test_synapses.cpp b/tests/unit/test_synapses.cpp index 8cd9de04f57625ec7416e5a571ab24447c1a6cae..357a5a2a8a3f166476474a2c538a01f34d2f2853 100644 --- a/tests/unit/test_synapses.cpp +++ b/tests/unit/test_synapses.cpp @@ -58,30 +58,33 @@ TEST(synapses, expsyn_basic_state) auto ptr = dynamic_cast<synapse_type*>(mech.get()); + auto n = ptr->size(); + using view = synapse_type::view_type; + // parameters initialized to default values - for(auto e : ptr->e) { + for(auto e : view(ptr->e, n)) { EXPECT_EQ(e, 0.); } - for(auto tau : ptr->tau) { + for(auto tau : view(ptr->tau, n)) { EXPECT_EQ(tau, 2.0); } // current and voltage vectors correctly hooked up - for(auto v : ptr->vec_v_) { + for(auto v : view(ptr->vec_v_, n)) { EXPECT_EQ(v, -65.); } - for(auto i : ptr->vec_i_) { + for(auto i : view(ptr->vec_i_, n)) { EXPECT_EQ(i, 1.0); } // should be initialized to NaN - for(auto g : ptr->g) { + for(auto g : view(ptr->g, n)) { EXPECT_NE(g, g); } // initialize state then check g has been set to zero ptr->nrn_init(); - for(auto g : ptr->g) { + for(auto g : view(ptr->g, n)) { EXPECT_EQ(g, 0.); } @@ -106,32 +109,35 @@ TEST(synapses, exp2syn_basic_state) auto ptr = dynamic_cast<synapse_type*>(mech.get()); + auto n = ptr->size(); + using view = synapse_type::view_type; + // parameters initialized to default values - for(auto e : ptr->e) { + for(auto e : view(ptr->e, n)) { EXPECT_EQ(e, 0.); } - for(auto tau1: ptr->tau1) { + for(auto tau1: view(ptr->tau1, n)) { EXPECT_EQ(tau1, 0.5); } - for(auto tau2: ptr->tau2) { + for(auto tau2: view(ptr->tau2, n)) { EXPECT_EQ(tau2, 2.0); } // should be initialized to NaN - for(auto factor: ptr->factor) { + for(auto factor: view(ptr->factor, n)) { EXPECT_NE(factor, factor); } // initialize state then check factor has sane (positive) value // and A and B are zero ptr->nrn_init(); - for(auto factor: ptr->factor) { + for(auto factor: view(ptr->factor, n)) { EXPECT_GT(factor, 0.); } - for(auto A: ptr->A) { + for(auto A: view(ptr->A, n)) { EXPECT_EQ(A, 0.); } - for(auto B: ptr->B) { + for(auto B: view(ptr->B, n)) { EXPECT_EQ(B, 0.); } @@ -142,3 +148,4 @@ TEST(synapses, exp2syn_basic_state) EXPECT_NEAR(ptr->A[1], ptr->factor[1]*3.14, 1e-6); EXPECT_NEAR(ptr->B[3], ptr->factor[3]*1.04, 1e-6); } +