HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/lib/tests/__pycache__/test_format.cpython-310.pyc
o

���gD��@s�dZddlZddlZddlZddlZddlmZddlZddl	m
Z
mZmZm
Z
mZmZmZddlmZddlmZejejejejejejejejejejejej e!g
Z"gZ#e"D]@Z$dD];Z%e�&e$��'e%�Z&e�(d��)e&�Z*e#�+ej,ge&d	�ej,d
e&d	�e*e*�-d�e*�-d�j.e*�-d�ddd�ddd
�fg�q]qYgd�Z/dd
gddgddggdfddgddgddggdfgZ0dddddgd�fddgfdd d!d"gfd#d$gZ1dd
gd%dd&d%d'gddgd(d
gfd)d*fd+d,ddgddggdfddgd-dd.d-d/gddgd
d(gfd0d1fd2d3ddgddggdfgZ2ej,e0e�&e/��'d4�d	�ej,e2e�&e1��'d4�d	�ej,e0e�&e/��'d5�d	�ej,e2e�&e1��'d5�d	�ej3d(d6gd	�gZ4Gd7d8�d8e�Z5d9d:�Z6d;d<�Z7d=d>�Z8d?d@�Z9dAdB�Z:dCdD�Z;dEdF�Z<dGdH�Z=ej>j?edIdJ�ej>j@dKdL���ZAdMdN�ZBej&dOd*dP�ZCe�&dQdRgdSdSgd(dTgdU��ZDe�&dVdWgdSeDgdX��ZEe�&gdY�dSgddX��ZFe�&dQdRgdSdSgd(dTgdZd[gd\��ZGe�&ggdd]��ZHej>�Id^eCeDeEeFeGeHg�d_d`��ZJej>j?ejKdakdbdJ�ej>jLedcdJ�ddde���ZMdfdg�ZNdhdi�ZOej>�Id^e�&ej&dQejfdRejfdVejfgd*dP�dj�e�&dke�&dQdRgdldlgddgddm�dj�dnfg�e�&dog�e�&dke�&e�&e�&dQdRgdldlgddgddm��djf�dnf�fg�e�&dQe�&e�&e�&e�&dQePfdRe�&dQdRgdldlgddgddm��fg�djf�dnf�dpf�fg�g�dqdr��ZQdsdt�ZRej>j?edIdJ�dudv��ZSej>�Idwdxdg�dydz��ZTd{d|�ZUd}d~�ZVgd�ZWgd��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zaej>j?ed�dJ�ej>j?e�&ejb�jcdkd�dJ�ej>j@ed�d��d�d������Zdd�d��Zed�d��Zfd�d��Zgej>�Id�e�&dQdRgehej&d�d�d�id��gdX��d*fej&ePd�d�id��d1fej&d�ePd�ffgd�d�id��d1fe�&dQdRgehe�&dVgej&ePid��gdX��gdX��d1fg�ej>j?e�o^ejijjd�kd�dJ�d�d����ZkdS)�a�D 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)
    '\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(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:
    ...     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"
�N)�BytesIO)�assert_�assert_array_equal�
assert_raises�assert_raises_regex�assert_warns�IS_PYPY�IS_WASM)�requires_memory)�formatz<>i���dtype�
)��2����)��x�i4�r��y�f8�rr��z�u1�g@g@��g@g@�	r�Info)�value�c16)�y2r�Info2)��name�S2)r#r$r)�y3rr)�z3�u4rr')�z2�b1)�colorr)�info)�Name�U8)�Valuer$rr�@�nny@��NNT�cc)r7r4�@�ooy@�OOF�dd)r;r9�<�>)�c�z<f8��rcseZdZd�fdd�	Z�ZS)�BytesIOSRandomSizeNcs ddl}|�d|�}t��|�S)Nrr6)�random�randint�super�read)�self�sizerD��	__class__��F/usr/local/lib/python3.10/dist-packages/numpy/lib/tests/test_format.pyrG�szBytesIOSRandomSize.read�N)�__name__�
__module__�__qualname__rG�
__classcell__rLrLrJrMrC�srCcCs0t�}t�||�t|���}tj|dd�}|S)NT��allow_pickle�rr�write_array�getvalue�
read_array��arr�f�f2�arr2rLrLrM�	roundtrip�s
r^cCs,t�}t�||�t|���}t�|�}|SrN)rrrVrCrWrXrYrLrLrM�roundtrip_randsize�s

r_cCs4t�}t�||�t|��dd��}t�|�}|S)NrrrUrYrLrLrM�roundtrip_truncated�s

r`cCst||k�dSrN)r)�o1�o2rLrLrM�
assert_equal_�srccCs$ttD]}t|�}t||�qdSrN)�basic_arrays�
record_arraysr^r�rZr]rLrLrM�test_roundtrip�s�rgcCs.ttD]}|jtkrt|�}t||�qdSrN)rdrer
�objectr_rrfrLrLrM�test_roundtrip_randsize�s

