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