From 3c193fc47b49704954d3632957b76261592ad29d Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Sat, 21 Oct 2023 21:29:36 +0200 Subject: [PATCH] refactor: move test name into test class --- chapters/chapter_02/include/constexp.h | 1 + chapters/chapter_02/include/ifswitch.h | 1 + chapters/chapter_02/include/initlist.h | 1 + chapters/chapter_02/include/null.h | 1 + .../chapter_02/include/structured_binding.h | 3 +++ .../interface/include/chapter_interface.h | 1 + src/main.cpp | 23 ++++++++----------- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/chapters/chapter_02/include/constexp.h b/chapters/chapter_02/include/constexp.h index fd9e992..a2132bf 100644 --- a/chapters/chapter_02/include/constexp.h +++ b/chapters/chapter_02/include/constexp.h @@ -5,4 +5,5 @@ class ConstExpTest : public ChapterTest { public: virtual void run() override; + virtual const char *name() const override { return "Constexpr test"; } }; diff --git a/chapters/chapter_02/include/ifswitch.h b/chapters/chapter_02/include/ifswitch.h index 140f89f..055663d 100644 --- a/chapters/chapter_02/include/ifswitch.h +++ b/chapters/chapter_02/include/ifswitch.h @@ -5,4 +5,5 @@ class IfswitchTest : public ChapterTest { public: virtual void run() override; + virtual const char *name() const override { return "If/switch test"; } }; diff --git a/chapters/chapter_02/include/initlist.h b/chapters/chapter_02/include/initlist.h index 22a474e..d519df6 100644 --- a/chapters/chapter_02/include/initlist.h +++ b/chapters/chapter_02/include/initlist.h @@ -5,4 +5,5 @@ class InitListTest : public ChapterTest { public: virtual void run() override; + virtual const char *name() const override { return "Initializer list test"; } }; diff --git a/chapters/chapter_02/include/null.h b/chapters/chapter_02/include/null.h index f8add2e..b7e1782 100644 --- a/chapters/chapter_02/include/null.h +++ b/chapters/chapter_02/include/null.h @@ -5,4 +5,5 @@ class NullTest : public ChapterTest { public: virtual void run() override; + virtual const char *name() const override { return "Nullptr test"; } }; diff --git a/chapters/chapter_02/include/structured_binding.h b/chapters/chapter_02/include/structured_binding.h index a63392f..3729c44 100644 --- a/chapters/chapter_02/include/structured_binding.h +++ b/chapters/chapter_02/include/structured_binding.h @@ -5,4 +5,7 @@ class StructuredBindingTest : public ChapterTest { public: virtual void run() override; + virtual const char *name() const override { + return "Structured binding test"; + } }; diff --git a/chapters/interface/include/chapter_interface.h b/chapters/interface/include/chapter_interface.h index c79c66a..ebc64a7 100644 --- a/chapters/interface/include/chapter_interface.h +++ b/chapters/interface/include/chapter_interface.h @@ -4,4 +4,5 @@ class ChapterTest { public: virtual ~ChapterTest() = default; virtual void run() = 0; + virtual const char *name() const = 0; }; diff --git a/src/main.cpp b/src/main.cpp index ccd3a5f..51eeb4b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,24 +12,19 @@ int main(int argc, char **argv) { - std::cout << "Running " << PROJECT_NAME << ", version " << VERSION << "\n" + std::cout << "Running " << PROJECT_NAME << ", version " << VERSION << std::endl; - std::vector>> - chapter_2_tests; + std::vector> chapter_2_tests; - chapter_2_tests.emplace_back("Nullptr test", std::make_unique()); - chapter_2_tests.emplace_back("If/Switch test", - std::make_unique()); - chapter_2_tests.emplace_back("Constexpr test", - std::make_unique()); - chapter_2_tests.emplace_back("Initializer list test", - std::make_unique()); - chapter_2_tests.emplace_back("Structured binding test", - std::make_unique()); + chapter_2_tests.emplace_back(std::make_unique()); + chapter_2_tests.emplace_back(std::make_unique()); + chapter_2_tests.emplace_back(std::make_unique()); + chapter_2_tests.emplace_back(std::make_unique()); + chapter_2_tests.emplace_back(std::make_unique()); - for (auto &[test_description, test] : chapter_2_tests) { - std::cout << "\n" << test_description << ":" << std::endl; + for (auto &test : chapter_2_tests) { + std::cout << "\n" << test->name() << ":" << std::endl; test->run(); }