mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Store floats and doubles to full precision in marshal. Test that floats read from .pyc/.pyo closely match those read from .py. Declare PyFloat_AsString() in floatobject header file. Add new PyFloat_AsReprString() API function. Document the functions declared in floatobject.h.
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from test_support import TESTFN, TestFailed
 | 
						|
 | 
						|
import os
 | 
						|
import random
 | 
						|
import sys
 | 
						|
 | 
						|
# Brief digression to test that import is case-sensitive:  if we got this
 | 
						|
# far, we know for sure that "random" exists.
 | 
						|
try:
 | 
						|
    import RAnDoM
 | 
						|
except ImportError:
 | 
						|
    pass
 | 
						|
else:
 | 
						|
    raise TestFailed("import of RAnDoM should have failed (case mismatch)")
 | 
						|
 | 
						|
# Another brief digression to test the accuracy of manifest float constants.
 | 
						|
import double_const  # don't blink -- that *was* the test
 | 
						|
 | 
						|
sys.path.insert(0, os.curdir)
 | 
						|
 | 
						|
source = TESTFN + ".py"
 | 
						|
pyc = TESTFN + ".pyc"
 | 
						|
pyo = TESTFN + ".pyo"
 | 
						|
 | 
						|
f = open(source, "w")
 | 
						|
print >> f, "# This will test Python's ability to import a .py file"
 | 
						|
a = random.randrange(1000)
 | 
						|
b = random.randrange(1000)
 | 
						|
print >> f, "a =", a
 | 
						|
print >> f, "b =", b
 | 
						|
f.close()
 | 
						|
 | 
						|
try:
 | 
						|
    try:
 | 
						|
        mod = __import__(TESTFN)
 | 
						|
    except ImportError, err:
 | 
						|
        raise ValueError, "import from .py failed: %s" % err
 | 
						|
 | 
						|
    if mod.a != a or mod.b != b:
 | 
						|
        print a, "!=", mod.a
 | 
						|
        print b, "!=", mod.b
 | 
						|
        raise ValueError, "module loaded (%s) but contents invalid" % mod
 | 
						|
finally:
 | 
						|
    os.unlink(source)
 | 
						|
 | 
						|
try:
 | 
						|
    try:
 | 
						|
        reload(mod)
 | 
						|
    except ImportError, err:
 | 
						|
        raise ValueError, "import from .pyc/.pyo failed: %s" % err
 | 
						|
finally:
 | 
						|
    try:
 | 
						|
        os.unlink(pyc)
 | 
						|
    except os.error:
 | 
						|
        pass
 | 
						|
    try:
 | 
						|
        os.unlink(pyo)
 | 
						|
    except os.error:
 | 
						|
        pass
 | 
						|
 | 
						|
del sys.path[0]
 |