RoboidControl-cpp/test/Polar_test.cc
2024-03-14 12:37:22 +01:00

29 lines
684 B
C++

#if GTEST
#include <gtest/gtest.h>
#include <limits>
#include <math.h>
#include "Polar.h"
#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
TEST(Polar, FromVector2) {
Vector2 v = Vector2(0, 1);
Polar p = Polar::Polar(v);
EXPECT_FLOAT_EQ(p.distance, 1.0F) << "p.distance 0 1";
EXPECT_FLOAT_EQ(p.angle, 0.0F) << "s.angle 0 0 1";
v = Vector2(1, 0);
p = Polar::Polar(v);
EXPECT_FLOAT_EQ(p.distance, 1.0F) << "p.distance 1 0";
EXPECT_FLOAT_EQ(p.angle, 90.0F) << "s.angle 1 0";
v = Vector2(-1, 1);
p = Polar::Polar(v);
EXPECT_FLOAT_EQ(p.distance, sqrt(2.0F)) << "p.distance -1 1";
EXPECT_NEAR(p.angle, -45.0F, 1.0e-05) << "s.angle -1 1";
}
#endif