��ricCs$tD]
}|jtkrttt|�qdSrN)rdr
rhr�
ValueErrorr`�rZrLrLrM�test_roundtrip_truncated�s

��rlcCs4tjdt�ttjdf�d�}t|�}t||�dS)Nr6r)�np�onesr
�strr�BUFFER_SIZEr^r)�long_str_arr�
long_str_arr2rLrLrM�
test_long_str�srszmemmap doesn't work correctly)�reasonc
	CsDttt�D]�\}}|jjrqtj�|d|�d��}tj�|d|�d��}t|d��}t	�
||�Wd�n1s;wY|jjoH|jj
}t	j|d|j|j|d�}||d<|��t|d��}|��}Wd�n1sqwYt|d��}|��}	Wd�n1s�wYt||	�t	j|d	d
�}|��qdS)N�normalz.npy�memmap�wb�w+)�moder
�shape�
fortran_order.�rb�r)ry)�	enumeraterdrer
�	hasobject�os�path�join�openrrV�flags�f_contiguous�c_contiguous�open_memmaprz�flushrGrc)
�tmpdir�irZ�nfn�mfn�fpr{�ma�normal_bytes�memmap_bytesrLrLrM�test_memmap_roundtrip�s2���
�
�

�r�cCsjtj�dd�}tj�|d�}tj||d�t�|��}|d}Wd�n1s)wYt||�dS)N��zcompressed.npzrkrZ)	rmrD�randr�r�r��savez_compressed�loadr)r�rZ�npz_file�npz�arr1rLrLrM�test_compressed_roundtrip�s
�r�z
i1, i4, i1)�align�a�br�)�names�formats�offsetsr?�d)r�r�)r��r��aa�bb)r�r�r��titles)r�r��itemsize�dtcCs�t�d|�}td�D]}|d||<q
tj�|d�}tj||d�t�|��}|d}Wd�n1s5wYt||�dS)NrrBzaligned.npzrkrZ)	rm�zeros�ranger�r�r��savezr�r)r�r�rZr�r�r�r�rLrLrM�test_load_padded_dtypes
�r�)r�zsee gh-23988z!Emscripten NODEFS has a buggy dupcCshd}tj�tj�t�d|�}tjtdd��
t�	|�}Wd�n1s%wYt
|t�d��dS)Nzwin64python2.npy�datazReading.*this warning\.��matchr)r�r�r��dirname�__file__�pytest�warns�UserWarningrmr�rrn)�fnamer�r�rLrLrM�%test_python2_python3_interoperabilitys�r�c	Cs�tj�tj�t�d�}tjdtddgtd�}dD]�}tj�||�}dD]T}tj	|d|d�}|�
d	�r;|d
}|��n|}|dkri|�d�rit
t|d
t��t|dd�|dd��t|d�|�|d�q#t
t|d
t��t||�q#|�d�r�|�
d	�r�tj	|dd�}tt|jd
�|��tj	|dddd�}tt|jd
�|��qtttj	|dd�tttj	|dddd�qdS)Nr�u優良s不良r)�py2-objarr.npy�py2-objarr.npzzpy3-objarr.npyzpy3-objarr.npz)�bytes�latin1T�rT�encodingz.npzrr��py2rrrSF)rT�fix_importsr�)r�r�r�r�r�rm�arrayr�rhr��endswith�close�
startswithr�
isinstanceror�encoder�r�UnicodeError�__getitem__�ImportError)�data_dir�expectedr�r�r��data_fr�rLrLrM�test_pickle_python2_python3sN
��




�

�
���r�cCs�tj�tj�t�d�}tj�|d�}tttj|ddd�tj�|d�}tj|ddd��}tt|j	d�Wd�n1s=wYtj�|d�}tttj
|tjdgtd	�dd
�dS)Nr�r�Fr�r�r�rzpickle-disabled.npyrrS)
r�r�r�r�r�rrjrmr�r��saver�rh)r�r�r�r[rLrLrM�test_pickle_disallowJs
��
�r�)rr�i1)r�r�r�r�)r )rr@rrAcCs8t�|j�}t||�t�d|�}t|�}t||�dS)Nr)r�descr_to_dtype�descrrcrmr�r^r)r��dt1r�r]rLrLrM�test_descr_to_dtypeYs
2
r�cCs�t�}dd�td�D�}tjd|d�}tj||dd�tjdd	��}t�d
dt	�t�||�t
|djt	u�Wd�n1sBwY|�d�|�
�}t
t|�tjdk�|�d�tj|d
d�}t||�tttj||d�dS)NcS�g|]
}d|dtf�qS�z%d�d��float��.0r�rLrLrM�
<listcomp>��z$test_version_2_0.<locals>.<listcomp>����r�rr��versionT��record�alwaysr�r�@
��max_header_size�r6r)rr�rmrnrrV�warnings�catch_warnings�filterwarningsr�r�category�seek�readline�len�ARRAY_ALIGNrXrrrj)r[r�r��w�header�nrLrLrM�test_version_2_0�s �


r�c	Cs,dd�td�D�}tjd|d�}tj�|d�}tj�|d�}tttj	|d|j
|jd	d
�tj	|d|j
|jdd
�}||d<|��tj	|d
dd�}t
||�tjdd��,}t�ddt�tj	|d|j
|jdd
�}t|djtu�||d<|��Wd�n1s�wYtj	|d
dd�}t
||�dS)NcSr�r�r�r�rLrLrMr��r�z+test_version_2_0_memmap.<locals>.<listcomp>r�r�rzversion2_01.npyzversion2_02.npyrxr�)ryr
rzr�r�.r}r�)ryr�Tr�r�r�r)r�rmrnr�r�r�rrjrr�r
rzr�rr�r�r�r�rr�)r�r�r��tf1�tf2r�r�rLrLrM�test_version_2_0_memmap�s2��
�
�r��	mmap_moder}cCstj�|d�}tjddddd�}tjtdd��t�||�Wd�n1s*wYtj	t
d	d��tj||d
�Wd�n1sHwYtj	t
d	d��tj||dd�Wd�n1sgwYtj||d
d�}t||�tj||dd�}t||�dS)Nzlarge_header.npyr6�i,�'r�r�.*format 2.0r��
Header.*large)r�� N)r�r�T)r�rT� �)
r�r�r�rmr�r�r�r�r��raisesrjr�r)r�r�r[rZ�resrLrLrM�test_huge_header�s���
rcCstj�|d�}tjddddd�}tjtdd��tj||d	�Wd�n1s+wYtj	t
d
d��t�|�dWd�n1sIwYtj	t
d
d��tj|dd
�dWd�n1siwYtj|dd�d}t||�tj|dd
�d}t||�dS)Nzlarge_header.npzr6r�r�r�rr�r�rkr�rZr�r�TrSr�)
r�r�r�rmr�r�r�r�r�r�rjr�r)r�r[rZr�rLrLrM�test_huge_header_npz�s���
rc	Cs�t�}t�d�}tj||dd�t�||�tj||dd�t�||�tj||dd�t�||�gd�}|D]}ttd��tj|||d�Wd�n1sRwYq8dS)Nr6r�r�r�))r6r6)rr)rr6r)�rz we only support format version.*)rrm�arangerrVrrj)r[rZ�bad_versionsr�rLrLrM�test_write_version�s"
����r)s�NUMPYs�NUMPYs�NUMPYs�NUMPYs�NUMPYs�NUMPY��)s�NUMPYsNUMPYs�numpys�MATLBs�NUMPYs�NUMPY�cCs�t�}t�}tjdtd�}tj||dd�tj||dd�|�d�|�d�t�|�}t�|�}t|dk�t|dk�t|�	�tj
k�t|�	�tj
k�dS)N�rr�rr�r�r�r)rrmrnr�rrVr��
read_magicr�tell�	MAGIC_LEN)�s1�s2rZ�version1�version2rLrLrM�test_read_magics



rcCs$tD]
}t|�}tttj|�qdSrN)�malformed_magicrrrjrrX��magicr[rLrLrM�test_read_magic_bad_magic3s�rcCs(ttD]
}t|�}tttj|�qdSrN)�bad_version_magicrrrrjrrXrrLrLrM�test_read_version_1_0_bad_magic9s�rcCsDtttjdd�tttjdd�tttjdd�tttjdd�dS)Nrr6�)rrjrrrLrLrLrM�test_bad_magic_args?srcCsLt�}t�ddd�}t�||�t�}dddfg|d<tttj||�dS)NFz<i8�rzr{r��xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrr�)r�tupler�write_array_header_1_0rrj��sr�rLrLrM�test_large_headerFsrcC�rt�}tjdtd�}tj||dd�|�tj�t�|�\}}}t	|�
�tjdk�t	|||fddtfk�dS)Nrrr�r�rF)rrmrnr�rrVr�r
�read_array_header_1_0rr	r��rrZrz�fortranr
rLrLrM�test_read_array_header_1_0P�r#cCr)Nrrr�r�rF)rrmrnr�rrVr�r
�read_array_header_2_0rr	r�r!rLrLrM�test_read_array_header_2_0]r$r&cCs�t�}tttj|�td�}tttj|�td�}tttj|�td�}tttj|�ddddd�}t�}t�||�tttj|�dS)	N�1ss@�NUMPY6{'descr': 'x', 'shape': (1, 2), }                    
�r6rFrr)rzr{r��extrakey)rrrjrr rrrLrLrM�test_bad_headerjs$��r*cCs�tjdks
tjdkrt�d�tj�|d�}zddl}|�ddd|g�Wnt	y3t�d	�Ynwt
|d
��}|�d�t�
d�}t�||�Wd�n1sTwYt
|d
��}|�d�t�|�}Wd�n1sswYt||�dS)N�win32�cygwinz)Unknown if Windows has sparse filesystems�sparse_filer�truncatez-s�
5368709120zCould not create 5GB large filerwlrBr|)�sys�platformr��skipr�r�r��
subprocess�
check_call�	Exceptionr�r�rmrr�r�r)r��tf_name�spr[r�r}rLrLrM�test_large_file_support�s&
�

�
�r8z
flaky on PyPyztest requires 64-bit systeml)�
free_bytescCs�d}z
tj|tjd�}Wntyt�d�Ynwtj�|d�}t	|d��}tj
||d�Wd�n1s9wY~t	|d��}t�|�d}Wd�n1sVwY|j|ksbJ�dS)	N)i@rrzCould not create large file�
large_archiverwrkr|rZ)
rm�empty�uint8�MemoryErrorr�r2r�r�r�r�r�r�rz)r�rzr�r�r[�new_arLrLrM�test_large_archive�s���r?cCsHtj�|d�}t�|�t�|��	}Wd�dS1swYdS)Nznothing.npz)r�r�r�rmr�r�)r�r��npsrLrLrM�test_empty_npz�s

"�rAc	Cstjgd�dtfdtfgd�}tj�|d�}t|d��}tj||dd�Wd�n1s.wYt|d	��
}t�	|�}Wd�n1sHwYt
||�t|d��-}tt��tj||dd�Wd�n1sowYWd�dSWd�dS1s�wYdS)
N)�r6rr(rBr(�intu整形rzunicode.npyrw)rrr�r|)
rmr�rCr�r�r�r�rrVrXrrr�)r�rZr�r[r]rLrLrM�test_unicode_field_names�s(
��	��

��"�rDcCs�gd�gd�gd�gd�fD]9\}}}dd�ttj�D�D])}t�}t�||r+d|fn|df|t�d|tfg�d	��t|�	��|ksFJ�qqdS)
N)F��)F��)TrGrF)T�rHcSsg|]}d|�qS)rrLr�rLrLrMr��sz+test_header_growth_axis.<locals>.<listcomp>r� r)
r�r�GROWTH_AXIS_MAX_DIGITSrrrmr
rCr�rW)�is_fortran_array�dtype_space�expected_header_lengthrIr�rLrLrM�test_header_growth_axis�s����rOzdt, fail�S3�some�stuff)�metadata�subarrayr)�rrzPyPy bug in error formattingcCs�tjd|d�}t�}tt��t�||�Wd�n1swY|�d�|rGtt��t�	|�Wd�dS1s@wYdSt�	|�}ddl
m}t||�||j
�|j
usaJ�||j
�|j
uskJ�dS)Nrrr)�
drop_metadata)rmrnrrr�r�r�rrjr��numpy.lib.utilsrVrr
)r��failrZ�bufr]rVrLrLrM�test_metadata_dtype�s
�

"�

rZ)l�__doc__r0r�r�r��ior�numpyrm�
numpy.testingrrrrrrr	�numpy.testing._private.utilsr
�	numpy.librr<�int8�uint16�int16�uint32�int32�uint64�int64�float32�float64�	complex64�
complex128rh�scalarsrd�scalar�endianr
�newbyteorderr�astype�basic�extendr��reshape�T�Pdescr�PbufferT�Ndescr�NbufferTr�rerCr^r_r`rcrgrirlrs�mark�skipif�slowr�r�r��dt2�dt3�dt4�dt5�dt6�parametrizer��version_info�xfailr�r�r�rCr�r�r�rrrrrrrrrrr#r&r*r8�intpr�r?rArDrOr��implementationr�rZrLrLrLrM�<module>s�$�
���
�
��&�&���
	
��
/������


��
����
�
���
1





���
���
