JD2022-TU1/main/extern/Hue/libhuestream/test/TestVector.cpp

63 lines
2.9 KiB
C++

#include <huestream/effect/animation/data/Point.h>
#include <huestream/effect/animation/data/Vector.h>
#include "gtest/gtest.h"
#include "huestream/common/data/Color.h"
using namespace huestream;
class TestVector : public testing::Test {
protected:
virtual void SetUp() {
}
virtual void TearDown() {
}
};
TEST_F(TestVector, ResultIsEqualToLength)
{
EXPECT_EQ(8, Vector(Point(0,0), Point(8,0), false).GetLength());
EXPECT_EQ(8, Vector(Point(8,0), Point(0,0), false).GetLength());
EXPECT_EQ(8, Vector(Point(0,0), Point(0,8), false).GetLength());
EXPECT_EQ(8, Vector(Point(0,8), Point(0,0), false).GetLength());
EXPECT_EQ(8, Vector(Point(1,0), Point(9,0), false).GetLength());
EXPECT_EQ(8, Vector(Point(9,0), Point(1,0), false).GetLength());
EXPECT_NEAR(5.65685, Vector(Point(0,0), Point(4,4), false).GetLength(), 0.0001);
EXPECT_NEAR(5.65685, Vector(Point(4,4), Point(0,0), false).GetLength(), 0.0001);
}
TEST_F(TestVector, ResultIsEqualToQuadrant)
{
EXPECT_EQ(0, Vector(Point(0,0), Point(1,1), false).GetQuadrant());
EXPECT_EQ(1, Vector(Point(0,0), Point(1,-1), false).GetQuadrant());
EXPECT_EQ(2, Vector(Point(0,0), Point(-1,-1), false).GetQuadrant());
EXPECT_EQ(3, Vector(Point(0,0), Point(-1,1), false).GetQuadrant());
EXPECT_EQ(2, Vector(Point(1,1), Point(0,0), false).GetQuadrant());
EXPECT_EQ(3, Vector(Point(1,-1), Point(0,0), false).GetQuadrant());
EXPECT_EQ(0, Vector(Point(-1,-1), Point(0,0), false).GetQuadrant());
EXPECT_EQ(1, Vector(Point(-1,1), Point(0,0), false).GetQuadrant());
}
TEST_F(TestVector, ResultIsEqualToDegreesFromNorth)
{
EXPECT_NEAR(0, Vector(Point(0,0), Point(0,1), false).GetAngle(), 0.0001);
EXPECT_NEAR(45, Vector(Point(0,0), Point(1,1), false).GetAngle(), 0.0001);
EXPECT_NEAR(90, Vector(Point(0,0), Point(1,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(135, Vector(Point(0,0), Point(1,-1), false).GetAngle(), 0.0001);
EXPECT_NEAR(180, Vector(Point(0,0), Point(0,-1), false).GetAngle(), 0.0001);
EXPECT_NEAR(225, Vector(Point(0,0), Point(-1,-1), false).GetAngle(), 0.0001);
EXPECT_NEAR(270, Vector(Point(0,0), Point(-1,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(315, Vector(Point(0,0), Point(-1,1), false).GetAngle(), 0.0001);
EXPECT_NEAR(0, Vector(Point(0,-1), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(45, Vector(Point(-1,-1), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(90, Vector(Point(-1,0), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(135, Vector(Point(-1,1), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(180, Vector(Point(0,1), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(225, Vector(Point(1,1), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(270, Vector(Point(1,0), Point(0,0), false).GetAngle(), 0.0001);
EXPECT_NEAR(315, Vector(Point(1,-1), Point(0,0), false).GetAngle(), 0.0001);
}