@ -45,47 +45,47 @@ TEST(Missiles, GetDirection8)
TEST ( Missiles , GetDirection16 )
TEST ( Missiles , GetDirection16 )
{
{
EXPECT_EQ ( Direction16 : : DIR16_ S, GetDirection16 ( { 0 , 0 } , { 15 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : South , GetDirection16 ( { 0 , 0 } , { 15 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ SW, GetDirection16 ( { 0 , 0 } , { 0 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : South West , GetDirection16 ( { 0 , 0 } , { 0 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Sw , GetDirection16 ( { 0 , 0 } , { 8 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthWest , GetDirection16 ( { 0 , 0 } , { 8 , 15 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ S, GetDirection16 ( { 0 , 0 } , { 8 , 8 } ) ) ;
EXPECT_EQ ( Direction16 : : South , GetDirection16 ( { 0 , 0 } , { 8 , 8 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Se , GetDirection16 ( { 0 , 0 } , { 15 , 8 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthEast , GetDirection16 ( { 0 , 0 } , { 15 , 8 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Se , GetDirection16 ( { 0 , 0 } , { 15 , 7 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthEast , GetDirection16 ( { 0 , 0 } , { 15 , 7 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Se , GetDirection16 ( { 0 , 0 } , { 11 , 7 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthEast , GetDirection16 ( { 0 , 0 } , { 11 , 7 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ S, GetDirection16 ( { 0 , 0 } , { 8 , 11 } ) ) ;
EXPECT_EQ ( Direction16 : : South , GetDirection16 ( { 0 , 0 } , { 8 , 11 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ N, GetDirection16 ( { 15 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North , GetDirection16 ( { 15 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ NE, GetDirection16 ( { 0 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North East , GetDirection16 ( { 0 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Ne , GetDirection16 ( { 8 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthEast , GetDirection16 ( { 8 , 15 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ N, GetDirection16 ( { 8 , 8 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North , GetDirection16 ( { 8 , 8 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Nw , GetDirection16 ( { 15 , 8 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthWest , GetDirection16 ( { 15 , 8 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Nw , GetDirection16 ( { 15 , 7 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthWest , GetDirection16 ( { 15 , 7 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Nw , GetDirection16 ( { 11 , 7 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthWest , GetDirection16 ( { 11 , 7 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ N, GetDirection16 ( { 8 , 11 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North , GetDirection16 ( { 8 , 11 } , { 0 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ E, GetDirection16 ( { 0 , 15 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East , GetDirection16 ( { 0 , 15 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ SE, GetDirection16 ( { 0 , 0 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : South East , GetDirection16 ( { 0 , 0 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_sE , GetDirection16 ( { 0 , 8 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East_SouthEast , GetDirection16 ( { 0 , 8 } , { 15 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ E, GetDirection16 ( { 0 , 8 } , { 8 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East , GetDirection16 ( { 0 , 8 } , { 8 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_nE , GetDirection16 ( { 0 , 15 } , { 8 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East_NorthEast , GetDirection16 ( { 0 , 15 } , { 8 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_nE , GetDirection16 ( { 0 , 15 } , { 7 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East_NorthEast , GetDirection16 ( { 0 , 15 } , { 7 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_nE , GetDirection16 ( { 0 , 11 } , { 7 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East_NorthEast , GetDirection16 ( { 0 , 11 } , { 7 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ E, GetDirection16 ( { 0 , 8 } , { 11 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East , GetDirection16 ( { 0 , 8 } , { 11 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ S, GetDirection16 ( { 2 , 2 } , { 3 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : South , GetDirection16 ( { 2 , 2 } , { 3 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Sw , GetDirection16 ( { 2 , 2 } , { 3 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthWest , GetDirection16 ( { 2 , 2 } , { 3 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ SW, GetDirection16 ( { 2 , 2 } , { 2 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : South West , GetDirection16 ( { 2 , 2 } , { 2 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_sW , GetDirection16 ( { 2 , 2 } , { 1 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : West_SouthWest , GetDirection16 ( { 2 , 2 } , { 1 , 4 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ W, GetDirection16 ( { 2 , 2 } , { 1 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : West , GetDirection16 ( { 2 , 2 } , { 1 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_nW , GetDirection16 ( { 2 , 2 } , { 0 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : West_NorthWest , GetDirection16 ( { 2 , 2 } , { 0 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ NW, GetDirection16 ( { 2 , 2 } , { 0 , 2 } ) ) ;
EXPECT_EQ ( Direction16 : : North West , GetDirection16 ( { 2 , 2 } , { 0 , 2 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Nw , GetDirection16 ( { 2 , 2 } , { 0 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthWest , GetDirection16 ( { 2 , 2 } , { 0 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ N, GetDirection16 ( { 2 , 2 } , { 1 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : North , GetDirection16 ( { 2 , 2 } , { 1 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Ne , GetDirection16 ( { 2 , 2 } , { 1 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North_NorthEast , GetDirection16 ( { 2 , 2 } , { 1 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ NE, GetDirection16 ( { 2 , 2 } , { 2 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : North East , GetDirection16 ( { 2 , 2 } , { 2 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_nE , GetDirection16 ( { 2 , 2 } , { 3 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : East_NorthEast , GetDirection16 ( { 2 , 2 } , { 3 , 0 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ E, GetDirection16 ( { 2 , 2 } , { 3 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : East , GetDirection16 ( { 2 , 2 } , { 3 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_sE , GetDirection16 ( { 2 , 2 } , { 4 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : East_SouthEast , GetDirection16 ( { 2 , 2 } , { 4 , 1 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_ SE, GetDirection16 ( { 2 , 2 } , { 4 , 2 } ) ) ;
EXPECT_EQ ( Direction16 : : South East , GetDirection16 ( { 2 , 2 } , { 4 , 2 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Se , GetDirection16 ( { 2 , 2 } , { 4 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : South_SouthEast , GetDirection16 ( { 2 , 2 } , { 4 , 3 } ) ) ;
EXPECT_EQ ( Direction16 : : DIR16_Sw , GetDirection16 ( { 0 , 0 } , { 0 , 0 } ) ) < < " GetDirection16 is expected to default to DIR16_Sw when the points occupy the same tile " ;
EXPECT_EQ ( Direction16 : : South_SouthWest , GetDirection16 ( { 0 , 0 } , { 0 , 0 } ) ) < < " GetDirection16 is expected to default to Direction16::South_SouthWest when the points occupy the same tile " ;
}
}