#if GTEST #include #include #include #include "Direction.h" #define FLOAT_INFINITY std::numeric_limits::infinity() TEST(Direction16, Compare) { Direction16 d = Direction16::Degrees(45, 135); bool r; r = (d == Direction16(Angle16::Degrees(45), Angle16::Degrees(135))); EXPECT_TRUE(r) << "45,135 == 45, 135"; r = (d == Direction16(Angle16::Degrees(45 + 360), Angle16::Degrees(135 - 360))); EXPECT_TRUE(r) << "45+360, 135-360 == 45, 135"; } TEST(Direction16, Inverse) { Direction16 d; Direction16 r; d = Direction16::Degrees(45, 135); r = -d; EXPECT_EQ(r, Direction16::Degrees(-135, -135)) << "-(45, 135)"; d = Direction16::Degrees(-45, -135); r = -d; EXPECT_EQ(r, Direction16::Degrees(135, 135)) << "-(-45, -135)"; d = Direction16::Degrees(0, 0); r = -d; EXPECT_EQ(r, Direction16::Degrees(180, 0)) << "-(0, 0)"; d = Direction16::Degrees(0, 45); r = -d; EXPECT_EQ(r, Direction16::Degrees(180, -45)) << "-(0, 45)"; } TEST(Direction16, Equality) { Direction16 d; d = Direction16::Degrees(135, 45); EXPECT_EQ(d, Direction16::Degrees(135, 45)) << "(135, 45) == (135, 45)"; EXPECT_EQ(d, Direction16::Degrees(135 + 360, 45)) << "(135, 45) == (135 + 360, 45) "; EXPECT_EQ(d, Direction16::Degrees(135 - 360, 45)) << "(135, 135) == (135 - 360, 45) "; d = Direction16::Degrees(0, 45 + 180); EXPECT_EQ(d, Direction16::Degrees(180, -45)) << "(0, 45+180) == (180, -45)"; } #endif