feat: add GPU particle time interpolation

This commit is contained in:
OpenAI Codex
2026-09-02 09:45:10 +08:00
parent b0f855eb09
commit 4675a8a29d
20 changed files with 425 additions and 57 deletions

View File

@@ -219,6 +219,27 @@ TEST(Source, RasterArrayFieldIdentityIncludesFixtureAndDataVersion) {
EXPECT_FALSE(particle::fieldIdentityChanged(east, east));
}
TEST(Source, RasterArrayTimeWindowKeepsIndependentCompatibleSnapshots) {
const auto east = particle::OfflineFixtureParticleAdapter::load("uniform-east", 11);
const auto north = particle::OfflineFixtureParticleAdapter::load("uniform-north", 12);
const particle::ParticleFieldTimeWindow window{east, north};
EXPECT_TRUE(window.isValid());
EXPECT_NE(window.t0.generation, window.t1.generation);
EXPECT_TRUE(window.t0.isTimeInterpolationCompatibleWith(window.t1));
EXPECT_TRUE(particle::fieldIdentityChanged(window.t0, window.t1));
}
TEST(Source, RasterArrayTimeWindowRejectsIncompatibleGrid) {
const auto east = particle::OfflineFixtureParticleAdapter::load("uniform-east", 13);
auto incompatible = east;
++incompatible.width;
const particle::ParticleFieldTimeWindow window{east, incompatible};
EXPECT_FALSE(east.isTimeInterpolationCompatibleWith(incompatible));
EXPECT_FALSE(window.isValid());
}
TEST(Source, LoadingCorrupt) {
SourceTest test;