diff --git a/Framework/StackInterface/Stack.h b/Framework/StackInterface/Stack.h index b277b10839464d2170306a1ed75c4b48a9da088a..ea84ad86d32c285fa6b2d2ce400b53cac791059c 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 e4e78a24f17c0a1914a7f5c946a9bffa16cd0c91..47cee856ab7d46ce6b5b5c978135bb798735afc8 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); + } }