IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 1d3ef7f6 authored by Maximilian Reininghaus's avatar Maximilian Reininghaus :vulcan:
Browse files

test deletion

parent c8f1417e
No related branches found
No related tags found
No related merge requests found
......@@ -134,4 +134,77 @@ TEST_CASE("SecondaryStack", "[stack]") {
REQUIRE(view.GetSize() == 1);
}
SECTION("deletion") {
StackTest stack;
stack.AddParticle(std::tuple{0.});
{
auto particle = stack.GetNextParticle();
StackTestView view(particle);
auto proj = view.GetProjectile();
proj.AddSecondary(std::tuple{-2.});
proj.AddSecondary(std::tuple{-1.});
proj.AddSecondary(std::tuple{1.});
proj.AddSecondary(std::tuple{2.});
CHECK(stack.GetSize() == 5);
// now delete all negative entries, i.e. -1 and -2
auto p = view.begin();
while (p != view.end()) {
auto data = p.GetData();
if (data < 0) {
std::cout << "deleting " << data << ", ";
p.Delete();
} else {
++p;
}
}
// stack should contain 0, 1, 2 now
CHECK(stack.GetSize() == 3);
std::cout << std::endl;
for (auto& p : stack) { std::cout << p.GetData() << " | "; }
std::cout << std::endl;
}
// repeat
{
auto particle = stack.GetNextParticle();
StackTestView view(particle);
// put -2,...,+2 on stack
auto proj = view.GetProjectile();
proj.AddSecondary(std::tuple{-2.});
proj.AddSecondary(std::tuple{-1.});
proj.AddSecondary(std::tuple{1.});
proj.AddSecondary(std::tuple{2.});
// stack should contain 0, 1, 2, [ -2, -1, 1, 2]
auto p = view.begin();
while (p != view.end()) {
auto data = p.GetData();
if (data < 0) {
std::cout << "deleting " << data << ", ";
p.Delete();
} else {
++p;
}
}
// stack should contain 0, 1, 2, 0, [1, 2]
// view should contain 1, 2
CHECK(stack.GetSize() == 6);
std::cout << std::endl;
for (auto& p : stack) { std::cout << p.GetData() << " | "; }
std::cout << std::endl;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment