From c8158e3e596868ec0510a84be339e1a301d9401f Mon Sep 17 00:00:00 2001 From: Rene Milk <rene.milk@uni-muenster.de> Date: Tue, 28 Jul 2015 14:49:01 +0200 Subject: [PATCH] [test] adds a couple of new ones --- dune/stuff/test/common_algorithm.cc | 46 +++++++++++++++++++++++++++++ dune/stuff/test/common_fixed_map.cc | 3 +- dune/stuff/test/common_parallel.cc | 5 +++- 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 dune/stuff/test/common_algorithm.cc diff --git a/dune/stuff/test/common_algorithm.cc b/dune/stuff/test/common_algorithm.cc new file mode 100644 index 000000000..6c1d708dd --- /dev/null +++ b/dune/stuff/test/common_algorithm.cc @@ -0,0 +1,46 @@ +// This file is part of the dune-stuff project: +// https://github.com/wwu-numerik/dune-stuff +// Copyright holders: Rene Milk, Felix Schindler +// License: BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) + +#include "main.hxx" + +#include <vector> +#include <dune/stuff/common/algorithm.hh> + +using namespace Dune::Stuff::Common; + +struct Moveable +{ + Moveable(int i) + : v(i) + { + } + int v; +}; + +TEST(MoveIfTest, All) +{ + using namespace std; + typedef vector<unique_ptr<Moveable>> Vec; + typedef Vec::value_type Ptr; + const auto size = 6; + Vec values; + for (int i : valueRange(size)) { + values.emplace_back(new Moveable(i * 2)); + } + Vec out; + const auto half_size = size / 2; + move_if(values.begin(), values.end(), std::back_inserter(out), [](Ptr& m) { return m->v < size; }); + EXPECT_EQ(out.size(), half_size); + auto ctr = [](Ptr& ptr) { return ptr != nullptr; }; + EXPECT_EQ(std::count_if(values.begin(), values.end(), ctr), half_size); + for (auto i : valueRange(half_size)) { + EXPECT_NE(out[i], nullptr); + EXPECT_EQ(i * 2, out[i]->v); + } + for (auto i : valueRange(half_size)) { + EXPECT_EQ(nullptr, values[i]); + EXPECT_EQ((i + half_size) * 2, values[i + half_size]->v); + } +} diff --git a/dune/stuff/test/common_fixed_map.cc b/dune/stuff/test/common_fixed_map.cc index c93574c4c..291bd132f 100644 --- a/dune/stuff/test/common_fixed_map.cc +++ b/dune/stuff/test/common_fixed_map.cc @@ -48,6 +48,5 @@ TEST(FixedMapTest, All) } EXPECT_EQ(std::make_pair(std::string("0"), 0), *too_big.begin()); - // death test segfaults inside gtest -> disabled - // EXPECT_DEATH(*too_big.end(), ".*"); + EXPECT_DEATH(*too_big.end(), ".*"); } diff --git a/dune/stuff/test/common_parallel.cc b/dune/stuff/test/common_parallel.cc index de03bdd56..28b238fdf 100644 --- a/dune/stuff/test/common_parallel.cc +++ b/dune/stuff/test/common_parallel.cc @@ -85,6 +85,9 @@ TYPED_TEST(ThreadValueTest, All) check_eq(bar, new_value); } -TEST(ThreadManagerTBB, All) +TEST(ThreadManager, All) { + auto& tm = DS::threadManager(); + EXPECT_LT(tm.current_threads(), tm.max_threads()); + EXPECT_LT(tm.thread(), tm.current_threads()); } -- GitLab