diff options
author | darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-04-16 22:12:42 +0000 |
---|---|---|
committer | darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-04-16 22:12:42 +0000 |
commit | 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 (patch) | |
tree | 2d17d2388a78082e32f6a97120d707328143543b /AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py | |
parent | cbc6b5e54599c7391ece99ad3c5313f4dd4ddda6 (diff) | |
download | edk2-platforms-4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2.tar.xz |
AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site.
These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution.
Signed-off-by: daryl.mcdaniel@intel.com
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py')
-rw-r--r-- | AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py new file mode 100644 index 0000000000..0128866afe --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/double_const.py @@ -0,0 +1,30 @@ +from test.test_support import TestFailed
+
+# A test for SF bug 422177: manifest float constants varied way too much in
+# precision depending on whether Python was loading a module for the first
+# time, or reloading it from a precompiled .pyc. The "expected" failure
+# mode is that when test_import imports this after all .pyc files have been
+# erased, it passes, but when test_import imports this from
+# double_const.pyc, it fails. This indicates a woeful loss of precision in
+# the marshal format for doubles. It's also possible that repr() doesn't
+# produce enough digits to get reasonable precision for this box.
+
+PI = 3.14159265358979324
+TWOPI = 6.28318530717958648
+
+PI_str = "3.14159265358979324"
+TWOPI_str = "6.28318530717958648"
+
+# Verify that the double x is within a few bits of eval(x_str).
+def check_ok(x, x_str):
+ assert x > 0.0
+ x2 = eval(x_str)
+ assert x2 > 0.0
+ diff = abs(x - x2)
+ # If diff is no larger than 3 ULP (wrt x2), then diff/8 is no larger
+ # than 0.375 ULP, so adding diff/8 to x2 should have no effect.
+ if x2 + (diff / 8.) != x2:
+ raise TestFailed("Manifest const %s lost too much precision " % x_str)
+
+check_ok(PI, PI_str)
+check_ok(TWOPI, TWOPI_str)
|