python/dist/src/Lib/test test_doctest.py, 1.49, 1.50

Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32322/dist/src/Lib/test Modified Files: test_doctest.py Log Message: Added a new NORMALIZE_NUMBERS option, which causes number literals in the expected output to match corresponding number literals in the actual output if their values are equal (to ten digits of precision). Index: test_doctest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_doctest.py,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- test_doctest.py 21 Sep 2004 03:20:34 -0000 1.49 +++ test_doctest.py 28 Sep 2004 04:29:57 -0000 1.50 @@ -1032,6 +1032,107 @@ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] +The NORMALIZE_NUMBERS flag causes numbers that are equal (to +approximately 10 decimal places) but formatted differently to match. + + >>> def f(x): ''' + ... Numbers will match if they are exactly equal: + ... + ... >>> print 1.1, 'intervening text', 1L # should match + ... 1.1 intervening text 1L + ... >>> print 1.0j, 22, 22.0, 1, 1e1 # should match + ... 1j 22.0 22 1 10.0 + ... + ... Numbers will match if they are equal to 14 digits of + ... precision: + ... + ... >>> 2.00000000001 # should match + ... 1.99999999999 + ... >>> 2.000000001 # should not match + ... 1.999999999 + ... >>> 2.00000000001e10 # should match + ... 1.99999999999e10 + ... >>> 2.000000001e10 # should not match + ... 1.999999999e10 + ... ''' + + >>> # Without the flag: + >>> test = doctest.DocTestFinder().find(f)[0] + >>> doctest.DocTestRunner(verbose=False).run(test) + ... # doctest: +ELLIPSIS + ********************************************************************** + File ..., line 4, in f + Failed example: + print 1.1, 'intervening text', 1L # should match + Expected: + 1.1 intervening text 1L + Got: + 1.1 intervening text 1 + ********************************************************************** + File ..., line 6, in f + Failed example: + print 1.0j, 22, 22.0, 1, 1e1 # should match + Expected: + 1j 22.0 22 1 10.0 + Got: + 1j 22 22.0 1 10.0 + ********************************************************************** + File ..., line 12, in f + Failed example: + 2.00000000001 # should match + Expected: + 1.99999999999 + Got: + 2.00000000001 + ********************************************************************** + File ..., line 14, in f + Failed example: + 2.000000001 # should not match + Expected: + 1.999999999 + Got: + 2.0000000010000001 + ********************************************************************** + File ..., line 16, in f + Failed example: + 2.00000000001e10 # should match + Expected: + 1.99999999999e10 + Got: + 20000000000.099998 + ********************************************************************** + File ..., line 18, in f + Failed example: + 2.000000001e10 # should not match + Expected: + 1.999999999e10 + Got: + 20000000010.0 + (6, 6) + + >>> # With the flag: + >>> test = doctest.DocTestFinder().find(f)[0] + >>> flags = doctest.NORMALIZE_NUMBERS + >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test) + ... # doctest: +ELLIPSIS + ********************************************************************** + File ..., line 14, in f + Failed example: + 2.000000001 # should not match + Expected: + 1.999999999 + Got: + 2.0000000010000001 + ********************************************************************** + File ..., line 18, in f + Failed example: + 2.000000001e10 # should not match + Expected: + 1.999999999e10 + Got: + 20000000010.0 + (2, 6) + The ELLIPSIS flag causes ellipsis marker ("...") in the expected output to match any substring in the actual output:
participants (1)
-
edloper@users.sourceforge.net