[Python-checkins] CVS: python/dist/src/Lib/test test_pprint.py,1.2,1.3

Tim Peters tim_one@users.sourceforge.net
2001年5月14日 11:39:43 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv1384/python/dist/src/Lib/test
Modified Files:
	test_pprint.py 
Log Message:
pprint's workhorse _safe_repr() function took time quadratic in the # of
elements when crunching a list, dict or tuple. Now takes linear time
instead -- huge speedup for even moderately large containers, and the
code is notably simpler too.
Added some basic "is the output correct?" tests to test_pprint.
Index: test_pprint.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_pprint.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** test_pprint.py	2001年05月14日 17:41:20	1.2
--- test_pprint.py	2001年05月14日 18:39:41	1.3
***************
*** 13,17 ****
 
 def test_basic(self):
! # Verify that .isrecursive() and .isreadable() work.
 verify = self.assert_
 for safe in (2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, u"yaddayadda",
--- 13,17 ----
 
 def test_basic(self):
! # Verify that .isrecursive() and .isreadable() work w/o recursion.
 verify = self.assert_
 for safe in (2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, u"yaddayadda",
***************
*** 23,26 ****
--- 23,27 ----
 
 def test_knotted(self):
+ # Verify that .isrecursive() and .isreadable() work w/ recursion.
 # Tie a knot.
 self.b[67] = self.a
***************
*** 55,58 ****
--- 56,74 ----
 "expected not isreadable for " + `unreadable`)
 
+ def test_same_as_repr(self):
+ "Simple objects and small containers that should be same as repr()."
+ verify = self.assert_
+ for simple in (0, 0L, 0+0j, 0.0, "", u"", (), [], {}, verify, pprint,
+ -6, -6L, -6-6j, -1.5, "x", u"x", (3,), [3], {3: 6},
+ (1,2), [3,4], {5: 6, 7: 8},
+ {"xy\tab\n": (3,), 5: [[]], (): {}},
+ range(10, -11, -1)
+ ):
+ native = repr(simple)
+ for function in "pformat", "saferepr":
+ f = getattr(pprint, function)
+ got = f(simple)
+ verify(native == got, "expected %s got %s from pprint.%s" %
+ (native, got, function))
 
 test_support.run_unittest(QueryTestCase)

AltStyle によって変換されたページ (->オリジナル) /