Loading imgutils/detect/similarity.py +1 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ def detection_similarity(detect1: List[BBoxWithScoreAndLabel], detect2: List[BBo if mode == 'max': return float(sims.max()) elif mode == 'mean': return float(sims.mean()) return float(sims.mean()) if sims.shape[0] > 0 else 1.0 elif mode == 'raw': return sims.tolist() else: Loading test/detect/test_similarity.py +12 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,12 @@ class TestBBoxFunctions: with pytest.raises(ValueError, match="Unknown similarity mode for bboxes - 'invalid'"): bboxes_similarity(sample_bboxes, sample_bboxes, mode='invalid') def test_bboxes_similarity_empty(self, sample_bboxes): assert bboxes_similarity([], [], mode='raw') == [] assert bboxes_similarity([], [], mode='mean') == 1.0 assert bboxes_similarity([], sample_bboxes, mode='raw') == pytest.approx([0.0, 0.0, 0.0]) assert bboxes_similarity([], sample_bboxes, mode='mean') == pytest.approx(0.0) def test_bboxes_similarity_unequal_length(self, sample_bboxes): assert bboxes_similarity(sample_bboxes, sample_bboxes[:-1]) == pytest.approx(2 / 3) Loading Loading @@ -84,6 +90,12 @@ class TestBBoxFunctions: assert isinstance(result, list) assert result == pytest.approx([1.0, 1.0, 1.0]) def test_detection_similarity_empty(self, sample_detections): assert detection_similarity([], [], mode='raw') == [] assert detection_similarity([], [], mode='mean') == 1.0 assert detection_similarity([], sample_detections, mode='raw') == pytest.approx([0.0, 0.0, 0.0]) assert detection_similarity([], sample_detections, mode='mean') == pytest.approx(0.0) def test_detection_similarity_invalid_mode(self, sample_detections): with pytest.raises(ValueError, match="Unknown similarity mode for bboxes - 'invalid'"): detection_similarity(sample_detections, sample_detections, mode='invalid') Loading Loading
imgutils/detect/similarity.py +1 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ def detection_similarity(detect1: List[BBoxWithScoreAndLabel], detect2: List[BBo if mode == 'max': return float(sims.max()) elif mode == 'mean': return float(sims.mean()) return float(sims.mean()) if sims.shape[0] > 0 else 1.0 elif mode == 'raw': return sims.tolist() else: Loading
test/detect/test_similarity.py +12 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,12 @@ class TestBBoxFunctions: with pytest.raises(ValueError, match="Unknown similarity mode for bboxes - 'invalid'"): bboxes_similarity(sample_bboxes, sample_bboxes, mode='invalid') def test_bboxes_similarity_empty(self, sample_bboxes): assert bboxes_similarity([], [], mode='raw') == [] assert bboxes_similarity([], [], mode='mean') == 1.0 assert bboxes_similarity([], sample_bboxes, mode='raw') == pytest.approx([0.0, 0.0, 0.0]) assert bboxes_similarity([], sample_bboxes, mode='mean') == pytest.approx(0.0) def test_bboxes_similarity_unequal_length(self, sample_bboxes): assert bboxes_similarity(sample_bboxes, sample_bboxes[:-1]) == pytest.approx(2 / 3) Loading Loading @@ -84,6 +90,12 @@ class TestBBoxFunctions: assert isinstance(result, list) assert result == pytest.approx([1.0, 1.0, 1.0]) def test_detection_similarity_empty(self, sample_detections): assert detection_similarity([], [], mode='raw') == [] assert detection_similarity([], [], mode='mean') == 1.0 assert detection_similarity([], sample_detections, mode='raw') == pytest.approx([0.0, 0.0, 0.0]) assert detection_similarity([], sample_detections, mode='mean') == pytest.approx(0.0) def test_detection_similarity_invalid_mode(self, sample_detections): with pytest.raises(ValueError, match="Unknown similarity mode for bboxes - 'invalid'"): detection_similarity(sample_detections, sample_detections, mode='invalid') Loading