diff --git a/picard/metadata.py b/picard/metadata.py index 773b7f8ae..f06a812ca 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -206,6 +206,8 @@ class Metadata(MutableMapping): @staticmethod def length_score(a, b): + if a is None or b is None: + return 0.0 return (1.0 - min(abs(a - b), LENGTH_SCORE_THRES_MS) / float(LENGTH_SCORE_THRES_MS)) diff --git a/test/test_metadata.py b/test/test_metadata.py index 0bcf49016..0a74d4bb6 100644 --- a/test/test_metadata.py +++ b/test/test_metadata.py @@ -311,7 +311,10 @@ class CommonTests: (20000, 20000, 1.0), (20000, 30000, 0.666666666667), (20000, 40000, 0.333333333333), - (20000, 50000, 0.0)] + (20000, 50000, 0.0), + (20000, None, 0.0), + (None, 2000, 0.0), + (None, None, 0.0)] for (a, b, expected) in results: actual = Metadata.length_score(a, b) self.assertAlmostEqual(expected, actual,