summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/lib/libdoctest.tex20
1 files changed, 19 insertions, 1 deletions
diff --git a/Doc/lib/libdoctest.tex b/Doc/lib/libdoctest.tex
index 2635486..a30a432 100644
--- a/Doc/lib/libdoctest.tex
+++ b/Doc/lib/libdoctest.tex
@@ -581,6 +581,17 @@ TypeError: object doesn't support item assignment
\end{datadesc}
+\begin{datadesc}{NORMALIZE_NUMBERS}
+ When specified, number literals in the expected output will match
+ corresponding number literals in the actual output if their values
+ are equal (to ten digits of precision). For example, \code{1.1}
+ will match \code{1.1000000000000001}; and \code{1L} will match
+ \code{1} and \code{1.0}. Currently, \constant{NORMALIZE_NUMBERS}
+ can fail to normalize numbers when used in conjunction with
+ ellipsis. In particular, if an ellipsis marker matches one or
+ more numbers, then number normalization is not supported.
+\end{datadesc}
+
\begin{datadesc}{COMPARISON_FLAGS}
A bitmask or'ing together all the comparison flags above.
\end{datadesc}
@@ -702,7 +713,7 @@ can be useful.
\versionchanged[Constants \constant{DONT_ACCEPT_BLANKLINE},
\constant{NORMALIZE_WHITESPACE}, \constant{ELLIPSIS},
- \constant{IGNORE_EXCEPTION_DETAIL},
+ \constant{IGNORE_EXCEPTION_DETAIL}, \constant{NORMALIZE_NUMBERS},
\constant{REPORT_UDIFF}, \constant{REPORT_CDIFF},
\constant{REPORT_NDIFF}, \constant{REPORT_ONLY_FIRST_FAILURE},
\constant{COMPARISON_FLAGS} and \constant{REPORTING_FLAGS}
@@ -740,6 +751,7 @@ in any particular order, so a test like
% Hey! What happened to Monty Python examples?
% Tim: ask Guido -- it's his example!
+% doctest: ignore
\begin{verbatim}
>>> foo()
{"Hermione": "hippogryph", "Harry": "broomstick"}
@@ -747,6 +759,7 @@ in any particular order, so a test like
is vulnerable! One workaround is to do
+% doctest: ignore
\begin{verbatim}
>>> foo() == {"Hermione": "hippogryph", "Harry": "broomstick"}
True
@@ -754,6 +767,7 @@ True
instead. Another is to do
+% doctest: ignore
\begin{verbatim}
>>> d = foo().items()
>>> d.sort()
@@ -765,6 +779,7 @@ There are others, but you get the idea.
Another bad idea is to print things that embed an object address, like
+% doctest: ignore
\begin{verbatim}
>>> id(1.0) # certain to fail some of the time
7948648
@@ -776,6 +791,7 @@ Another bad idea is to print things that embed an object address, like
The \constant{ELLIPSIS} directive gives a nice approach for the last
example:
+% doctest: ignore
\begin{verbatim}
>>> C() #doctest: +ELLIPSIS
<__main__.C instance at 0x...>
@@ -785,6 +801,7 @@ Floating-point numbers are also subject to small output variations across
platforms, because Python defers to the platform C library for float
formatting, and C libraries vary widely in quality here.
+% doctest: ignore
\begin{verbatim}
>>> 1./7 # risky
0.14285714285714285
@@ -1618,6 +1635,7 @@ Doctest provides several mechanisms for debugging doctest examples:
Then an interactive Python session may look like this:
+% doctest: ignore
\begin{verbatim}
>>> import a, doctest
>>> doctest.testmod(a)