summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pprint.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-05-14 18:39:41 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-05-14 18:39:41 (GMT)
commit95b3f7862260a3f91b7095e00e50931e1902c6c9 (patch)
tree422c38906613c44468894a9d4c5aab2f90a46125 /Lib/test/test_pprint.py
parent43913dd27cc1657c0508ac07aa76582540f6964b (diff)
downloadcpython-95b3f7862260a3f91b7095e00e50931e1902c6c9.zip
cpython-95b3f7862260a3f91b7095e00e50931e1902c6c9.tar.gz
cpython-95b3f7862260a3f91b7095e00e50931e1902c6c9.tar.bz2
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.
Diffstat (limited to 'Lib/test/test_pprint.py')
-rw-r--r--Lib/test/test_pprint.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/Lib/test/test_pprint.py b/Lib/test/test_pprint.py
index f6a128d..25d806d 100644
--- a/Lib/test/test_pprint.py
+++ b/Lib/test/test_pprint.py
@@ -12,7 +12,7 @@ class QueryTestCase(unittest.TestCase):
self.a[-12] = self.b
def test_basic(self):
- # Verify that .isrecursive() and .isreadable() work.
+ # 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",
self.a, self.b):
@@ -22,6 +22,7 @@ class QueryTestCase(unittest.TestCase):
"expected isreadable for " + `safe`)
def test_knotted(self):
+ # Verify that .isrecursive() and .isreadable() work w/ recursion.
# Tie a knot.
self.b[67] = self.a
# Messy dict.
@@ -54,5 +55,20 @@ class QueryTestCase(unittest.TestCase):
verify(not pprint.isreadable(unreadable),
"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)