pytestutils.py (1833B)
1 #!/usr/bin/env python 2 3 from sphere import * 4 from highlighttext import highlight 5 import subprocess 6 import sys 7 8 def passed(): 9 return "\t" + highlight("Passed", "green") 10 11 def failed(): 12 return "\t" + highlight("Failed", "red", True) 13 14 def test(statement, string): 15 if (statement == True): 16 print(string + passed()) 17 else: 18 print(string + failed()) 19 raise Exception("Failed") 20 21 def compare(first, second, string): 22 returnvalue = (first == second) 23 if (returnvalue == True or returnvalue > 0): 24 print(string + passed()) 25 else: 26 print(string + failed() + ' (' + str(returnvalue) + ')') 27 raise Exception("Failed") 28 return(returnvalue) 29 30 def compareFloats(first, second, string, tolerance=1e-3): 31 #if abs(first-second) < tolerance: 32 if abs((first-second)/first) < tolerance: 33 print(string + passed()) 34 else : 35 print(string + failed()) 36 print("First: " + str(first)) 37 print("Second: " + str(second)) 38 print("Abs. difference: " + str(second-first)) 39 print("Rel. difference: " + str(abs((first-second)/first))) 40 raise Exception("Failed") 41 return(1) 42 43 def compareNumpyArrays(first, second, string): 44 if ((first == second).all()): 45 print(string + passed()) 46 else : 47 print(string + failed()) 48 raise Exception("Failed") 49 return(1) 50 51 def compareNumpyArraysClose(first, second, string, tolerance=1e-5): 52 if (numpy.allclose(first, second, atol=tolerance)): 53 print(string + passed()) 54 else : 55 print(string + failed()) 56 print(numpy.min(first)) 57 print(numpy.mean(first)) 58 print(numpy.max(first)) 59 print(numpy.min(second)) 60 print(numpy.mean(second)) 61 print(numpy.max(second)) 62 raise Exception("Failed") 63 return(1)