From 3bb68ef6a0bdcc4fa3afa837c686e1055a8515df Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Fri, 2 Oct 2020 15:37:00 +0200 Subject: [PATCH] count generations in testHistoryView --- Stack/History/testHistoryView.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Stack/History/testHistoryView.cc b/Stack/History/testHistoryView.cc index 718daac6b..8d99e496c 100644 --- a/Stack/History/testHistoryView.cc +++ b/Stack/History/testHistoryView.cc @@ -64,6 +64,17 @@ using TheTestStackView = using TestStackView = TheTestStackView; // history::HistorySecondaryProducer<TheTestStackView>; +template <typename Event> +int count_generations(Event const* event) { + int genCounter = 0; + while (event) { + event = event->parentEvent().get(); + genCounter++; + } + + return genCounter; +} + TEST_CASE("HistoryStackExtension", "[stack]") { logging::SetLevel(logging::level::debug); @@ -85,6 +96,7 @@ TEST_CASE("HistoryStackExtension", "[stack]") { CHECK(stack.getEntries() == 1); corsika::history::EventPtr evt = p0.GetEvent(); CHECK(evt == nullptr); + CHECK(count_generations(evt.get()) == 0); SECTION("interface test, view") { @@ -108,10 +120,12 @@ TEST_CASE("HistoryStackExtension", "[stack]") { CHECK(sec.GetParentEventIndex() == i); CHECK(sec.GetEvent() != nullptr); CHECK(sec.GetEvent()->parentEvent() == nullptr); + CHECK(count_generations(sec.GetEvent().get()) == 1); } // read 1st genertion particle particle auto p1 = stack.GetNextParticle(); + CHECK(count_generations(p1.GetEvent().get()) == 1); TestStackView hview1(p1); @@ -131,6 +145,8 @@ TEST_CASE("HistoryStackExtension", "[stack]") { CHECK(sec.GetEvent()->parentEvent() == ev1); CHECK(sec.GetEvent()->parentEvent()->parentEvent() == ev0); + CHECK(count_generations(sec.GetEvent().get()) == 2); + CHECK((stack.begin() + sec.GetEvent()->projectileIndex()).GetEvent() == sec.GetEvent()->parentEvent()); } @@ -159,6 +175,8 @@ TEST_CASE("HistoryStackExtension", "[stack]") { CHECK(sec.GetEvent()->parentEvent() == ev2); CHECK(sec.GetEvent()->parentEvent()->parentEvent() == ev1); CHECK(sec.GetEvent()->parentEvent()->parentEvent()->parentEvent() == ev0); + + CHECK(count_generations(sec.GetEvent().get()) == 3); } /* -- GitLab