From dd9d5b980c1e854479a706d715084f322d9eeb0f Mon Sep 17 00:00:00 2001
From: Thomas Fetzer <thomas.fetzer@iws.uni-stuttgart.de>
Date: Fri, 20 Mar 2015 15:57:08 +0000
Subject: [PATCH] [fuzzycompare]

changed fuzzycompare script, so that now that _maximum_ difference in
_every_ field is printed

reviewed by gruenich



git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@14415 2fb0f335-1f38-0410-981e-8018bf24f1b0
---
 bin/fuzzycomparevtu.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/bin/fuzzycomparevtu.py b/bin/fuzzycomparevtu.py
index a23865bb66..5375f7082b 100644
--- a/bin/fuzzycomparevtu.py
+++ b/bin/fuzzycomparevtu.py
@@ -24,7 +24,7 @@ def isFuzzyEqualNode(node1, node2, absolute, relative):
             return False
         if node1child.nodeType == node1child.TEXT_NODE and not isFuzzyEqualText(node1child.data, node2child.data, absolute, relative):
             print 'Data differs in parameter ', node2.attributes.items(), ' at node ', node2child.nodeType
-            return False
+            continue
         if node1child.nodeType == node1child.ELEMENT_NODE and not isFuzzyEqualNode(node1child, node2child, absolute, relative):
             return False
     return True
@@ -37,13 +37,19 @@ def isFuzzyEqualText(text1, text2, absolute, relative):
     if (list1 == list2):
         return True
     # compare number by number
+    maximum1 = 0.0
+    maximum2 = 0.0
     for number1, number2 in zip(list1, list2):
         number1 = float(number1)
         number2 = float(number2)
         if (abs(number1 - number2) > absolute 
             and (number2 == 0.0 or abs(abs(number1 / number2) - 1.0) > relative)):
-            print 'Difference is too large between', number1, ' and ', number2
-            return False
+            if (abs(number1 - number2) > abs(maximum1 - maximum2)):
+                maximum1 = float(number1)
+                maximum2 = float(number2)
+    if (abs(maximum1 - maximum2) > 0.0):
+        print 'Difference is too large between', maximum1, ' and ', maximum2
+        return False
     return True
 
 # main program
-- 
GitLab