sphere

GPU-based 3D discrete element method algorithm with optional fluid coupling
git clone git://src.adamsgaard.dk/sphere # fast
git clone https://src.adamsgaard.dk/sphere.git # slow
Log | Files | Refs | README | LICENSE Back to index

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)