[Python-checkins] CVS: python/dist/src/Lib/test/output test_difflib,NONE,1.1

Tim Peters tim_one@users.sourceforge.net
Sat, 10 Feb 2001 00:00:55 -0800


Update of /cvsroot/python/python/dist/src/Lib/test/output
In directory usw-pr-cvs1:/tmp/cvs-serv20941/python/dist/src/Lib/test/output

Added Files:
	test_difflib 
Log Message:
Moved SequenceMatcher from ndiff into new std library module difflib.py.
Guido told me to do this <wink>.
Greatly expanded docstrings, and fleshed out with examples.
New std test.
Added new get_close_matches() function for ESR.
Needs docs, but LaTeXification of the module docstring is all it needs.
\CVS: ----------------------------------------------------------------------


--- NEW FILE: test_difflib ---
test_difflib
Running difflib.__doc__
Trying: get_close_matches("appel", ["ape", "apple", "peach", "puppy"])
Expecting: ['apple', 'ape']
ok
Trying: import keyword
Expecting: nothing
ok
Trying: get_close_matches("wheel", keyword.kwlist)
Expecting: ['while']
ok
Trying: get_close_matches("apple", keyword.kwlist)
Expecting: []
ok
Trying: get_close_matches("accept", keyword.kwlist)
Expecting: ['except']
ok
Trying:
s = SequenceMatcher(lambda x: x == " ",
                    "private Thread currentThread;",
                    "private volatile Thread currentThread;")
Expecting: nothing
ok
Trying: print round(s.ratio(), 3)
Expecting: 0.866
ok
Trying:
for block in s.get_matching_blocks():
    print "a[%d] and b[%d] match for %d elements" % block
Expecting:
a[0] and b[0] match for 8 elements
a[8] and b[17] match for 6 elements
a[14] and b[23] match for 15 elements
a[29] and b[38] match for 0 elements
ok
Trying:
for opcode in s.get_opcodes():
    print "%6s a[%d:%d] b[%d:%d]" % opcode
Expecting:
 equal a[0:8] b[0:8]
insert a[8:8] b[8:17]
 equal a[8:14] b[17:23]
 equal a[14:29] b[23:38]
ok
Trying: s = SequenceMatcher()
Expecting: nothing
ok
Trying: s.set_seqs("abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.set_seq1("bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 1.0
ok
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.set_seq2("abcd")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 1.0
ok
Trying: s = SequenceMatcher(None, " abcd", "abcd abcd")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 5, 0, 9)
Expecting: (0, 4, 5)
ok
Trying: s = SequenceMatcher(lambda x: x==" ", " abcd", "abcd abcd")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 5, 0, 9)
Expecting: (1, 0, 4)
ok
Trying: s = SequenceMatcher(None, "ab", "c")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 2, 0, 1)
Expecting: (0, 0, 0)
ok
Trying: s = SequenceMatcher(None, "abxcd", "abcd")
Expecting: nothing
ok
Trying: s.get_matching_blocks()
Expecting: [(0, 0, 2), (3, 2, 2), (5, 4, 0)]
ok
Trying: a = "qabxcd"
Expecting: nothing
ok
Trying: b = "abycdf"
Expecting: nothing
ok
Trying: s = SequenceMatcher(None, a, b)
Expecting: nothing
ok
Trying:
for tag, i1, i2, j1, j2 in s.get_opcodes():
   print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" %
          (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))
Expecting:
 delete a[0:1] (q) b[0:0] ()
  equal a[1:3] (ab) b[0:2] (ab)
replace a[3:4] (x) b[2:3] (y)
  equal a[4:6] (cd) b[3:5] (cd)
 insert a[6:6] () b[5:6] (f)
