From aa137a44054010c426bf9800a6044a212a1be9af Mon Sep 17 00:00:00 2001
From: Daniel Brown <ddb@star.sr.bham.ac.uk>
Date: Thu, 22 Aug 2013 14:26:59 +0100
Subject: [PATCH] any 0 points now show the abs err as rel err is undefined

---
 pykat/testing/test.py              |  9 +++++----
 pykat/testing/web/web_interface.py | 11 +++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/pykat/testing/test.py b/pykat/testing/test.py
index e534750..f55a7e7 100644
--- a/pykat/testing/test.py
+++ b/pykat/testing/test.py
@@ -331,10 +331,11 @@ class FinesseTestProcess(Thread):
 
                 # for computing relative errors we need to make sure we
                 # have no zeros in the data
-                ref_arr_c = np.where(ref_arr == 0, 1, ref_arr)
-                ref_arr_c[ref_arr_c==0] = 1
-
-                rel_diff = np.abs(out_arr-ref_arr)/np.abs(ref_arr_c)
+                nzix = (ref_arr != 0)
+                
+                rel_diff = np.abs(out_arr-ref_arr)
+                # only compute rel diff for non zero values
+                rel_diff[nzix] = np.divide(rel_diff[nzix], np.abs(ref_arr[nzix]))
                 
                 diff = np.any(rel_diff >= self.diff_rel_eps)
                                 
diff --git a/pykat/testing/web/web_interface.py b/pykat/testing/web/web_interface.py
index cf71f11..5edf2e4 100644
--- a/pykat/testing/web/web_interface.py
+++ b/pykat/testing/web/web_interface.py
@@ -17,7 +17,7 @@ from CodernityDB.database_thread_safe import ThreadSafeDatabase
 from CodernityDB.database import RecordNotFound
 import numpy as np
 from pykat.testing.web.database_indices import TestIDIndex, SrcCommitIndex, KatTestIndex
-import re
+import re, gzip
 import os, sys, traceback
 
 global current_test, scheduled_tests, schedule_lock,enabled_suites
@@ -637,13 +637,12 @@ def finesse_view_out(test_id,suite, out):
     OUT_FILE = os.path.join(app.instance_path,"tests",str(test_id),"outputs",suite,out+".gz")
     
     if os.path.exists(OUT_FILE):
-        contents = open(OUT_FILE).read()
+        contents = gzip.open(OUT_FILE, 'rb').read()
     else:
         contents = "out file not found"
         
     response = make_response(contents)
     response.headers["Content-type"] = "text/plain"
-    response.headers["Content-encoding"] = "gzip"
         
     return response
     
@@ -668,13 +667,13 @@ def finesse_view_log(test_id,suite, kat):
     OUT_FILE = os.path.join(app.instance_path,"tests",str(test_id),"outputs",suite,log + ".gz")
     
     if os.path.exists(OUT_FILE):
-        contents = open(OUT_FILE).read()
+        file = gzip.open(OUT_FILE, 'rb')
+        contents = file.read()
     else:
-        contents = "log file not found"
+        contents = "log file not found"        
         
     response = make_response(contents)
     response.headers["Content-type"] = "text/plain"
-    response.headers["Content-encoding"] = "gzip"
         
     return response
     
-- 
GitLab