コード例 #1
0
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);
}
コード例 #2
0
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());
}
コード例 #3
0
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);
}
コード例 #4
0
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());
}
コード例 #5
0
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());
}