def test_list(self): # same length self.assertEqual(distance_metric(self.list_a, self.list_b), 4.4) # different length self.assertEqual(distance_metric(self.list_b, self.list_c), 1.0) # sanity check, same objects self.assertEqual(distance_metric(self.list_b, self.list_b), 0.0)
def test_array(self): # same length self.assertEqual( distance_metric(np.array(self.list_a), np.array(self.list_b)), 4.4) # different length self.assertEqual( distance_metric( np.array(self.list_b).reshape(1, 3), np.array(self.list_c)), 1.0, ) # sanity check, same objects self.assertEqual( distance_metric(np.array(self.list_b), np.array(self.list_b)), 0.0)
def test_hark_object_distance(self): self.obj_a.distance_criteria = ["var_1", "var_2", "var_3"] self.obj_b.distance_criteria = ["var_1", "var_2", "var_3"] self.obj_c.distance_criteria = ["var_5"] # if attributes don't exist or don't match self.assertEqual(distance_metric(self.obj_a, self.obj_b), 1000.0) self.assertEqual(distance_metric(self.obj_a, self.obj_c), 1000.0) # add single numbers to attributes self.obj_a.var_1, self.obj_a.var_2, self.obj_a.var_3 = 0.1, 1, 2.1 self.obj_b.var_1, self.obj_b.var_2, self.obj_b.var_3 = 1.8, -1, 0.1 self.assertEqual(distance_metric(self.obj_a, self.obj_b), 2.0) # sanity check - same objects self.assertEqual(distance_metric(self.obj_a, self.obj_a), 0.0)