def compare_equal_length_single_animations(self, rec_anim: Animation, lib_anim: Animation) -> ScoreSpaceElement: """ Compare 2 animations with equal length and return score Parameters ---------- rec_anim: Animation First animation to compare lib_anim: Animation Second animation to compare Returns ------- score: ScoreSpaceElement The comparison score (0 is equal), the higher the score - the bigger the difference """ score = rec_anim.diff_score(lib_anim, diff_type="abs", score_type="sum") return ScoreSpaceElement(score, anim=lib_anim)
def test_diff_score(self): a1 = Animation(np.array([[1, 2, 4], [1, 2, 3]])) a2 = Animation(np.array([[1, 2, 4], [1, 2, 3]])) a3 = Animation(np.array([[1, 2, 3], [1, 2, 3]])) a4 = Animation(np.array([[1.5, 2, 3], [1, 2, 3]])) self.assertEqual( a1.diff_score(a2, diff_type="square", score_type="sum"), 0) self.assertEqual( a1.diff_score(a3, diff_type="square", score_type="sum"), 1) self.assertEqual( a2.diff_score(a3, diff_type="square", score_type="sum"), 1) self.assertEqual( a3.diff_score(a2, diff_type="square", score_type="sum"), 1) self.assertEqual( a3.diff_score(a1, diff_type="square", score_type="sum"), 1) self.assertEqual( a1.diff_score(a4, diff_type="square", score_type="sum"), 1.25) self.assertEqual( a4.diff_score(a1, diff_type="square", score_type="sum"), 1.25) self.assertEqual(a1.diff_score(a4), 1.25) self.assertEqual(a4.diff_score(a1), 1.25) self.assertEqual(a4.diff_score(a1, diff_type="abs", score_type="sum"), 1.5) self.assertEqual(a1.diff_score(a4, diff_type="abs", score_type="sum"), 1.5) self.assertEqual(a1.diff_score(a4, diff_type="sub", score_type="sum"), 0.5) self.assertEqual(a4.diff_score(a1, diff_type="sub", score_type="sum"), -0.5) self.assertEqual(a1.diff_score(a4, diff_type="sub"), 0.5) self.assertEqual(a4.diff_score(a1, diff_type="sub"), -0.5) # Check the type errors with self.assertRaises(TypeError): a1.diff_score(1) with self.assertRaises(TypeError): a1.diff_score(a4, diff_type=1) with self.assertRaises(TypeError): a1.diff_score(a4, diff_type="sub", score_type=1)