Kc@sdZddkZddklZddkZddkZddkZddkZddk Tddk l Z da dZdZeieieieieieieieieieieieieg ZgZxeD]ZxdD]Z ei!ei"e Z!ei#d i$e!Z%ei&ei'gd e!ei'd d e!e%e%i(dRe%i(dSi)e%i(dTddddddfgqWqWdddUfdddVfdWgZ*d dgddgddggdfdd gddgddggdfgZ+dddXfddYdZd d[ddd\fd#dd]fd$d%d^fgfd_d`gfdad)dbdcgfddddfdegZ,d dgd-dd.d-d/gddgd0dgfd1e-fd2dfddgddggdfdd gd3dd4d3d5gddgdd0gfd6e.fd7dgddgddggdfgZ/ei'e+d ei!e*i"d8ei'e/d ei!e,i"d8ei'e+d ei!e*i"d9ei'e/d ei!e,i"d9gZ0d:Z1d;Z2d<Z3d=Z4d>Z5d?d@dAdBdCdDgZ6dEdFdGdHdIdJdKgZ7dLZ8dMZ9dNZ:dOZ;dPZ<e=dQjo e>ndS(hsD Test the .npy file format. Set up: >>> from cStringIO import StringIO >>> from numpy.lib import format >>> >>> scalars = [ ... np.uint8, ... np.int8, ... np.uint16, ... np.int16, ... np.uint32, ... np.int32, ... np.uint64, ... np.int64, ... np.float32, ... np.float64, ... np.complex64, ... np.complex128, ... object, ... ] >>> >>> basic_arrays = [] >>> >>> for scalar in scalars: ... for endian in '<>': ... dtype = np.dtype(scalar).newbyteorder(endian) ... basic = np.arange(15).astype(dtype) ... basic_arrays.extend([ ... np.array([], dtype=dtype), ... np.array(10, dtype=dtype), ... basic, ... basic.reshape((3,5)), ... basic.reshape((3,5)).T, ... basic.reshape((3,5))[::-1,::2], ... ]) ... >>> >>> Pdescr = [ ... ('x', 'i4', (2,)), ... ('y', 'f8', (2, 2)), ... ('z', 'u1')] >>> >>> >>> PbufferT = [ ... ([3,2], [[6.,4.],[6.,4.]], 8), ... ([4,3], [[7.,5.],[7.,5.]], 9), ... ] >>> >>> >>> Ndescr = [ ... ('x', 'i4', (2,)), ... ('Info', [ ... ('value', 'c16'), ... ('y2', 'f8'), ... ('Info2', [ ... ('name', 'S2'), ... ('value', 'c16', (2,)), ... ('y3', 'f8', (2,)), ... ('z3', 'u4', (2,))]), ... ('name', 'S2'), ... ('z2', 'b1')]), ... ('color', 'S2'), ... ('info', [ ... ('Name', 'U8'), ... ('Value', 'c16')]), ... ('y', 'f8', (2, 2)), ... ('z', 'u1')] >>> >>> >>> NbufferT = [ ... ([3,2], (6j, 6., ('nn', [6j,4j], [6.,4.], [1,2]), 'NN', True), 'cc', ('NN', 6j), [[6.,4.],[6.,4.]], 8), ... ([4,3], (7j, 7., ('oo', [7j,5j], [7.,5.], [2,1]), 'OO', False), 'dd', ('OO', 7j), [[7.,5.],[7.,5.]], 9), ... ] >>> >>> >>> record_arrays = [ ... np.array(PbufferT, dtype=np.dtype(Pdescr).newbyteorder('<')), ... np.array(NbufferT, dtype=np.dtype(Ndescr).newbyteorder('<')), ... np.array(PbufferT, dtype=np.dtype(Pdescr).newbyteorder('>')), ... np.array(NbufferT, dtype=np.dtype(Ndescr).newbyteorder('>')), ... ] Test the magic string writing. >>> format.magic(1, 0) '\x93NUMPY\x01\x00' >>> format.magic(0, 0) '\x93NUMPY\x00\x00' >>> format.magic(255, 255) '\x93NUMPY\xff\xff' >>> format.magic(2, 5) '\x93NUMPY\x02\x05' Test the magic string reading. >>> format.read_magic(StringIO(format.magic(1, 0))) (1, 0) >>> format.read_magic(StringIO(format.magic(0, 0))) (0, 0) >>> format.read_magic(StringIO(format.magic(255, 255))) (255, 255) >>> format.read_magic(StringIO(format.magic(2, 5))) (2, 5) Test the header writing. >>> for arr in basic_arrays + record_arrays: ... f = StringIO() ... format.write_array_header_1_0(f, arr) ... print repr(f.getvalue()) ... "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|u1', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|u1', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|i1', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|i1', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'u2', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>u2', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'i2', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>i2', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'u4', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>u4', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'i4', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>i4', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'u8', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>u8', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'i8', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>i8', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'f4', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>f4', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'f8', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>f8', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'c8', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>c8', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': 'c16', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '>c16', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|O4', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (3, 3)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (0,)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': ()} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (15,)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (3, 5)} \n" "F\x00{'descr': '|O4', 'fortran_order': True, 'shape': (5, 3)} \n" "F\x00{'descr': '|O4', 'fortran_order': False, 'shape': (3, 3)} \n" "v\x00{'descr': [('x', 'i4', (2,)), ('y', '>f8', (2, 2)), ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)} \n" "\x16\x02{'descr': [('x', '>i4', (2,)),\n ('Info',\n [('value', '>c16'),\n ('y2', '>f8'),\n ('Info2',\n [('name', '|S2'),\n ('value', '>c16', (2,)),\n ('y3', '>f8', (2,)),\n ('z3', '>u4', (2,))]),\n ('name', '|S2'),\n ('z2', '|b1')]),\n ('color', '|S2'),\n ('info', [('Name', '>U8'), ('Value', '>c16')]),\n ('y', '>f8', (2, 2)),\n ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)} \n" iN(tStringIO(t*(tformatcCstiadS(N(ttempfiletmkdtempttempdir(((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyt setup_module$scCs;tdj o*tiitotitdandS(N(RtNonetostpathtisdirtshutiltrmtree(((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pytteardown_module(s  s<>itdtypei iiitxti4tytf8tztu1g@g@iig@g@i tInfotvaluetc16ty2tInfo2tnametS2ty3tz3tu4tz2tb1tcolortinfotNametU8tValuey@tnny@itNNtccy@tooy@tOOtddtcCs>t}ti||t|i}ti|}|S(N(RRt write_arraytgetvaluet read_array(tarrtftf2tarr2((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyt roundtrips  cCsdS(N((to1to2((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyt assert_equalsccs3x,ttD] }t|}t||fVq WdS(N(t basic_arrayst record_arraysR5tassert_array_equal(R1R4((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_roundtrips  ccsmtidjp tidjpIxFttD]6}|iioq+ntiit d}tiit d}t |d}zt i ||Wd|i X|iio |ii }t i|ddd|id |id |}||d <~t |d }|i}|i t |d }|i}|i t||fVt i|dd }q+WndS(Ntwin32tcygwins normal.npys memmap.npytwbtmodesw+Rtshapet fortran_order.trbtr(tsystplatformR9R:Rt hasobjectRR tjoinRtopenRR.tclosetflagst f_contiguoust c_contiguoust open_memmapRAtreadR8(R1tnfntmfntfpRBtmat normal_bytest memmap_bytes((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_memmap_roundtrips0         c Cst}tid}ti||ddti||dd d d d d g}xQ|D]I}yti||d|Wntj oq]Xtd|fq]WdS(Nitversioniiis9we should have raised a ValueError for the bad version %r(ii(ii(ii(ii(ii(ii(ii(RtnptarangeRR.t ValueErrortAssertionError(R2R1t bad_versionsRW((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_write_version_1_0s"  sNUMPYsNUMPYsNUMPYsNUMPYsNUMPYsNUMPYsNUMPYtNUMPYsnumpysMATLBsNUMPYsNUMPYtccs;x4tD],}t|}ttti|fVqWdS(N(tmalformed_magicRtraisesRZRt read_magic(tmagicR2((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_read_magic_bad_magics ccs?x8ttD],}t|}ttti|fVq WdS(N(tbad_version_magicR`RRaRZRR0(RcR2((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_read_version_1_0_bad_magics  cCs\tttiddtttiddtttiddtttidddS(Niii(t assert_raisesRZRRc(((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_bad_magic_argsscCsst}hdd6dd6}ti||t}hdd6dd6dddd6}ttti||dS(NitaitbRitc(RRtwrite_array_header_1_0RgRZ(tstd((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_large_headers   #cCst}ttti|td}ttti|td}ttti|hd d6dd6}t}ti||ttti|hd d6td6dd6d d 6}t}ti||ttti|dS( Nt1siiRARtdescrRBitextrakey(ii(ii(RRgRZRtread_array_header_1_0RltFalse(RmRn((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyttest_bad_headers$         t__main__(ii(ii(ii(i(ii(RR(i(svalueR(RR(snameR(i(i(i(snameR(RR (R!R(R#R$(R%R(ii(RR(R'y@(R*y@(?t__doc__REt cStringIORRR RtnumpyRXt numpy.testingt numpy.libRRRRR tuint8tint8tuint16tint16tuint32tint32tuint64tint64tfloat32tfloat64t complex64t complex128tobjecttscalarsR9tscalartendianRt newbyteorderRYtastypetbasictextendtarraytreshapetTtPdescrtPbufferTtNdescrtTrueRttNbufferTR:R5R8R<RVR]ReR`RdRfRhRoRut__name__trun_module_suite(((sA/usr/lib64/python2.6/site-packages/numpy/lib/tests/test_format.pyts          7   $*       Z`$$$*    %