def test_hamming_distance_error_if_ranges_differ(self): sp1 = BooleanTimeSeries([0, 1, 2, 3], [True], 10) sp2 = BooleanTimeSeries([0, 1, 2, 3, 4], [True], 4) with self.assertRaises(ValueError): sp1.hamming_distance(sp2)
def test_hamming_distance_differ_at_endpoint(self): sp1 = BooleanTimeSeries([0, 1, 2, 3], [True], 4) sp2 = BooleanTimeSeries([0, 1, 2, 3, 4], [True], 4) self.assertEqual(0, sp1.hamming_distance(sp2)) self.assertEqual(0, sp2.hamming_distance(sp1))
def test_hamming_distance(self): sp1 = BooleanTimeSeries([0, 1, 2, 3], [True, False, True, False], 4) sp2 = BooleanTimeSeries([0, 1.5, 2, 3.5], [True, False, True, False], 4) self.assertEqual(1, sp1.hamming_distance(sp2)) self.assertEqual(1, sp2.hamming_distance(sp1))
def test_hamming_distance_total_mismatch(self): sp1 = BooleanTimeSeries([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [True], 11) sp2 = BooleanTimeSeries([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [False], 11) self.assertEqual(11, sp1.hamming_distance(sp2)) self.assertEqual(11, sp2.hamming_distance(sp1))
def test_hamming_distance_to_self_is_zero(self): sp = BooleanTimeSeries([0, 1, 2, 3], [True, False, True, False], 4) self.assertEqual(0, sp.hamming_distance(sp))