From 44ff8cb1d23ec8e47e16c2720d3e738c00410fe9 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Mon, 28 Sep 2020 11:10:04 +0200 Subject: [PATCH] added copy and swap particle test cases --- Framework/StackInterface/Stack.h | 4 -- .../StackInterface/testStackInterface.cc | 48 +++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/Framework/StackInterface/Stack.h b/Framework/StackInterface/Stack.h index b277b1083..ea84ad86d 100644 --- a/Framework/StackInterface/Stack.h +++ b/Framework/StackInterface/Stack.h @@ -241,10 +241,6 @@ namespace corsika::stack { data_.Swap(a.GetIndex(), b.GetIndex()); std::swap(deleted_[a.GetIndex()], deleted_[b.GetIndex()]); } - void Swap(ConstStackIterator a, ConstStackIterator b) { - data_.Swap(a.GetIndex(), b.GetIndex()); - std::swap(deleted_[a.GetIndex()], deleted_[b.GetIndex()]); - } void Copy(StackIterator a, StackIterator b) { data_.Copy(a.GetIndex(), b.GetIndex()); if (deleted_[b.GetIndex()] && !deleted_[a.GetIndex()]) nDeleted_--; diff --git a/Framework/StackInterface/testStackInterface.cc b/Framework/StackInterface/testStackInterface.cc index e4e78a24f..47cee856a 100644 --- a/Framework/StackInterface/testStackInterface.cc +++ b/Framework/StackInterface/testStackInterface.cc @@ -162,4 +162,52 @@ TEST_CASE("Stack", "[Stack]") { CHECK(s.getEntries() == 0); CHECK(s.IsEmpty()); } + + SECTION("swap particle") { + StackTest s; + CHECK(s.getSize() == 0); + CHECK(s.getEntries() == 0); + CHECK(s.IsEmpty()); + + s.AddParticle(std::tuple{9.888}); + s.AddParticle(std::tuple{8.999}); + CHECK(s.getSize() == 2); + CHECK(s.getEntries() == 2); + CHECK(!s.IsEmpty()); + + auto p1 = s.begin(); + auto p2 = p1+1; + + CHECK(p1.GetData()==9.888); + CHECK(p2.GetData()==8.999); + + s.Swap(p1, p2); + + CHECK(p1.GetData()==8.999); + CHECK(p2.GetData()==9.888); + } + + SECTION("copy particle") { + StackTest s; + CHECK(s.getSize() == 0); + CHECK(s.getEntries() == 0); + CHECK(s.IsEmpty()); + + s.AddParticle(std::tuple{9.888}); + s.AddParticle(std::tuple{8.999}); + CHECK(s.getSize() == 2); + CHECK(s.getEntries() == 2); + CHECK(!s.IsEmpty()); + + auto p1 = s.begin(); + auto p2 = p1+1; + + CHECK(p1.GetData()==9.888); + CHECK(p2.GetData()==8.999); + + s.Copy(p1, p2); + + CHECK(p1.GetData()==9.888); + CHECK(p2.GetData()==9.888); + } } -- GitLab