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

Tim Peters tim_one@users.sourceforge.net
Mon, 14 May 2001 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)