from test_support import verify import pprint # Verify that .isrecursive() and .isreadable() work. a = range(100) b = range(200) a[-12] = b for safe in 2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, u"yaddayadda", a, b: verify(pprint.isrecursive(safe) == 0, "expected isrecursive == 0") verify(pprint.isreadable(safe) == 1, "expected isreadable == 1") # Tie a knot. b[67] = a # Messy dict. d = {} d[0] = d[1] = d[2] = d for icky in a, b, d, (d, d): verify(pprint.isrecursive(icky) == 1, "expected isrecursive == 1") verify(pprint.isreadable(icky) == 0, "expected isreadable == 0") # Break the cycles. d.clear() del a[:] del b[:] for safe in a, b, d, (d, d): verify(pprint.isrecursive(safe) == 0, "expected isrecursive == 0") verify(pprint.isreadable(safe) == 1, "expected isreadable == 1") # Not recursive but not readable anyway. for unreadable in type(3), pprint, pprint.isrecursive: verify(pprint.isrecursive(unreadable) == 0, "expected isrecursive == 0") verify(pprint.isreadable(unreadable) ==0, "expected isreadable == 0")