Fix tests

This commit is contained in:
Pascal Serrarens 2024-08-05 11:47:07 +02:00
parent 9b0a5e066f
commit 10700da996

View File

@ -14,7 +14,8 @@
class MockDistanceSensor : public DistanceSensor { class MockDistanceSensor : public DistanceSensor {
public: public:
MockDistanceSensor() : DistanceSensor() {}; MockDistanceSensor() : DistanceSensor() {};
MockDistanceSensor(float triggerDistance) : DistanceSensor(triggerDistance){}; MockDistanceSensor(float triggerDistance)
: DistanceSensor(triggerDistance) {};
void SimulateMeasurement(float distance) { this->distance = distance; } void SimulateMeasurement(float distance) { this->distance = distance; }
}; };
@ -27,7 +28,8 @@ TEST(BB2B, NoObstacle) {
DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight); DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight);
propulsion->SetDimensions( propulsion->SetDimensions(
1 / Angle::pi, // we use this, such that motor speed 1 -> velocity 1 m/s 1 / Passer::LinearAlgebra::pi, // we use this, such that motor speed 1 ->
// velocity 1 m/s
1); 1);
Roboid* roboid = new Roboid(propulsion); Roboid* roboid = new Roboid(propulsion);
@ -98,7 +100,7 @@ TEST(BB2B, NoObstacle) {
Polar velocity = Polar velocity =
diffDrive->GetVelocity(); // this depends on the wheel diameter. diffDrive->GetVelocity(); // this depends on the wheel diameter.
EXPECT_FLOAT_EQ(velocity.distance, 1.0F); EXPECT_FLOAT_EQ(velocity.distance, 1.0F);
EXPECT_FLOAT_EQ(velocity.angle, 0.0F); EXPECT_FLOAT_EQ(velocity.angle.ToFloat(), 0.0F);
trackedObjectCount = roboid->perception->TrackedObjectCount(); trackedObjectCount = roboid->perception->TrackedObjectCount();
EXPECT_EQ(trackedObjectCount, 0); EXPECT_EQ(trackedObjectCount, 0);
@ -122,9 +124,10 @@ TEST(BB2B, ObstacleLeft) {
DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight); DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight);
propulsion->SetDimensions( propulsion->SetDimensions(
1 / Angle::pi, // we use this, such that motor speed 1 -> velocity 1 m/s 1 / Passer::LinearAlgebra::pi, // we use this, such that motor speed 1 ->
8 / Angle::pi); // we use this, such that angular velocity will be 90 // velocity 1 m/s
// degrees per second 8 / Passer::LinearAlgebra::pi); // we use this, such that angular
// velocity will be 90 degrees per second
Roboid* roboid = new Roboid(propulsion); Roboid* roboid = new Roboid(propulsion);
@ -177,7 +180,7 @@ TEST(BB2B, ObstacleLeft) {
ASSERT_FALSE(trackedObject == nullptr); ASSERT_FALSE(trackedObject == nullptr);
EXPECT_FLOAT_EQ(trackedObject->position.distance, 0.1F); EXPECT_FLOAT_EQ(trackedObject->position.distance, 0.1F);
EXPECT_FLOAT_EQ(trackedObject->position.horizontalAngle, -30); EXPECT_FLOAT_EQ(trackedObject->position.horizontalAngle.ToFloat(), -30);
#pragma endregion #pragma endregion
@ -223,9 +226,11 @@ TEST(BB2B, ObstacleRight) {
DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight); DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight);
propulsion->SetDimensions( propulsion->SetDimensions(
1 / Angle::pi, // we use this, such that motor speed 1 -> velocity 1 m/s 1 / Passer::LinearAlgebra::pi, // we use this, such that motor speed 1 ->
8 / Angle::pi); // we use this, such that angular velocity will be 90 // velocity 1 m/s
// degrees per second 8 / Passer::LinearAlgebra::pi); // we use this, such that angular
// velocity will be 90 degrees per
// second
Roboid* roboid = new Roboid(propulsion); Roboid* roboid = new Roboid(propulsion);
@ -278,7 +283,7 @@ TEST(BB2B, ObstacleRight) {
ASSERT_FALSE(trackedObject == nullptr); ASSERT_FALSE(trackedObject == nullptr);
EXPECT_FLOAT_EQ(trackedObject->position.distance, 0.1F); EXPECT_FLOAT_EQ(trackedObject->position.distance, 0.1F);
EXPECT_FLOAT_EQ(trackedObject->position.horizontalAngle, 30); EXPECT_FLOAT_EQ(trackedObject->position.horizontalAngle.ToFloat(), 30);
#pragma endregion #pragma endregion
@ -322,9 +327,10 @@ TEST(BB2B, ObstacleBoth) {
DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight); DifferentialDrive* propulsion = new DifferentialDrive(motorLeft, motorRight);
propulsion->SetDimensions( propulsion->SetDimensions(
1 / Angle::pi, // we use this, such that motor speed 1 -> velocity 1 m/s 1 / Passer::LinearAlgebra::pi, // we use this, such that motor speed 1 ->
8 / Angle::pi); // we use this, such that angular velocity will be 90 // velocity 1 m/s
// degrees per second 8 / Passer::LinearAlgebra::pi); // we use this, such that angular
// velocity will be 90 degrees per second
Roboid* roboid = new Roboid(propulsion); Roboid* roboid = new Roboid(propulsion);
MockDistanceSensor* sensorLeft = new MockDistanceSensor(); MockDistanceSensor* sensorLeft = new MockDistanceSensor();
@ -403,7 +409,7 @@ TEST(BB2B, ObstacleBoth) {
// Roboid velocity // Roboid velocity
Polar velocity = diffDrive->GetVelocity(); Polar velocity = diffDrive->GetVelocity();
EXPECT_FLOAT_EQ(velocity.distance, 1.0F); EXPECT_FLOAT_EQ(velocity.distance, 1.0F);
EXPECT_FLOAT_EQ(velocity.angle, 180.0F); EXPECT_FLOAT_EQ(velocity.angle.ToFloat(), 180.0F);
float angularVelocity = diffDrive->GetAngularVelocity(); float angularVelocity = diffDrive->GetAngularVelocity();
EXPECT_FLOAT_EQ(angularVelocity, 0.0F); EXPECT_FLOAT_EQ(angularVelocity, 0.0F);