diff --git a/pyglance/glance/compare.py b/pyglance/glance/compare.py index cb8d240f02153a02ea66b198d919857190e2cb33..2e21b3925b1bfa326b3dc79f687c0190fd6e6b8c 100644 --- a/pyglance/glance/compare.py +++ b/pyglance/glance/compare.py @@ -550,7 +550,7 @@ def _check_pass_or_fail(varRunInfo, variableStats, defaultValues) : # check to see if it failed on nonfinite data if not (nonfiniteTolerance is None) : non_finite_pts = variableStats['Finite Data Statistics']['finite_in_only_one_count'] - non_finite_pts = non_finite_pts + variableStats['Missing Value Statistics']['common_missing_count'] + non_finite_pts = non_finite_pts + variableStats['Missing Value Statistics']['common_missing_count'] # TODO, should this line be removed? non_finite_pts = non_finite_pts + variableStats['NaN Statistics']['common_nan_count'] non_finite_fraction = float(non_finite_pts) / float(variableStats['General Statistics']['num_data_points']) passedNonFinite = non_finite_fraction <= nonfiniteTolerance diff --git a/pyglance/glance/delta.py b/pyglance/glance/delta.py index 5139873aae1f1fe8b6e12c9530d8001e4f0afb98..0debd97e4821cf5153d7921aa4d8abf29dfdb4a4 100644 --- a/pyglance/glance/delta.py +++ b/pyglance/glance/delta.py @@ -275,10 +275,17 @@ def _get_numerical_data_stats(a, b, diff_data, data_is_finite_mask, outside_epsi # we actually want the total number of _finite_ values rather than all the data total_num_finite_values = sum(data_is_finite_mask) + # no dividing by 0! + fraction_too_different = 1.0 + fraction_perfect = 0.0 + if total_num_finite_values > 0 : + fraction_too_different = num_finite_values_too_different / float(total_num_finite_values) + fraction_perfect = num_perfect / float(total_num_finite_values) + comparison = { 'diff_outside_epsilon_count': num_finite_values_too_different, - 'diff_outside_epsilon_fraction': num_finite_values_too_different / float(total_num_finite_values), + 'diff_outside_epsilon_fraction': fraction_too_different, 'perfect_match_count': num_perfect, - 'perfect_match_fraction': num_perfect / float(total_num_finite_values), + 'perfect_match_fraction': fraction_perfect, 'correlation': r_corr } comparison.update(additional_statistics)