def test_distances(self): # (1) test pythagorean triple vertex_a = Vertex('a') vertex_b = Vertex('b', 3, 4) subject = vertex_a.euclidean_distance(vertex_b) self.assertEqual(subject, 5) subject = vertex_b.euclidean_distance(vertex_a) self.assertEqual(subject, 5) subject = vertex_a.taxicab_distance(vertex_b) self.assertEqual(subject, 7) subject = vertex_b.taxicab_distance(vertex_a) self.assertEqual(subject, 7) # (2) test linear difference vertex_a = Vertex('a') vertex_b = Vertex('b', 0, 10) subject = vertex_a.euclidean_distance(vertex_b) self.assertEqual(subject, 10) subject = vertex_b.euclidean_distance(vertex_a) self.assertEqual(subject, 10) subject = vertex_a.taxicab_distance(vertex_b) self.assertEqual(subject, 10) subject = vertex_b.taxicab_distance(vertex_a) self.assertEqual(subject, 10) # (3) test zero distance vertex_a = Vertex('a') vertex_b = Vertex('b') subject = vertex_a.euclidean_distance(vertex_b) self.assertEqual(subject, 0) subject = vertex_b.euclidean_distance(vertex_a) self.assertEqual(subject, 0) subject = vertex_a.taxicab_distance(vertex_b) self.assertEqual(subject, 0) subject = vertex_b.taxicab_distance(vertex_a) self.assertEqual(subject, 0) # (4) test floating point distance vertex_a = Vertex('a') vertex_b = Vertex('b', -5, 5) subject = vertex_a.euclidean_distance(vertex_b) self.assertAlmostEqual(subject, 5 * math.sqrt(2)) subject = vertex_b.euclidean_distance(vertex_a) self.assertAlmostEqual(subject, 5 * math.sqrt(2)) subject = vertex_a.taxicab_distance(vertex_b) self.assertEqual(subject, 10) subject = vertex_b.taxicab_distance(vertex_a) self.assertEqual(subject, 10)
def test_01_vertex_methods(self): ### degree ### vertex = Vertex('a') vertex.adj['b'] = 1 assert vertex.degree() == 1 vertex.adj['c'] = 3 assert vertex.degree() == 2 ### visit/reset ### assert not vertex.visited vertex.visit() assert vertex.visited vertex.reset() assert not vertex.visited ### get_edges ### vertex = Vertex('a') solution = [('b', 1), ('c', 2)] vertex.adj['b'] = 1 vertex.adj['c'] = 2 subject = vertex.get_edges() assert subject == solution ### euclidean_distance ### vertex_a = Vertex('a') vertex_b = Vertex('b', 3, 4) subject = vertex_a.euclidean_distance(vertex_b) assert subject == 5 subject = vertex_b.euclidean_distance(vertex_a) assert subject == 5