欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

regrtest.py

mallet是自然语言处理、机器学习领域的一个开源项目。
PY
第 1 页 / 共 2 页
字号:
            # being imported.  For the benefit of tests that can't run            # that way (like test_threaded_import), explicitly invoke            # their test_main() function (if it exists).            indirect_test = getattr(the_module, "test_main", None)            if indirect_test is not None:                indirect_test()        finally:            sys.stdout = save_stdout    except (ImportError, test_support.TestSkipped), msg:        if not quiet:            print test, "skipped --", msg            sys.stdout.flush()        return -1    except KeyboardInterrupt:        raise    except test_support.TestFailed, msg:        print "test", test, "failed --", msg        sys.stdout.flush()        return 0    except:        type, value = sys.exc_info()[:2]        print "test", test, "crashed --", str(type) + ":", value        sys.stdout.flush()        if verbose:            traceback.print_exc(file=sys.stdout)            sys.stdout.flush()        return 0    else:        if not cfp:            return 1        output = cfp.getvalue()        if generate:            if output == test + "\n":                if os.path.exists(outputfile):                    # Write it since it already exists (and the contents                    # may have changed), but let the user know it isn't                    # needed:                    print "output file", outputfile, \                          "is no longer needed; consider removing it"                else:                    # We don't need it, so don't create it.                    return 1            fp = open(outputfile, "w")            fp.write(output)            fp.close()            return 1        if os.path.exists(outputfile):            fp = open(outputfile, "r")            expected = fp.read()            fp.close()        else:            expected = test + "\n"        if output == expected:            return 1        print "test", test, "produced unexpected output:"        sys.stdout.flush()        reportdiff(expected, output)        sys.stdout.flush()        return 0def reportdiff(expected, output):    import difflib    print "*" * 70    a = expected.splitlines(1)    b = output.splitlines(1)    sm = difflib.SequenceMatcher(a=a, b=b)    tuples = sm.get_opcodes()    def pair(x0, x1):        # x0:x1 are 0-based slice indices; convert to 1-based line indices.        x0 += 1        if x0 >= x1:            return "line " + str(x0)        else:            return "lines %d-%d" % (x0, x1)    for op, a0, a1, b0, b1 in tuples:        if op == 'equal':            pass        elif op == 'delete':            print "***", pair(a0, a1), "of expected output missing:"            for line in a[a0:a1]:                print "-", line,        elif op == 'replace':            print "*** mismatch between", pair(a0, a1), "of expected", \                  "output and", pair(b0, b1), "of actual output:"            for line in difflib.ndiff(a[a0:a1], b[b0:b1]):                print line,        elif op == 'insert':            print "***", pair(b0, b1), "of actual output doesn't appear", \                  "in expected output after line", str(a1)+":"            for line in b[b0:b1]:                print "+", line,        else:            print "get_opcodes() returned bad tuple?!?!", (op, a0, a1, b0, b1)    print "*" * 70def findtestdir():    if __name__ == '__main__':        file = sys.argv[0]    else:        file = __file__    testdir = os.path.dirname(file) or os.curdir    return testdirdef count(n, word):    if n == 1:        return "%d %s" % (n, word)    else:        return "%d %ss" % (n, word)def printlist(x, width=70, indent=4):    """Print the elements of a sequence to stdout.    Optional arg width (default 70) is the maximum line length.    Optional arg indent (default 4) is the number of blanks with which to    begin each line.    """    line = ' ' * indent    for one in map(str, x):        w = len(line) + len(one)        if line[-1:] == ' ':            pad = ''        else:            pad = ' '            w += 1        if w > width:            print line            line = ' ' * indent + one        else:            line += pad + one    if len(line) > indent:        print lineclass _Set:    def __init__(self, seq=[]):        data = self.data = {}        for x in seq:            data[x] = 1    def __len__(self):        return len(self.data)    def __sub__(self, other):        "Return set of all elements in self not in other."        result = _Set()        data = result.data = self.data.copy()        for x in other.data:            if x in data:                del data[x]        return result    def __iter__(self):        return iter(self.data)    def tolist(self, sorted=1):        "Return _Set elements as a list."        data = self.data.keys()        if sorted:            data.sort()        return data_expectations = {    'win32':        """        test_al        test_cd        test_cl        test_commands        test_crypt        test_curses        test_dbm        test_dl        test_email_codecs        test_fcntl        test_fork1        test_gdbm        test_gl        test_grp        test_imgfile        test_largefile        test_linuxaudiodev        test_mhlib        test_nis        test_openpty        test_poll        test_pty        test_pwd        test_signal        test_socket_ssl        test_socketserver        test_sunaudiodev        test_timing        """,    'linux2':        """        test_al        test_cd        test_cl        test_curses        test_dl        test_email_codecs        test_gl        test_imgfile        test_largefile        test_nis        test_ntpath        test_socket_ssl        test_socketserver        test_sunaudiodev        test_unicode_file        test_winreg        test_winsound        """,    'mac':        """        test_al        test_bsddb        test_cd        test_cl        test_commands        test_crypt        test_curses        test_dbm        test_dl        test_email_codecs        test_fcntl        test_fork1        test_gl        test_grp        test_imgfile        test_largefile        test_linuxaudiodev        test_locale        test_mmap        test_nis        test_ntpath        test_openpty        test_poll        test_popen2        test_pty        test_pwd        test_signal        test_socket_ssl        test_socketserver        test_sunaudiodev        test_sundry        test_timing        test_unicode_file        test_winreg        test_winsound        """,    'unixware7':        """        test_al        test_bsddb        test_cd        test_cl        test_dl        test_email_codecs        test_gl        test_imgfile        test_largefile        test_linuxaudiodev        test_minidom        test_nis        test_ntpath        test_openpty        test_pyexpat        test_sax        test_socketserver        test_sunaudiodev        test_sundry        test_unicode_file        test_winreg        test_winsound        """,    'openunix8':        """        test_al        test_bsddb        test_cd        test_cl        test_dl        test_email_codecs        test_gl        test_imgfile        test_largefile        test_linuxaudiodev        test_minidom        test_nis        test_ntpath        test_openpty        test_pyexpat        test_sax        test_socketserver        test_sunaudiodev        test_sundry        test_unicode_file        test_winreg        test_winsound        """,    'sco_sv3':        """        test_al        test_asynchat        test_bsddb        test_cd        test_cl        test_dl        test_email_codecs        test_fork1        test_gettext        test_gl        test_imgfile        test_largefile        test_linuxaudiodev        test_locale        test_minidom        test_nis        test_ntpath        test_openpty        test_pyexpat        test_queue        test_sax        test_socketserver        test_sunaudiodev        test_sundry        test_thread        test_threaded_import        test_threadedtempfile        test_threading        test_unicode_file        test_winreg        test_winsound        """,    'riscos':        """        test_al        test_asynchat        test_bsddb        test_cd        test_cl        test_commands        test_crypt        test_dbm        test_dl        test_email_codecs        test_fcntl        test_fork1        test_gdbm        test_gl        test_grp        test_imgfile        test_largefile        test_linuxaudiodev        test_locale        test_mmap        test_nis        test_ntpath        test_openpty        test_poll        test_popen2        test_pty        test_pwd        test_socket_ssl        test_socketserver        test_strop        test_sunaudiodev        test_sundry        test_thread        test_threaded_import        test_threadedtempfile        test_threading        test_timing        test_unicode_file        test_winreg        test_winsound        """,    'darwin':        """        test_al        test_cd        test_cl        test_curses        test_dl        test_email_codecs        test_gdbm        test_gl        test_imgfile        test_largefile        test_locale        test_linuxaudiodev        test_minidom        test_nis        test_ntpath        test_poll        test_socket_ssl        test_socketserver        test_sunaudiodev        test_unicode_file        test_winreg        test_winsound        """,    'sunos5':        """        test_al        test_bsddb        test_cd        test_cl        test_curses        test_dbm        test_email_codecs        test_gdbm        test_gl        test_gzip        test_imgfile        test_linuxaudiodev        test_mpz        test_openpty        test_socketserver        test_zipfile        test_zlib        """,    'hp-ux11':        """        test_al        test_bsddb        test_cd        test_cl        test_curses        test_dl        test_gdbm        test_gl        test_gzip        test_imgfile        test_largefile        test_linuxaudiodev        test_locale        test_minidom        test_nis        test_ntpath        test_openpty        test_pyexpat        test_sax        test_socketserver        test_sunaudiodev        test_zipfile        test_zlib        """,    'freebsd4':        """	test_al	test_cd	test_cl	test_curses	test_email_codecs	test_gdbm	test_gl	test_imgfile	test_linuxaudiodev	test_locale	test_minidom	test_nis	test_pyexpat	test_sax	test_socket_ssl	test_socketserver	test_sunaudiodev	test_unicode_file	test_winreg	test_winsound	""",}class _ExpectedSkips:    def __init__(self):        self.valid = 0        if _expectations.has_key(sys.platform):            s = _expectations[sys.platform]            self.expected = _Set(s.split())            self.valid = 1    def isvalid(self):        "Return true iff _ExpectedSkips knows about the current platform."        return self.valid    def getexpected(self):        """Return set of test names we expect to skip on current platform.        self.isvalid() must be true.        """        assert self.isvalid()        return self.expectedif __name__ == '__main__':    sys.exit(main())

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -