f2py_testing.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from __future__ import division, absolute_import, print_function
  2. import sys
  3. import re
  4. from numpy.testing import jiffies, memusage
  5. def cmdline():
  6. m = re.compile(r'\A\d+\Z')
  7. args = []
  8. repeat = 1
  9. for a in sys.argv[1:]:
  10. if m.match(a):
  11. repeat = eval(a)
  12. else:
  13. args.append(a)
  14. f2py_opts = ' '.join(args)
  15. return repeat, f2py_opts
  16. def run(runtest, test_functions, repeat=1):
  17. l = [(t, repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
  18. start_memusage = memusage()
  19. diff_memusage = None
  20. start_jiffies = jiffies()
  21. i = 0
  22. while i < repeat:
  23. i += 1
  24. for t, fname in l:
  25. runtest(t)
  26. if start_memusage is None:
  27. continue
  28. if diff_memusage is None:
  29. diff_memusage = memusage() - start_memusage
  30. else:
  31. diff_memusage2 = memusage() - start_memusage
  32. if diff_memusage2 != diff_memusage:
  33. print('memory usage change at step %i:' % i,
  34. diff_memusage2 - diff_memusage,
  35. fname)
  36. diff_memusage = diff_memusage2
  37. current_memusage = memusage()
  38. print('run', repeat * len(test_functions), 'tests',
  39. 'in %.2f seconds' % ((jiffies() - start_jiffies) / 100.0))
  40. if start_memusage:
  41. print('initial virtual memory size:', start_memusage, 'bytes')
  42. print('current virtual memory size:', current_memusage, 'bytes')