diff --git a/bin/testing/runtest.py b/bin/testing/runtest.py
index 7d32a0e53f29cba2fd9fa99cdfbfe7a4e48f23ec..9ee9b3acb54147172950120850fbaf324ba4a50e 100755
--- a/bin/testing/runtest.py
+++ b/bin/testing/runtest.py
@@ -14,12 +14,11 @@ import json
 
 
 try:
-    import numpy as np
     import fieldcompare.mesh as meshcompare
     import fieldcompare.tabular as tabularcompare
     from fieldcompare import FieldDataComparator, protocols, DefaultFieldComparisonCallback
     from fieldcompare.mesh import MeshFieldsComparator
-    from fieldcompare.predicates import FuzzyEquality
+    from fieldcompare.predicates import DefaultEquality, ScaledTolerance
     from fieldcompare.io import CSVFieldReader, read
 
     protocols.MeshFields = meshcompare.MeshFields
@@ -33,15 +32,13 @@ try:
     ):
         """Create a predicate selector for fieldcompare emulates the Dumux behaviour"""
 
-        def _selector(
-            sourceField: protocols.Field, referenceField: protocols.Field
-        ) -> protocols.Predicate:
+        def _selector(sourceField: protocols.Field, _: protocols.Field) -> protocols.Predicate:
             sourceFieldName = sourceFieldNameTransform(sourceField.name)
-            magnitude = np.max(np.abs(referenceField.values))
-            _absThreshold = max(
-                float(zeroValueThreshold.get(sourceFieldName, 0.0)), magnitude * absThreshold
+            absTol = zeroValueThreshold.get(
+                sourceFieldName,
+                ScaledTolerance(base_tolerance=absThreshold),
             )
-            return FuzzyEquality(abs_tol=_absThreshold, rel_tol=relThreshold)
+            return DefaultEquality(abs_tol=absTol, rel_tol=relThreshold)
 
         return _selector
 
@@ -67,8 +64,8 @@ try:
             raise IOError("Reference file could not been identified as mesh file!")
 
         # hard-code some values for the mesh comparisons (as for Dumux legacy backend)
-        sourceFields.domain.set_tolerances(abs_tol=1e-2, rel_tol=1.5e-7)
-        referenceFields.domain.set_tolerances(abs_tol=1e-2, rel_tol=1.5e-7)
+        sourceFields.domain.set_tolerances(abs_tol=ScaledTolerance(1e-6), rel_tol=1.5e-7)
+        referenceFields.domain.set_tolerances(abs_tol=ScaledTolerance(1e-6), rel_tol=1.5e-7)
 
         compare = MeshFieldsComparator(source=sourceFields, reference=referenceFields)
         result = compare(