|
@@ -1,3 +1,279 @@
|
|
|
+# doctest
|
|
|
+r''' Test the .npy file format.
|
|
|
+
|
|
|
+Set up:
|
|
|
+
|
|
|
+ >>> import sys
|
|
|
+ >>> from io import BytesIO
|
|
|
+ >>> 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)
|
|
|
+ b'\x93NUMPY\x01\x00'
|
|
|
+ >>> format.magic(0, 0)
|
|
|
+ b'\x93NUMPY\x00\x00'
|
|
|
+ >>> format.magic(255, 255)
|
|
|
+ b'\x93NUMPY\xff\xff'
|
|
|
+ >>> format.magic(2, 5)
|
|
|
+ b'\x93NUMPY\x02\x05'
|
|
|
+
|
|
|
+Test the magic string reading.
|
|
|
+
|
|
|
+ >>> format.read_magic(BytesIO(format.magic(1, 0)))
|
|
|
+ (1, 0)
|
|
|
+ >>> format.read_magic(BytesIO(format.magic(0, 0)))
|
|
|
+ (0, 0)
|
|
|
+ >>> format.read_magic(BytesIO(format.magic(255, 255)))
|
|
|
+ (255, 255)
|
|
|
+ >>> format.read_magic(BytesIO(format.magic(2, 5)))
|
|
|
+ (2, 5)
|
|
|
+
|
|
|
+Test the header writing.
|
|
|
+
|
|
|
+ >>> for arr in basic_arrays + record_arrays: # doctest: +SKIP
|
|
|
+ ... f = BytesIO()
|
|
|
+ ... format.write_array_header_1_0(f, arr) # XXX: arr is not a dict, items gets called on it
|
|
|
+ ... 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': '>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': '>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': '>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': '>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': '>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': '>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': '>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': '>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': '>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': '>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': 'O', 'fortran_order': False, 'shape': (0,)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': ()} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (15,)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 5)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': True, 'shape': (5, 3)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 3)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (0,)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': ()} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (15,)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 5)} \n"
|
|
|
+ "F\x00{'descr': 'O', 'fortran_order': True, 'shape': (5, 3)} \n"
|
|
|
+ "F\x00{'descr': 'O', '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"
|
|
|
+ "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"
|
|
|
+'''
|
|
|
import sys
|
|
|
import os
|
|
|
import warnings
|
|
@@ -12,7 +288,7 @@ from numpy.testing import (
|
|
|
from numpy.testing._private.utils import requires_memory
|
|
|
from numpy.lib import format
|
|
|
|
|
|
-import yatest.common
|
|
|
+import yatest.common as yc
|
|
|
|
|
|
|
|
|
# Generate some basic arrays to test with.
|
|
@@ -256,7 +532,7 @@ def test_load_padded_dtype(tmpdir, dt):
|
|
|
@pytest.mark.xfail(IS_WASM, reason="Emscripten NODEFS has a buggy dup")
|
|
|
def test_python2_python3_interoperability():
|
|
|
fname = 'win64python2.npy'
|
|
|
- path = os.path.join(yatest.common.source_path('contrib/python/numpy/py3/numpy/lib/tests'), 'data', fname)
|
|
|
+ path = yc.source_path(os.path.join(os.path.dirname(__file__), 'data', fname))
|
|
|
with pytest.warns(UserWarning, match="Reading.*this warning\\."):
|
|
|
data = np.load(path)
|
|
|
assert_array_equal(data, np.ones(2))
|
|
@@ -264,7 +540,7 @@ def test_python2_python3_interoperability():
|
|
|
def test_pickle_python2_python3():
|
|
|
# Test that loading object arrays saved on Python 2 works both on
|
|
|
# Python 2 and Python 3 and vice versa
|
|
|
- data_dir = os.path.join(yatest.common.source_path('contrib/python/numpy/py3/numpy/lib/tests'), 'data')
|
|
|
+ data_dir = yc.source_path(os.path.join(os.path.dirname(__file__), 'data'))
|
|
|
|
|
|
expected = np.array([None, range, '\u512a\u826f',
|
|
|
b'\xe4\xb8\x8d\xe8\x89\xaf'],
|
|
@@ -309,7 +585,7 @@ def test_pickle_python2_python3():
|
|
|
|
|
|
|
|
|
def test_pickle_disallow(tmpdir):
|
|
|
- data_dir = os.path.join(yatest.common.source_path('contrib/python/numpy/py3/numpy/lib/tests'), 'data')
|
|
|
+ data_dir = yc.source_path(os.path.join(os.path.dirname(__file__), 'data'))
|
|
|
|
|
|
path = os.path.join(data_dir, 'py2-objarr.npy')
|
|
|
assert_raises(ValueError, np.load, path,
|