TEST(SmallObserverSphere, limitStep) { SmallObserverSphere obs(Vector3d(0, 0, 0), 1); Candidate c; c.setNextStep(10); c.current.setPosition(Vector3d(0, 0, 2)); obs.process(&c); EXPECT_DOUBLE_EQ(c.getNextStep(), 1); }
TEST(Observer1D, noDetection) { Observer1D obs; // observer at x = 0 Candidate c; c.current.setPosition(Vector3d(5, 0, 0)); c.setNextStep(10); obs.process(&c); EXPECT_TRUE(c.isActive()); EXPECT_DOUBLE_EQ(5, c.getNextStep()); }
TEST(EllipsoidalBoundary, limitStep) { EllipsoidalBoundary ellipsoid(Vector3d(-5, 0, 0), Vector3d(5, 0, 0), 15); ellipsoid.setLimitStep(true); ellipsoid.setMargin(0.5); Candidate c; c.setNextStep(2); c.current.setPosition(Vector3d(7, 0, 0)); ellipsoid.process(&c); EXPECT_DOUBLE_EQ(c.getNextStep(), 1.5); }
TEST(SphericalBoundary, limitStep) { SphericalBoundary sphere(Vector3d(0, 0, 0), 10); sphere.setLimitStep(true); sphere.setMargin(1); Candidate c; c.setNextStep(100); c.current.setPosition(Vector3d(0, 0, 9.5)); sphere.process(&c); EXPECT_DOUBLE_EQ(1.5, c.getNextStep()); }
TEST(CubicBoundary, limitStepUpper) { CubicBoundary cube(Vector3d(-10, -10, -10), 10); cube.setLimitStep(true); cube.setMargin(1); Candidate c; c.current.setPosition(Vector3d(-5, -5, -0.5)); c.setNextStep(100); cube.process(&c); EXPECT_DOUBLE_EQ(1.5, c.getNextStep()); }