Skip to content

Commit a805dd9

Browse files
Carole SudreCarole Sudre
authored andcommitted
Setting default to nan in case of one ref or prediction empty for distance metrics
1 parent f930669 commit a805dd9

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

MetricsReloaded/metrics/pairwise_measures.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,6 +1200,7 @@ def measured_distance(self):
12001200
and masd
12011201
12021202
"""
1203+
12031204
if "hd_perc" in self.dict_args.keys():
12041205
perc = self.dict_args["hd_perc"]
12051206
else:
@@ -1209,7 +1210,7 @@ def measured_distance(self):
12091210
warnings.warn("Prediction and reference empty - distances set to 0")
12101211
return 0, 0, 0, 0
12111212
if np.sum(self.pred) == 0 and np.sum(self.ref)>0:
1212-
warnings.warn("Prediction empty but reference not empty - need to set to worse case")
1213+
warnings.warn("Prediction empty but reference not empty - need to set to worse case in aggregation")
12131214
return np.nan, np.nan, np.nan, np.nan
12141215
if np.sum(self.ref) == 0 and np.sum(self.pred)>0:
12151216
warnings.warn('Prediction not empty but reference empty - non existing output - need be set to WORSE case in aggregation')
@@ -1220,7 +1221,7 @@ def measured_distance(self):
12201221
ref_border,
12211222
pred_border,
12221223
) = self.border_distance()
1223-
print(ref_border_dist)
1224+
# print(ref_border_dist)
12241225
average_distance = (np.sum(ref_border_dist) + np.sum(pred_border_dist)) / (
12251226
np.sum(pred_border + ref_border)
12261227
)

test/test_metrics/test_pairwise_measures.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,30 @@ def test_hausdorff_distance_5c():
834834
hausdorff_distance_perc, expected_hausdorff_distance_perc, atol=0.01
835835
)
836836

837+
def test_distance_empty_ref():
838+
ppm1 = PM(pred29_1, ref29_1*0)
839+
hd, hd_perc, masd, assd = ppm1.measured_distance()
840+
assert np.isnan(hd)
841+
assert np.isnan(hd_perc)
842+
assert np.isnan(masd)
843+
assert np.isnan(assd)
844+
845+
def test_distance_empty_pred():
846+
ppm1 = PM(pred29_1*0, ref29_1)
847+
hd, hd_perc, masd, assd = ppm1.measured_distance()
848+
assert np.isnan(hd)
849+
assert np.isnan(hd_perc)
850+
assert np.isnan(masd)
851+
assert np.isnan(assd)
852+
853+
854+
def test_distance_empty_pred_and_ref():
855+
ppm1 = PM(pred29_1*0, ref29_1*0)
856+
hd, hd_perc, masd, assd = ppm1.measured_distance()
857+
assert hd == 0
858+
assert hd_perc == 0
859+
assert masd == 0
860+
assert assd == 0
837861

838862
def test_boundary_iou():
839863
"""

0 commit comments

Comments
 (0)