1#include <gtest/gtest.h>
11 char** argv =
nullptr;
12 ippl::initialize(argc, argv);
26 EXPECT_FALSE(s->unitlessPositions);
27 EXPECT_TRUE(s->momentsDirty);
39 s->setUnitlessPositions(
true);
40 EXPECT_TRUE(s->unitlessPositions);
41 s->setUnitlessPositions(
false);
42 EXPECT_FALSE(s->unitlessPositions);
50 EXPECT_TRUE(s->momentsDirty);
52 s->markMomentsClean();
53 EXPECT_FALSE(s->momentsDirty);
55 s->markMomentsDirty();
56 EXPECT_TRUE(s->momentsDirty);
58 s->markMomentsClean();
59 EXPECT_FALSE(s->momentsDirty);
62 s->markMomentsDirty();
63 s->markMomentsDirty();
64 EXPECT_TRUE(s->momentsDirty);
82 ASSERT_NE(a.get(), b.get());
84 a->markMomentsClean();
85 b->markMomentsClean();
88 a->markMomentsDirty();
89 EXPECT_TRUE(a->momentsDirty);
90 EXPECT_FALSE(b->momentsDirty);
93 a->markMomentsClean();
94 b->markMomentsDirty();
95 EXPECT_FALSE(a->momentsDirty);
96 EXPECT_TRUE(b->momentsDirty);
103 std::weak_ptr<BunchStateHandler::ContainerState> observer;
107 EXPECT_FALSE(observer.expired());
110 EXPECT_TRUE(observer.expired());
119 if (ippl::Comm->size() < 2) {
120 GTEST_SKIP() <<
"Requires at least 2 MPI ranks to exercise divergent setter calls.";
126 s->markMomentsClean();
127 ASSERT_FALSE(s->momentsDirty);
130 if (ippl::Comm->rank() == 0) {
131 s->markMomentsDirty();
135 s->markMomentsClean();
137 EXPECT_TRUE(s->momentsDirty);
141 if (ippl::Comm->size() < 2) {
142 GTEST_SKIP() <<
"Requires at least 2 MPI ranks to exercise divergent setter calls.";
148 s->markMomentsDirty();
149 ASSERT_TRUE(s->momentsDirty);
154 if (ippl::Comm->rank() == 0) {
155 s->markMomentsClean();
157 s->markMomentsDirty();
159 EXPECT_TRUE(s->momentsDirty);
163 if (ippl::Comm->size() < 2) {
164 GTEST_SKIP() <<
"Requires at least 2 MPI ranks to exercise divergent setter calls.";
170 EXPECT_FALSE(s->unitlessPositions);
173 const bool isLast = (ippl::Comm->rank() == ippl::Comm->size() - 1);
174 s->setUnitlessPositions(isLast);
175 EXPECT_TRUE(s->unitlessPositions);
179 if (ippl::Comm->size() < 2) {
180 GTEST_SKIP() <<
"Requires at least 2 MPI ranks to exercise divergent setter calls.";
196 if (ippl::Comm->size() < 2) {
197 GTEST_SKIP() <<
"Requires at least 2 MPI ranks to distinguish synced from unsynced.";
203 s->markMomentsClean();
204 ASSERT_FALSE(s->momentsDirty);
207 if (ippl::Comm->rank() == 0) {
208 s->markMomentsDirty();
209 EXPECT_TRUE(s->momentsDirty);
211 EXPECT_FALSE(s->momentsDirty);
TEST_F(BunchStateHandlerTest, RegisterContainerReturnsFreshSlot)
static void TearDownTestSuite()
static void SetUpTestSuite()
Centralised tracking of mutable bunch-level and per-container status flags.
bool isFirstRepartition() const
void setFirstRepartition(bool v)
std::shared_ptr< ContainerState > registerContainer()
Allocate a new per-container slot and return a strong reference to it. The handler itself retains onl...