def test_get_elevation_same_y(self): """ Test that when getting the elevation of two points with the same y-coordinate, an angle of 0 degrees is returned. """ viz = drawable.Drawable(plt.figure(figsize=(10, 5))) graph = Graph(viz) self.assertEqual(0, graph._get_elevation((0, 1), (1, 1))) self.assertEqual(0, graph._get_elevation((0, 1), (-1, 1)))
def test_get_elevation_same(self): """ Test that when getting the elevation of two identical points, an angle of 0 is returned. """ viz = drawable.Drawable(plt.figure(figsize=(10, 5))) graph = Graph(viz) self.assertEqual(0, graph._get_elevation((0, 0), (0, 0))) self.assertEqual(0, graph._get_elevation((1, 1), (1, 1)))
def test_get_elevation_aspect(self): """ Test that when getting the elevation of two points, the aspect ratio is taken into consideration. """ viz = drawable.Drawable(plt.figure(figsize=(10, 7.5))) graph = Graph(viz) self.assertEqual(0, graph._get_elevation((0, 0), (1, 0))) self.assertEqual(round(math.atan(0.75 / 1), 2), round(graph._get_elevation((0, 0), (1, 1)), 2)) self.assertEqual(math.pi / 2., graph._get_elevation((0, 0), (0, 1))) self.assertEqual(round(-math.atan(0.75 / 1), 2), round(graph._get_elevation((0, 0), (-1, 1)), 2)) self.assertEqual(0, graph._get_elevation((0, 0), (-1, 0))) self.assertEqual(round(math.atan(0.75 / 1), 2), round(graph._get_elevation((0, 0), (-1, -1)), 2)) self.assertEqual(math.pi / 2., graph._get_elevation((0, 0), (0, -1))) self.assertEqual(round(-math.atan(0.75 / 1), 2), round(graph._get_elevation((0, 0), (1, -1)), 2))
def test_get_elevation_bounds(self): """ Test that when getting the elevation of two points, the angle is always bound between -90 and 90 degrees. """ viz = drawable.Drawable(plt.figure(figsize=(10, 10.0675))) graph = Graph(viz) self.assertEqual(0, graph._get_elevation((0, 0), (1, 0))) self.assertEqual(round(math.pi / 4., 2), round(graph._get_elevation((0, 0), (1, 1)), 2)) self.assertEqual(math.pi / 2., graph._get_elevation((0, 0), (0, 1))) self.assertEqual(round(-math.pi / 4., 2), round(graph._get_elevation((0, 0), (-1, 1)), 2)) self.assertEqual(0, graph._get_elevation((0, 0), (-1, 0))) self.assertEqual(round(math.pi / 4., 2), round(graph._get_elevation((0, 0), (-1, -1)), 2)) self.assertEqual(math.pi / 2., graph._get_elevation((0, 0), (0, -1))) self.assertEqual(round(-math.pi / 4., 2), round(graph._get_elevation((0, 0), (1, -1)), 2))
def test_get_elevation_symmetric(self): """ Test that when getting the elevation of two points, the order does not matter. """ viz = drawable.Drawable(plt.figure(figsize=(10, 10.0675))) graph = Graph(viz) self.assertEqual(graph._get_elevation((1, 0), (0, 0)), graph._get_elevation((0, 0), (1, 0))) self.assertEqual(graph._get_elevation((1, 1), (0, 0)), graph._get_elevation((0, 0), (1, 1))) self.assertEqual(graph._get_elevation((0, 1), (0, 0)), graph._get_elevation((0, 0), (0, 1))) self.assertEqual(graph._get_elevation((-1, 1), (0, 0)), graph._get_elevation((0, 0), (-1, 1))) self.assertEqual(graph._get_elevation((-1, 0), (0, 0)), graph._get_elevation((0, 0), (-1, 0))) self.assertEqual(graph._get_elevation((-1, -1), (0, 0)), graph._get_elevation((0, 0), (-1, -1))) self.assertEqual(graph._get_elevation((0, -1), (0, 0)), graph._get_elevation((0, 0), (0, -1))) self.assertEqual(graph._get_elevation((1, -1), (0, 0)), graph._get_elevation((0, 0), (1, -1)))