ok
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.quick_ratio()
Expecting: 0.75
ok
Trying: s.real_quick_ratio()
Expecting: 1.0
ok
0 of 36 examples failed in difflib.__doc__
Running difflib.SequenceMatcher.__doc__
0 of 0 examples failed in difflib.SequenceMatcher.__doc__
Running difflib.SequenceMatcher.__init__.__doc__
0 of 0 examples failed in difflib.SequenceMatcher.__init__.__doc__
Running difflib.SequenceMatcher.find_longest_match.__doc__
Trying: s = SequenceMatcher(None, " abcd", "abcd abcd")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 5, 0, 9)
Expecting: (0, 4, 5)
ok
Trying: s = SequenceMatcher(lambda x: x==" ", " abcd", "abcd abcd")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 5, 0, 9)
Expecting: (1, 0, 4)
ok
Trying: s = SequenceMatcher(None, "ab", "c")
Expecting: nothing
ok
Trying: s.find_longest_match(0, 2, 0, 1)
Expecting: (0, 0, 0)
ok
0 of 6 examples failed in difflib.SequenceMatcher.find_longest_match.__doc__
Running difflib.SequenceMatcher.get_opcodes.__doc__
Trying: a = "qabxcd"
Expecting: nothing
ok
Trying: b = "abycdf"
Expecting: nothing
ok
Trying: s = SequenceMatcher(None, a, b)
Expecting: nothing
ok
Trying:
for tag, i1, i2, j1, j2 in s.get_opcodes():
   print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" %
          (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))
Expecting:
 delete a[0:1] (q) b[0:0] ()
  equal a[1:3] (ab) b[0:2] (ab)
replace a[3:4] (x) b[2:3] (y)
  equal a[4:6] (cd) b[3:5] (cd)
 insert a[6:6] () b[5:6] (f)
ok
0 of 4 examples failed in difflib.SequenceMatcher.get_opcodes.__doc__
Running difflib.SequenceMatcher.quick_ratio.__doc__
0 of 0 examples failed in difflib.SequenceMatcher.quick_ratio.__doc__
Running difflib.SequenceMatcher.set_seqs.__doc__
Trying: s = SequenceMatcher()
Expecting: nothing
ok
Trying: s.set_seqs("abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
0 of 3 examples failed in difflib.SequenceMatcher.set_seqs.__doc__
Running difflib.SequenceMatcher.set_seq2.__doc__
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.set_seq2("abcd")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 1.0
ok
0 of 4 examples failed in difflib.SequenceMatcher.set_seq2.__doc__
Running difflib.SequenceMatcher.set_seq1.__doc__
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.set_seq1("bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 1.0
ok
0 of 4 examples failed in difflib.SequenceMatcher.set_seq1.__doc__
Running difflib.SequenceMatcher.get_matching_blocks.__doc__
Trying: s = SequenceMatcher(None, "abxcd", "abcd")
Expecting: nothing
ok
Trying: s.get_matching_blocks()
Expecting: [(0, 0, 2), (3, 2, 2), (5, 4, 0)]
ok
0 of 2 examples failed in difflib.SequenceMatcher.get_matching_blocks.__doc__
Running difflib.SequenceMatcher.real_quick_ratio.__doc__
0 of 0 examples failed in difflib.SequenceMatcher.real_quick_ratio.__doc__
Running difflib.SequenceMatcher.ratio.__doc__
Trying: s = SequenceMatcher(None, "abcd", "bcde")
Expecting: nothing
ok
Trying: s.ratio()
Expecting: 0.75
ok
Trying: s.quick_ratio()
Expecting: 0.75
ok
Trying: s.real_quick_ratio()
Expecting: 1.0
ok
0 of 4 examples failed in difflib.SequenceMatcher.ratio.__doc__
Running difflib.get_close_matches.__doc__
Trying: get_close_matches("appel", ["ape", "apple", "peach", "puppy"])
Expecting: ['apple', 'ape']
ok
Trying: import keyword
Expecting: nothing
ok
Trying: get_close_matches("wheel", keyword.kwlist)
Expecting: ['while']
ok
Trying: get_close_matches("apple", keyword.kwlist)
Expecting: []
ok
Trying: get_close_matches("accept", keyword.kwlist)
Expecting: ['except']
ok
0 of 5 examples failed in difflib.get_close_matches.__doc__
4 items had no tests:
    difflib.SequenceMatcher
    difflib.SequenceMatcher.__init__
    difflib.SequenceMatcher.quick_ratio
    difflib.SequenceMatcher.real_quick_ratio
9 items passed all tests:
  36 tests in difflib
   6 tests in difflib.SequenceMatcher.find_longest_match
   2 tests in difflib.SequenceMatcher.get_matching_blocks
   4 tests in difflib.SequenceMatcher.get_opcodes
   4 tests in difflib.SequenceMatcher.ratio
   4 tests in difflib.SequenceMatcher.set_seq1
   4 tests in difflib.SequenceMatcher.set_seq2
   3 tests in difflib.SequenceMatcher.set_seqs
   5 tests in difflib.get_close_matches
68 tests in 13 items.
68 passed and 0 failed.
Test passed.