Skip to content

comparison

BaseMetric

Bases: ABC

references = np.squeeze(np.atleast_1d(reference_values)) instance-attribute

computed = np.squeeze(np.atleast_1d(computed_values)) instance-attribute

check = False instance-attribute

__init__(reference_values, computed_values)

report(file_path=None) abstractmethod

one_line_report() abstractmethod

LegacyMetric

Bases: BaseMetric

Legacy (AI2) metric used for original FV3 port.

This metric attempts to smooth error comparison around 0. It further tries to deal with close-to-0 breakdown of absolute error by allowing near_zero threshold to be specified by hand.

eps = eps instance-attribute

success = self._compute_errors(ignore_near_zero_errors, near_zero) instance-attribute

check = np.all(self.success) instance-attribute

__init__(reference_values, computed_values, eps, ignore_near_zero_errors, near_zero)

one_line_report()

report(file_path=None)

MultiModalFloatMetric

Bases: BaseMetric

Combination of absolute, relative & ULP comparison for floats

This metric attempts to combine well known comparison on floats to leverage a robust 32/64 bit float comparison on large accumulating floating errors.

ULP is used to clear noise (ULP<=1.0 passes) Absolute errors for large amplitude

relative_fraction = _Metric(1e-06) class-attribute instance-attribute

ulp_threshold = _Metric(1.0) class-attribute instance-attribute

absolute_distance = np.empty_like(self.references) instance-attribute

absolute_distance_metric = np.empty_like(self.references, dtype=(np.bool_)) instance-attribute

relative_distance = np.empty_like(self.references) instance-attribute

relative_distance_metric = np.empty_like(self.references, dtype=(np.bool_)) instance-attribute

ulp_distance = np.empty_like(self.references) instance-attribute

ulp_distance_metric = np.empty_like(self.references, dtype=(np.bool_)) instance-attribute

absolute_eps = _Metric(self._f32_absolute_eps.value) instance-attribute

success = self._compute_all_metrics() instance-attribute

check = np.all(self.success) instance-attribute

sort_report = sort_report instance-attribute

number_changing_values = (input_values != reference_values).sum() instance-attribute

changing_column_map = (input_values != reference_values).any(axis=2) instance-attribute

__init__(input_values, reference_values, computed_values, absolute_eps_override=-1, relative_fraction_override=-1, ulp_override=-1, sort_report='ulp')

one_line_report()

report(file_path=None)