43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# doctests.py
|
|
# -----------
|
|
# Licensing Information: You are free to use or extend these projects for
|
|
# educational purposes provided that (1) you do not distribute or publish
|
|
# solutions, (2) you retain this notice, and (3) you provide clear
|
|
# attribution to UC Berkeley, including a link to http://ai.berkeley.edu.
|
|
#
|
|
# Attribution Information: The Pacman AI projects were developed at UC Berkeley.
|
|
# The core projects and autograders were primarily created by John DeNero
|
|
# (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu).
|
|
# Student side autograding was added by Brad Miller, Nick Hay, and
|
|
# Pieter Abbeel (pabbeel@cs.berkeley.edu).
|
|
|
|
|
|
"""Run all doctests from modules on the command line. Use -v for verbose.
|
|
|
|
Example usages:
|
|
|
|
python doctests.py *.py
|
|
python doctests.py -v *.py
|
|
|
|
You can add more module-level tests with
|
|
__doc__ += "..."
|
|
You can add stochastic tests with
|
|
__doc__ += random_tests("...")
|
|
"""
|
|
|
|
if __name__ == "__main__":
|
|
import sys, glob, doctest
|
|
args = [arg for arg in sys.argv[1:] if arg != '-v']
|
|
if not args: args = ['*.py']
|
|
modules = [__import__(name.replace('.py',''))
|
|
for arg in args for name in glob.glob(arg)]
|
|
|
|
print("Testing %d modules..." % len(modules))
|
|
for module in modules:
|
|
doctest.testmod(module, report=1, optionflags=doctest.REPORT_UDIFF)
|
|
summary = doctest.master.summarize() if modules else (0, 0)
|
|
|
|
print()
|
|
print()
|
|
print('%d failed out of %d tests' % summary)
|