Ë
    6Š·j°¡  ã                   ór  — d Z ddlZddlZddlZddlmZ ddlZddlZddl	m
Z
 ddlmZmZmZmZmZmZ ddlmZ ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  e gZ!g Z"e!D ]È  Z#dD ]Á  Z$ ejJ                  e#«      jM                  e$«      Z% ejN                  d«      jQ                  e%«      Z)e"jU                   ejV                  g e%¬	«       ejV                  d
e%¬	«      e)e)jY                  d«      e)jY                  d«      jZ                  e)jY                  d«      ddd…ddd…f   g«       ŒÃ ŒÊ g d¢Z.ddgddgddggdfddgddgddggdfgZ/dddddg d¢fddgfdd d!d"gfd#d$gZ0ddgd%dd&d%d'gddgd(dgfd)d*fd+d,ddgddggdfddgd-dd.d-d/gddgdd(gfd0d1fd2d3ddgddggdfgZ1 ejV                  e/ ejJ                  e.«      jM                  d4«      ¬	«       ejV                  e1 ejJ                  e0«      jM                  d4«      ¬	«       ejV                  e/ ejJ                  e.«      jM                  d5«      ¬	«       ejV                  e1 ejJ                  e0«      jM                  d5«      ¬	«       ejd                  d(d6g¬	«      gZ3 G d7„ d8e«      Z4d9„ Z5d:„ Z6d;„ Z7d<„ Z8d=„ Z9d>„ Z:d?„ Z;d@„ Z<dA„ Z=ej|                  j                  edB¬C«      ej|                  j€                  dD„ «       «       ZAdE„ ZB ejJ                  dFd*¬G«      ZC ejJ                  dHdIgdJdJgd(dKgdLœ«      ZD ejJ                  dMdNgdJeDgdOœ«      ZE ejJ                  g dP¢dJgdz  dOœ«      ZF ejJ                  dHdIgdJdJgd(dKgdQdRgdSœ«      ZG ejJ                  g g ddTœ«      ZHej|                  j“                  dUeCeDeEeFeGeHg«      dV„ «       ZJej|                  j—                  dW«      dX„ «       ZLdY„ ZMej|                  j“                  dU ejJ                  dHej*                  fdIej.                  fdMej2                  fgd*¬G«       ejJ                  dZ ejJ                  dHdIgd[d[gddgdd\œd]f«      d^fg«       ejJ                  d_g«       ejJ                  dZ ejJ                   ejJ                   ejJ                  dHdIgd[d[gddgdd\œ«      d]f«      d^f«      fg«       ejJ                  dH ejJ                   ejJ                   ejJ                   ejJ                  dHeNfdI ejJ                  dHdIgd[d[gddgdd\œ«      fg«      d]f«      d^f«      d`f«      fg«      g«      da„ «       ZOdb„ ZPej|                  j                  edB¬C«      dc„ «       ZQej|                  j“                  dddedg«      df„ «       ZRdg„ ZSdh„ ZTg di¢ZUg dj¢ZVdk„ ZWdl„ ZXdm„ ZYdn„ ZZdo„ Z[dp„ Z\dq„ Z]dr„ Z^ds„ Z_ej|                  j                  e dt¬C«      ej|                  j€                   edu¬v«      ej|                  jÁ                  dw¬C«      dx„ «       «       «       «       Zady„ Zbdz„ Zcd{„ Zdej|                  j“                  dU ejJ                  dHdIgee ejJ                  d|d}d~i¬«      gdOœ«       ejJ                  eNd}d~i¬«       ejJ                  d€eNd�ffgd}d~i¬«       ejJ                  dHdIgee ejJ                  dMg ejJ                  eNi ¬«      gdOœ«      gdOœ«      g«      d‚„ «       Zfy)ƒ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()
    ...     # XXX: arr is not a dict, items gets called on it
    ...     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': '>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)Úformat)ÚIS_64BITÚIS_WASMÚassert_Úassert_array_equalÚassert_raisesÚassert_raises_regex)Úrequires_memoryz<>iÜ  ©Údtypeé
   )é   é2   éÿÿÿÿé   )©ÚxÚi4©r   ©ÚyÚf8©r   r   ©ÚzÚu1é   g      @g      @é   é   g      @g      @é	   r   ÚInfo)ÚvalueÚc16)Úy2r   ÚInfo2)©ÚnameÚS2)r#   r$   r   )Úy3r   r   )Úz3Úu4r   r'   )Úz2Úb1)Úcolorr)   Úinfo)ÚNameÚU8)ÚValuer$   r   r   ù              @Únny              @é   ÚNNTÚcc)r7   r4   ù              @Úooy              @ÚOOFÚdd)r;   r9   ú<ú>)Úc©z<f8©é   r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚBytesIOSRandomSizec                 óN   •— dd l }|j                  d|«      }t        ‰| �  |«      S )Nr   r6   )ÚrandomÚrandintÚsuperÚread)ÚselfÚsizerF   Ú	__class__s      €úQ/root/workspace/.venv/lib/python3.12/site-packages/numpy/lib/tests/test_format.pyrI   zBytesIOSRandomSize.read•  s%   ø€ ÛØ�~‰~˜a Ó&ˆÜ‰w‰|˜DÓ!Ð!ó    ©N)Ú__name__Ú
__module__Ú__qualname__rI   Ú__classcell__)rL   s   @rM   rD   rD   ”  s   ø„ ÷"ñ "rN   rD   c                 ó¦   — t        «       }t        j                  || «       t        |j                  «       «      }t        j                  |d¬«      }|S )NT©Úallow_pickle©r   r   Úwrite_arrayÚgetvalueÚ
read_array©ÚarrÚfÚf2Úarr2s       rM   Ú	roundtripr`   ›  s@   € Ü‹	€AÜ
×Ñ�q˜#ÔÜ	�—‘“Ó	€BÜ×Ñ˜R¨dÔ3€DØ€KrN   c                 ó¢   — t        «       }t        j                  || «       t        |j	                  «       «      }t        j
                  |«      }|S rO   )r   r   rX   rD   rY   rZ   r[   s       rM   Úroundtrip_randsizerb   £  s>   € Ü‹	€AÜ
×Ñ�q˜#ÔÜ	˜AŸJ™J›LÓ	)€BÜ×Ñ˜RÓ €DØ€KrN   c                 ó¨   — t        «       }t        j                  || «       t        |j                  «       dd «      }t        j                  |«      }|S )Nr   r   rW   r[   s       rM   Úroundtrip_truncatedrd   «  sE   € Ü‹	€AÜ
×Ñ�q˜#Ôä	�—‘“˜a Ð#Ó	$€BÜ×Ñ˜RÓ €DØ€KrN   c                 ó    — t        | |k(  «       y rO   )r   )Úo1Úo2s     rM   Úassert_equal_rh   ³  s   € ÜˆB�"‰HÕrN   c                  óV   — t         t        z   D ]  } t        | «      }t        | |«       Œ y rO   )Úbasic_arraysÚrecord_arraysr`   r   ©r\   r_   s     rM   Útest_roundtriprm   ·  s)   € ÜœmÑ+ò &ˆÜ˜‹~ˆÜ˜3 Õ%ñ&rN   c                  ó~   — t         t        z   D ]-  } | j                  t        k7  sŒt	        | «      }t        | |«       Œ/ y rO   )rj   rk   r   Úobjectrb   r   rl   s     rM   Útest_roundtrip_randsizerp   ½  s6   € ÜœmÑ+ò *ˆØ�9‰9œÓÜ% cÓ*ˆDÜ˜s DÕ)ñ*rN   c                  ól   — t         D ]+  } | j                  t        k7  sŒt        t        t
        | «       Œ- y rO   )rj   r   ro   r	   Ú
ValueErrorrd   ©r\   s    rM   Útest_roundtrip_truncatedrt   Ä  s,   € Üò @ˆØ�9‰9œÓÜœ*Ô&9¸3Õ?ñ@rN   c                 óL  — | dz  }t         D ]å  }|j                  t        k7  sŒt        |d«      5 }t	        j
                  ||«       d d d «       t        |d«      5 }|j                  dt        j                  «       |j                  «        d d d «       t        |d«      5 }t        j                  t        |j                  dk(  rdnd¬	«      5  t	        j                  |«      }d d d «       d d d «       Œç y # 1 sw Y   Œ°xY w# 1 sw Y   ŒwxY w# 1 sw Y   Œ,xY w# 1 sw Y   �ŒxY w)
Nza.npyÚwbzrb+r   Úrbr   z9EOF: reading array header, expected (\d+) bytes got (\d+)zŠFailed to read all data for array\. Expected \(.*?\) = (\d+) elements, could only read (\d+) elements\. \(file seems not fully written\?\)©Úmatch)rj   r   ro   Úopenr   rX   ÚseekÚosÚSEEK_ENDÚtruncateÚpytestÚraisesrr   rK   rZ   )Útmp_pathÚpathr\   r]   Ú_s        rM   Útest_file_truncatedr„   É  s  € Ø�gÑ€DÜò -ˆØ�9‰9œÓÜ�d˜DÓ!ð + QÜ×"Ñ" 1 cÔ*÷+ô �d˜EÓ"ð  aØ—‘�rœ2Ÿ;™;Ô'Ø—
‘
”÷ô �d˜DÓ!ð - QÜ—]‘]Üð Ÿ™ Qšñ:ð>ôñ -ô ×)Ñ)¨!Ó,�A÷-÷-ð -ñ-÷+ð +ú÷ð ú÷-ð -ú÷-ñ -ús;   ¯C5Á1DÂ-DÃDÃ"DÃ5C>	ÄD
	ÄDÄDÄD#	c                  ó´   — t        j                  dt        j                  t        t        j
                  dz   f«      ¬«      } t        | «      }t        | |«       y )Nr6   r   )ÚnpÚonesr   Ústrr   ÚBUFFER_SIZEr`   r   )Úlong_str_arrÚlong_str_arr2s     rM   Útest_long_strrŒ   â  s?   € ä—7‘7˜1¤B§H¡H¬c´6×3EÑ3EÈÑ3IÐ-JÓ$KÔL€LÜ˜lÓ+€MÜ�| ]Õ3rN   zmemmap doesn't work correctly)Úreasonc                 ó~  — t        t        t        z   «      D �]  \  }}|j                  j                  rŒt
        j                  j                  | d|› d�«      }t
        j                  j                  | d|› d�«      }t        |d«      5 }t        j                  ||«       d d d «       |j                  j                  xr |j                  j                   }t        j                  |d|j                  |j                  |¬«      }||d<   |j!                  «        t        |d«      5 }|j#                  «       }d d d «       t        |d«      5 }|j#                  «       }	d d d «       t%        	«       t        j                  |d	¬
«      }|j!                  «        �Œ‚ y # 1 sw Y   ŒüxY w# 1 sw Y   ŒqxY w# 1 sw Y   ŒXxY w)NÚnormalz.npyÚmemmaprv   úw+)Úmoder   ÚshapeÚfortran_order.rw   Úr)r’   )Ú	enumeraterj   rk   r   Ú	hasobjectr|   r‚   Újoinrz   r   rX   ÚflagsÚf_contiguousÚc_contiguousÚopen_memmapr“   ÚflushrI   rh   )
ÚtmpdirÚir\   ÚnfnÚmfnÚfpr”   ÚmaÚnormal_bytesÚmemmap_bytess
             rM   Útest_memmap_roundtripr¦   é  sv  € ô œL¬=Ñ8Ó9ó ‰ˆˆ3Ø�9‰9×Òàä�g‰g�l‰l˜6 V¨A¨3¨dÐ#3Ó4ˆÜ�g‰g�l‰l˜6 V¨A¨3¨dÐ#3Ó4ˆÜ�#�t‹_ð 	( Ü×Ñ˜r 3Ô'÷	(ð �I‰I×"Ñ"ÒA¨3¯9©9×+AÑ+AÐ'Að 	ä×Ñ ¨$°c·i±iØ&)§i¡i¸}ôNˆàˆˆ3‰Ø
�‰Œ
ô �#�t‹_ð 	% ØŸ7™7›9ˆL÷	%ä�#�t‹_ð 	% ØŸ7™7›9ˆL÷	%ä�l LÔ1ô ×Ñ ¨#Ô.ˆØ
�‰Ž
ñ5÷	(ð 	(ú÷	%ð 	%ú÷	%ð 	%ús$   Â	FÄ&F'ÅF3ÆF$	Æ'F0	Æ3F<	c                 ó(  — t         j                  j                  dd«      }t        j                  j                  | d«      }t        j                  ||¬«       t        j                  |«      5 }|d   }d d d «       t        |«       y # 1 sw Y   ŒxY w)NéÈ   zcompressed.npzrs   r\   )	r†   rF   Úrandr|   r‚   r˜   Úsavez_compressedÚloadr   )rž   r\   Únpz_fileÚnpzÚarr1s        rM   Útest_compressed_roundtripr¯   	  sq   € Ü
�)‰)�.‰.˜˜cÓ
"€CÜ�w‰w�|‰|˜FÐ$4Ó5€HÜ×Ñ˜ cÕ*Ü	�‰�Ó	ð ˜cØ�5‰zˆ÷ä�s˜DÕ!÷ð ús   Á-BÂBz
i1, i4, i1)ÚalignÚaÚbr   é   )ÚnamesÚformatsÚoffsetsr?   Úd)r´   rµ   )r±   Ú r²   ÚaaÚbb)r´   rµ   r¶   Útitles)r´   rµ   ÚitemsizeÚdtc                 óD  — t        j                  d|«      }t        d«      D ]
  }|dz   ||<   Œ t        j                  j                  | d«      }t        j                  ||¬«       t        j                  |«      5 }|d   }d d d «       t        |«       y # 1 sw Y   ŒxY w)Nr   rB   zaligned.npzrs   r\   )	r†   ÚzerosÚranger|   r‚   r˜   Úsavezr«   r   )rž   r½   r\   rŸ   r¬   r­   r®   s          rM   Útest_load_padded_dtyperÂ   !  s‰   € ä
�(‰(�1�b‹/€CÜ�1‹Xò ˆØ�Q‘ˆˆAŠðä�w‰w�|‰|˜F MÓ2€HÜ‡H�HˆX˜3ÕÜ	�‰�Ó	ð ˜cØ�5‰zˆ÷ä�s˜DÕ!÷ð ús   Á;BÂBzJignore:.*align should be passed:numpy.exceptions.VisibleDeprecationWarningc            	      óª  — t         j                  j                  t         j                  j                  t        «      d«      } t        j                  d t        ddgt        ¬«      }dD �]é  }t         j                  j                  | |«      }dD ]Ñ  }t        j                  |d|¬«      }|j                  d	«      r|d
   }|j                  «        n|}|dk(  ra|j                  d«      rPt        t        |d   t        «      «       t!        |d d |d d «       t!        |d   j#                  |«      |d   «       Œªt        t        |d   t$        «      «       t!        ||«       ŒÓ |j                  d«      s�Œ|j                  d	«      rˆt        j                  |d¬«      }t'        t(        |j*                  d
«       |j                  «        t        j                  |ddd¬«      }t'        t,        |j*                  d
«       |j                  «        �Œ¦t'        t(        t
        j                  |d¬«       t'        t,        t
        j                  |ddd¬«       �Œì y )NÚdatau   å„ªè‰¯s   ä¸�è‰¯r   )zpy2-np0-objarr.npyúpy2-objarr.npyúpy2-objarr.npzzpy3-objarr.npyzpy3-objarr.npz)ÚbytesÚlatin1T©rV   Úencodingz.npzr   rÈ   Úpy2r   r   rU   F)rV   Úfix_importsrÊ   )r|   r‚   r˜   ÚdirnameÚ__file__r†   ÚarrayrÀ   ro   r«   ÚendswithÚcloseÚ
startswithr   Ú
isinstancerˆ   r   ÚencoderÇ   r	   ÚUnicodeErrorÚ__getitem__ÚImportError)Údata_dirÚexpectedÚfnamer‚   rÊ   Údata_frÄ   s          rM   Útest_pickle_python2_python3rÜ   -  sÌ  € ô
 �w‰w�|‰|œBŸG™GŸO™O¬HÓ5°vÓ>€Hä�x‰x˜œu nØ4ð6ä$ô&€Hð6ó #1ˆä�w‰w�|‰|˜H eÓ,ˆà+ò 	3ˆHÜ—W‘W˜T°¸xÔHˆFØ�~‰~˜fÔ%Ø˜c‘{�Ø—‘•à�à˜8Ò#¨×(8Ñ(8¸Ô(?Üœ
 4¨¡7¬CÓ0Ô1Ü" 4¨¨ 9¨h°s¸¨mÔ<ä" 4¨¡8§?¡?°8Ó#<¸hÀr¹lÕKäœ
 4¨¡7¬EÓ2Ô3Ü" 4¨Õ2ð	3ð" ×Ñ˜EÖ"Ø�~‰~˜fÔ%Ü—w‘w˜t°$Ô7�Üœl¨D×,<Ñ,<¸cÔBØ—
‘
”Ü—w‘w˜t°$ÀEØ(0ô2�äœk¨4×+;Ñ+;¸SÔAØ—
‘
–äœl¬B¯G©G°TØ+/õ1äœk¬2¯7©7°DØ+/¸UØ'/÷1ñC#1rN   c           	      ó’  — t         j                  j                  t         j                  j                  t        «      d«      }t         j                  j                  |d«      }t        t        t        j                  |dd¬«       t         j                  j                  |d«      }t        j                  |dd¬«      5 }t        t        |j                  d«       d d d «       t         j                  j                  | d«      }t        t        t        j                  |t        j                  d gt        ¬	«      d¬
«       y # 1 sw Y   ŒfxY w)NrÄ   rÅ   FrÈ   rÉ   rÆ   r   zpickle-disabled.npyr   rU   )r|   r‚   r˜   rÍ   rÎ   r	   rr   r†   r«   rÖ   ÚsaverÏ   ro   )rž   rØ   r‚   r]   s       rM   Útest_pickle_disallowrß   ^  sØ   € Ü�w‰w�|‰|œBŸG™GŸO™O¬HÓ5°vÓ>€Hä�7‰7�<‰<˜Ð"2Ó3€DÜ”*œbŸg™g tØ$¨xõ9ô �7‰7�<‰<˜Ð"2Ó3€DÜ	�‰� E°HÔ	=ð 6ÀÜ”j !§-¡-°Ô5÷6ô �7‰7�<‰<˜Ð 5Ó6€DÜ”*œbŸg™g t¬R¯X©X°t°fÄFÔ-KØ$ö&÷	6ð 6ús   Â<D=Ä=Er   Úi1)r´   rµ   r¶   r¼   )r   )r    )r   r@   r   rA   c                 ó´   — t        j                  | j                  «      }t        || «       t	        j
                  d| «      }t        |«      }t        ||«       y )Nr   )r   Údescr_to_dtypeÚdescrrh   r†   r¿   r`   r   )r½   Údt1r®   r_   s       rM   Útest_descr_to_dtyperå   m  sE   € ôd ×
Ñ
 §¡Ó
)€CÜ�#�rÔÜ�8‰8�A�r‹?€DÜ�T‹?€DÜ�t˜TÕ"rN   c                  óô  — t        «       } t        d«      D �cg c]  }|› dz  t        f‘Œ }}t        j                  d|¬«      }t        j                  | |d¬«       t        j                  d¬«      5 }t        j                  d	d
t        «       t        j                  | |«       t        |d   j                  t        u «       d d d «       | j                  d«       | j                  «       }t        t        |«      t
        j                   z  dk(  «       | j                  d«       t        j"                  | d¬«      }t%        ||«       t'        t(        t
        j                  | |d«       y c c}w # 1 sw Y   Œ­xY w)Néô  éd   éè  r   ©r   r   ©ÚversionT©ÚrecordÚalwaysr¸   r   é@ ©Úmax_header_size©r6   r   )r   rÀ   Úfloatr†   r‡   r   rX   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr   Úcategoryr{   ÚreadlineÚlenÚARRAY_ALIGNrZ   r   r	   rr   )r]   rŸ   r½   r·   ÚwÚheaderÚns          rM   Útest_version_2_0r   ¥  s!  € Ü‹	€Aä).¨s«Ö	4 AˆaˆS�C‰<œÒ
Ð	4€BÐ	4Ü
�‰�˜BÔ€Aä
×Ñ�q˜! VÕ,Ü	×	 Ñ	 ¨Ô	-ð .°Ü×Ñ ¨"¬kÔ:Ü×Ñ˜1˜aÔ Ü��!‘—‘¤Ð,Ô-÷.ð ‡F�Fˆ1„IØ�Z‰Z‹\€FÜŒC�‹Kœ&×,Ñ,Ñ,°Ñ1Ô2à‡F�Fˆ1„IÜ×Ñ˜!¨VÔ4€AÜ�q˜!Ôô ”*œf×0Ñ0°!°Q¸Õ?ùò' 
5÷.ð .ús   ˜E)Á2AE.Å.E7c           	      óÔ  — t        d«      D �cg c]  }|› dz  t        f‘Œ }}t        j                  d|¬«      }t        j
                  j                  | d«      }t        j
                  j                  | d«      }t        t        t        j                  |d|j                  |j                  d¬	«       t        j                  |d|j                  |j                  d
¬	«      }||d<   |j                  «        t        j                  |dd¬«      }t        ||«       t        j                   d¬«      5 }t        j"                  ddt$        «       t        j                  |d|j                  |j                  d ¬	«      }t'        |d   j(                  t$        u «       ||d<   |j                  «        d d d «       t        j                  |dd¬«      }t        ||«       y c c}w # 1 sw Y   Œ3xY w)Nrç   rè   ré   r   zversion2_01.npyzversion2_02.npyr‘   ró   )r’   r   r“   rì   rê   .r•   rð   )r’   rò   Trí   rï   r¸   r   )rÀ   rô   r†   r‡   r|   r‚   r˜   r	   rr   r   rœ   r   r“   r�   r   rõ   rö   r÷   rø   r   rù   )rž   rŸ   r½   r·   Útf1Útf2r£   rý   s           rM   Útest_version_2_0_memmapr  ¾  s‚  € ô */¨s«Ö	4 AˆaˆS�C‰<œÒ
Ð	4€BÐ	4Ü
�‰�˜BÔ€AÜ
�'‰'�,‰,�vÐ0Ó
1€CÜ
�'‰'�,‰,�vÐ0Ó
1€Cô ”*œf×0Ñ0°#¸DÈÏÉØ"#§'¡'°6õ;ô 
×	Ñ	˜C d°!·'±'Ø"#§'¡'°6ô
;€Bà€B€s�GØ‡H�H„JÜ	×	Ñ	˜C c¸6Ô	B€BÜ�r˜1Ôä	×	 Ñ	 ¨Ô	-ð °Ü×Ñ ¨"¬kÔ:Ü×Ñ ¨$°a·g±gØ&'§g¡g°tô=ˆä��!‘—‘¤Ð,Ô-Øˆˆ3‰Ø
�‰Œ
÷ô 
×	Ñ	˜C c¸6Ô	B€Bä�r˜1Õùò5 
5÷ ð ús   ŽGÄ/A=GÇG'Ú	mmap_moder•   c                 ó¸  — t         j                  j                  | d«      }t        j                  dddz  dz   ¬«      }t        j                  t        d¬«      5  t        j                  ||«       d d d «       t        j                  t        d	¬«      5  t        j                  ||¬
«       d d d «       t        j                  t        d	¬«      5  t        j                  ||d¬«       d d d «       t        j                  ||d¬«      }t        ||«       t        j                  ||d¬«      }t        ||«       y # 1 sw Y   ŒÉxY w# 1 sw Y   ŒšxY w# 1 sw Y   ŒjxY w)Nzlarge_header.npyr6   úi,é'  rŸ   r   ú.*format 2.0rx   úHeader.*large)r  é N  )r  rò   T)r  rV   é ¿ )r|   r‚   r˜   r†   rÏ   r   Úwarnsrø   rÞ   r€   rr   r«   r   )rž   r  r]   r\   Úress        rM   Útest_huge_headerr  Ý  s  € ä
�‰�‰�VÐ/Ó0€AÜ
�(‰(�1˜D 5™L¨3Ñ.Ô
/€Cä	�‰”k¨Ô	8ñ Ü
�‰��3Œ÷ô 
�‰”z¨Ô	9ñ (Ü
�‰�˜YÕ'÷(ô 
�‰”z¨Ô	9ñ ?Ü
�‰�˜Y¸Õ>÷?ô �'‰'�!˜y°tÔ
<€CÜ�s˜CÔ ä
�'‰'�!˜y¸&Ô
A€CÜ�s˜CÕ ÷ð ú÷(ð (ú÷?ð ?ús$   ÁD8ÂEÃEÄ8EÅEÅEc                 óÈ  — t         j                  j                  | d«      }t        j                  dddz  dz   ¬«      }t        j                  t        d¬«      5  t        j                  ||¬	«       d d d «       t        j                  t        d
¬«      5  t        j                  |«      d    d d d «       t        j                  t        d
¬«      5  t        j                  |d¬«      d    d d d «       t        j                  |d¬«      d   }t        ||«       t        j                  |d¬«      d   }t        ||«       y # 1 sw Y   ŒÐxY w# 1 sw Y   Œ xY w# 1 sw Y   ŒnxY w)Nzlarge_header.npzr6   r  r  rŸ   r   r	  rx   rs   r
  r\   r  rñ   TrU   r  )r|   r‚   r˜   r†   rÏ   r   r  rø   rÁ   r€   rr   r«   r   )rž   r]   r\   r  s       rM   Útest_huge_header_npzr  ñ  s  € Ü
�‰�‰�VÐ/Ó0€AÜ
�(‰(�1˜D 5™L¨3Ñ.Ô
/€Cä	�‰”k¨Ô	8ñ Ü
�‰�˜Õ÷ô 
�‰”z¨Ô	9ñ Ü
�‰�‹
�5Ò÷ô 
�‰”z¨Ô	9ñ 1Ü
�‰� 5Ô)¨%Ò0÷1ô �'‰'�! $Ô
'¨Ñ
.€CÜ�s˜CÔ ä
�'‰'�! VÔ
,¨UÑ
3€CÜ�s˜CÕ ÷ð ú÷ð ú÷1ð 1ús$   ÁE ÂEÃEÅ E	ÅEÅE!c                  óæ  — t        «       } t        j                  d«      }t        j                  | |d¬«       t        j                  | |«       t        j                  | |d ¬«       t        j                  | |«       t        j                  | |d¬«       t        j                  | |«       g d¢}|D ]3  }t        t        d«      5  t        j                  | ||¬«       d d d «       Œ5 y # 1 sw Y   Œ@xY w)Nr6   ró   rë   rê   ))r6   r6   )r   r   )r   r6   r   )éÿ   r  z we only support format version.*)r   r†   Úaranger   rX   r
   rr   )r]   r\   Úbad_versionsrì   s       rM   Útest_write_versionr    sÎ   € Ü‹	€AÜ
�)‰)�A‹,€Cä
×Ñ�q˜# vÕ.Ü
×Ñ�q˜#Ôä
×Ñ�q˜# tÕ,Ü
×Ñ�q˜#Ôä
×Ñ�q˜# vÕ.Ü
×Ñ�q˜#Ôò€Lð  ò 8ˆÜ ¤Ø!CóEñ 	8ä×Ñ˜q #¨wÕ7÷	8ð 	8ñ8÷	8ð 	8ús   ÃC'Ã'C0	)s   “NUMPYs   “NUMPY  s   “NUMPY s   “NUMPY s   “NUMPYs   “NUMPYÿÿ)s   ’NUMPY s    NUMPY s   “numpy s   “MATLB s   “NUMPYs   “NUMPYrN   c                  ó:  — t        «       } t        «       }t        j                  dt        ¬«      }t	        j
                  | |d¬«       t	        j
                  ||d¬«       | j                  d«       |j                  d«       t	        j                  | «      }t	        j                  |«      }t        |dk(  «       t        |dk(  «       t        | j                  «       t        j                  k(  «       t        |j                  «       t        j                  k(  «       y )N©r   r³   r   ró   rë   rê   r   )r   r†   r‡   rô   r   rX   r{   Ú
read_magicr   ÚtellÚ	MAGIC_LEN)Ús1Ús2r\   Úversion1Úversion2s        rM   Útest_read_magicr   2  sÆ   € Ü	‹€BÜ	‹€Bä
�'‰'�&¤Ô
&€Cä
×Ñ�r˜3¨Õ/Ü
×Ñ�r˜3¨Õ/à‡G�GˆA„JØ‡G�GˆA„Jä× Ñ  Ó$€HÜ× Ñ  Ó$€HäˆH˜ÑÔÜˆH˜ÑÔäˆB�G‰G‹Iœ×)Ñ)Ñ)Ô*ÜˆB�G‰G‹Iœ×)Ñ)Ñ)Õ*rN   c                  ón   — t         D ],  } t        | «      }t        t        t        j
                  |«       Œ. y rO   )Úmalformed_magicr   r	   rr   r   rZ   ©Úmagicr]   s     rM   Útest_read_magic_bad_magicr%  G  s,   € Ü ò 8ˆÜ�E‹NˆÜ”j¤&×"3Ñ"3°QÕ7ñ8rN   c                  ó|   — t         t        z   D ],  } t        | «      }t        t        t
        j                  |«       Œ. y rO   )Úbad_version_magicr"  r   r	   rr   r   rZ   r#  s     rM   Útest_read_version_1_0_bad_magicr(  M  s1   € Ü"¤_Ñ4ò 8ˆÜ�E‹NˆÜ”j¤&×"3Ñ"3°QÕ7ñ8rN   c                  ó  — t        t        t        j                  dd«       t        t        t        j                  dd«       t        t        t        j                  dd«       t        t        t        j                  dd«       y )Nr   r6   é   )r	   rr   r   r$  © rN   rM   Útest_bad_magic_argsr,  S  sJ   € Ü”*œfŸl™l¨B°Ô2Ü”*œfŸl™l¨C°Ô3Ü”*œfŸl™l¨A¨rÔ2Ü”*œfŸl™l¨A¨sÕ3rN   c                  óº   — t        «       } ddddœ}t        j                  | |«       t        «       } ddz  dfg|d<   t        t        t        j                  | |«       y )Nr+  Fz<i8©r“   r”   rã   Á   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr*  rã   )r   r   Úwrite_array_header_1_0r	   rr   ©Úsr·   s     rM   Útest_large_headerr3  Z  sU   € Ü‹	€AØ u°uÑ=€AÜ
×!Ñ! ! QÔ'ä‹	€AØ˜s‘? EÐ*Ð+€A€g�JÜ”*œf×;Ñ;¸QÀÕBrN   c                  óx  — t        «       } t        j                  dt        ¬«      }t	        j
                  | |d¬«       | j                  t        j                  «       t	        j                  | «      \  }}}t        | j                  «       t        j                  z  dk(  «       t        |||fddt        fk(  «       y )Nr  r   ró   rë   r   F)r   r†   r‡   rô   r   rX   r{   r  Úread_array_header_1_0r   r  rü   ©r2  r\   r“   Úfortranr   s        rM   Útest_read_array_header_1_0r8  d  ó�   € Ü‹	€Aä
�'‰'�&¤Ô
&€CÜ
×Ñ�q˜# vÕ.à‡F�FŒ6×ÑÔÜ"×8Ñ8¸Ó;Ñ€Eˆ7�EäˆA�F‰F‹H”v×)Ñ)Ñ)¨QÑ.Ô/ÜˆU�G˜UÐ#¨°´uÐ'=Ñ=Õ>rN   c                  óx  — t        «       } t        j                  dt        ¬«      }t	        j
                  | |d¬«       | j                  t        j                  «       t	        j                  | «      \  }}}t        | j                  «       t        j                  z  dk(  «       t        |||fddt        fk(  «       y )Nr  r   rê   rë   r   F)r   r†   r‡   rô   r   rX   r{   r  Úread_array_header_2_0r   r  rü   r6  s        rM   Útest_read_array_header_2_0r<  q  r9  rN   c                  óÞ  — t        «       } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       dddddœ}t        «       } t        j
                  | |«       t        t        t        j                  | «       y )	Nó   1s    s@   “NUMPY 6 {'descr': 'x', 'shape': (1, 2), }                    
©r6   r   Fr   r   )r“   r”   rã   Úextrakey)r   r	   rr   r   r5  r0  r1  s     rM   Útest_bad_headerrA  ~  s·   € ä‹	€AÜ”*œf×:Ñ:¸AÔ>Ü�‹€AÜ”*œf×:Ñ:¸AÔ>ô 	�Ó€AÜ”*œf×:Ñ:¸AÔ>ô
 	ð	"ó	€Aô ”*œf×:Ñ:¸AÔ>àØØØñ	€Aô 	‹	€AÜ
×!Ñ! ! QÔ'Ü”*œf×:Ñ:¸AÕ>rN   c                 ó–  — t         j                  dk(  st         j                  dk(  rt        j                  d«       t        j
                  j                  | d«      }	 dd l}|j                  ddd|g«       t        |d
«      5 }|j                  d«       t        j                  d«      }t        j                  ||«       d d d «       t        |d«      5 }|j                  d«       t        j                  |«      }d d d «       t!        «       y # t        $ r t        j                  d	«       Y Œ¹w xY w# 1 sw Y   ŒuxY w# 1 sw Y   ŒFxY w)NÚwin32Úcygwinz)Unknown if Windows has sparse filesystemsÚsparse_filer   r~   z-sÚ
5368709120zCould not create 5GB large filerv   l        rB   rw   )ÚsysÚplatformr   Úskipr|   r‚   r˜   Ú
subprocessÚ
check_callÚ	Exceptionrz   r{   r†   r  rÞ   r«   r   )rž   Útf_nameÚspr]   r·   r•   s         rM   Útest_large_file_supportrO  ›  s  € Ü�‰˜Ò¤3§<¡<°8Ò#;Ü�‰Ð?Ô@ä�g‰g�l‰l˜6 =Ó1€Gð7ó 	 Ø
�‰�z 4¨°wÐ?Ô@ô 
ˆg�tÓ	ð  Ø	�‰ˆzÔÜ�I‰I�a‹LˆÜ
�‰��1Œ÷ô
 
ˆg�tÓ	ð  Ø	�‰ˆzÔÜ�G‰G�A‹Jˆ÷ô �q˜!Õøô ò 7Ü�‰Ð5Ö6ð7ú÷ð ú÷
ð ús*   ÁD Â=D3Ã'D?ÄD0Ä/D0Ä3D<Ä?Eztest requires 64-bit systeml        )Ú
free_byteszcrashes with low memoryc                 óâ  — d}	 t        j                  |t         j                  ¬«      }t        j                  j                  | d«      }t        |d«      5 }t        j                  |¬«       d d d «       ~t        |d«      5 }t        j                  |«      d   }d d d «       j                  |k(  sJ ‚y # t        $ r t	        j
                  d«       Y Œ¬w xY w# 1 sw Y   ŒmxY w# 1 sw Y   ŒKxY w)	N)i   @r   r   zCould not create large fileÚlarge_archiverv   rs   rw   r\   )r†   ÚemptyÚuint8ÚMemoryErrorr   rI  r|   r‚   r˜   rz   rÁ   r«   r“   )rž   r“   r±   rÚ   r]   Únew_as         rM   Útest_large_archiverW  ´  sÑ   € ð €Eð3Ü�H‰H�U¤"§(¡(Ô+ˆô �G‰G�L‰L˜ Ó1€Eä	ˆe�TÓ	ð ˜aÜ
�‰�˜Õ÷ð 	
ä	ˆe�TÓ	ð "˜aÜ—‘˜“
˜5Ñ!ˆ÷"ð �;‰;˜%ÒÐÑøô ò 3Ü�‰Ð1Ö2ð3ú÷
ð ú÷
"ð "ús)   „%B5 ÁCÂC%Â5CÃCÃC"Ã%C.c                 óÄ   — t         j                  j                  | d«      }t        j                  |«       t        j
                  |«      5 }	 d d d «       y # 1 sw Y   y xY w)Nznothing.npz)r|   r‚   r˜   r†   rÁ   r«   )rž   rÚ   Únpss      rM   Útest_empty_npzrZ  Î  sF   € ä�G‰G�L‰L˜ Ó/€EÜ‡H�HˆU„OÜ	�‰�‹ð ˜3Ø÷÷ ñ ús   ÁAÁAc                 óV  — t        j                  g d¢dt        fdt        fg¬«      }t        j                  j                  | d«      }t        |d«      5 }t        j                  ||d¬«       d d d «       t        |d	«      5 }t        j                  |«      }d d d «       t        |«       t        |d«      5 }t        j                  t        «      5  t        j                  ||d ¬«       d d d «       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒqxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)
N)©r6   r   r?  r\  r?  Úintu   æ•´å½¢r   zunicode.npyrv   )r   r   rë   rw   )r†   rÏ   r]  r|   r‚   r˜   rz   r   rX   rZ   r   r   r  rø   )rž   r\   rÚ   r]   r_   s        rM   Útest_unicode_field_namesr^  Ö  s
  € ä
�(‰(ò ð 
”ˆØ	GÌÐMðô€Cô �G‰G�L‰L˜ Ó/€EÜ	ˆe�TÓ	ð 3˜aÜ×Ñ˜1˜c¨6Õ2÷3ä	ˆe�TÓ	ð $˜aÜ× Ñ  Ó#ˆ÷$ä�s˜DÔ!ô 
ˆe�TÓ	ð 5˜aÜ�\‰\œ+Ó&ñ 	5Ü×Ñ˜q #¨tÕ4÷	5÷5ð 5÷3ð 3ú÷$ð $ú÷	5ð 	5ú÷5ð 5ús<   ÁC;ÂDÂ7DÃDÃ*DÃ;DÄDÄD	ÄDÄD(c                  óh  — g d¢g d¢g d¢g d¢fD ]œ  \  } }}t        t        j                  «      D �cg c]  }d|z  ‘Œ	 c}D ]i  }t        «       }t        j                  || rd|fn|df| t        j                  d|z  t        fg«      dœ«       t        |j                  «       «      |k(  rŒiJ ‚ Œž y c c}w )	N)Fé   é€   )Fé   éÀ   )Trb  ra  )Té   rc  r   r   ú r.  )
rÀ   r   ÚGROWTH_AXIS_MAX_DIGITSr   r0  r†   r   r]  rû   rY   )Úis_fortran_arrayÚdtype_spaceÚexpected_header_lengthrŸ   rK   r¢   s         rM   Útest_header_growth_axisrj  í  s¿   € âÒ*ªOº_ðBò @Ñ=Ð˜+Ð'=ô %*¬&×*GÑ*GÓ$HÖI˜q�R˜“UÒIò 	@ˆDÜ“ˆBÜ×)Ñ)¨"Ù&6˜!˜T™¸TÀ1¸IØ!1ÜŸ™ C¨+Ñ$5´sÐ#;Ð"<Ó=ñ/ô ô �r—{‘{“}Ó%Ð)?Ó?Ð?Ð?ñ	@ñ@ùò Js   ±B/ÚS3ÚsomeÚstuff)ÚmetadataÚsubarrayr   c                 ó¾  — t        j                  d| ¬«      }t        «       }t        j                  t
        «      5  t        j                  ||«       d d d «       |j                  d«       t        j                  |«      }ddl	m
} t        ||«        ||j                  «      |j                  usJ ‚ ||j                  «      |j                  u sJ ‚y # 1 sw Y   Œ‚xY w)Nr   r   r   )Údrop_metadata)r†   r‡   r   r   r  rø   rÞ   r{   r«   Únumpy.lib._utils_implrq  r   r   )r½   r\   Úbufr_   rq  s        rM   Útest_metadata_dtypert  û  s§   € ô �'‰'�"˜BÔ
€CÜ
‹)€CÜ	�‰”kÓ	"ñ Ü
�‰��SÔ÷à‡H�HˆQ„Kô �7‰7�3‹<€Då3Ü�s˜DÔ!Ù˜Ÿ™Ó#¨3¯9©9Ñ4Ð4Ð4Ù˜Ÿ™Ó$¨¯
©
Ñ2Ð2Ñ2÷ð ús   »CÃC)gÚ__doc__r|   rG  rõ   Úior   r   Únumpyr†   Ú	numpy.libr   Únumpy.testingr   r   r   r   r	   r
   Únumpy.testing._private.utilsr   rT  Úint8Úuint16Úint16Úuint32Úint32Úuint64Úint64Úfloat32Úfloat64Ú	complex64Ú
complex128ro   Úscalarsrj   ÚscalarÚendianr   Únewbyteorderr  ÚastypeÚbasicÚextendrÏ   ÚreshapeÚTÚPdescrÚPbufferTÚNdescrÚNbufferTr¿   rk   rD   r`   rb   rd   rh   rm   rp   rt   r„   rŒ   ÚmarkÚskipifÚslowr¦   r¯   rä   Údt2Údt3Údt4Údt5Údt6ÚparametrizerÂ   r÷   rÜ   rß   r]  rå   r   r  r  r  r  r'  r"  r   r%  r(  r,  r3  r8  r<  rA  rO  Úthread_unsaferW  rZ  r^  rj  rô   rt  r+  rN   rM   ú<module>r�     s¾  ðñUól 
Û 
Û Ý ã ã Ý ÷÷ õ 9ð ‡H�HØ‡G�GØ‡I�IØ‡H�HØ‡I�IØ‡H�HØ‡I�IØ‡H�HØ‡J�JØ‡J�JØ‡L�LØ‡M�MØ
ð€ð €Øò €FØò ˆØ�—‘˜Ó ×-Ñ-¨fÓ5ˆØ�—	‘	˜$“×&Ñ& uÓ-ˆØ×ÑàˆB�H‰H�R˜uÔ%àˆB�H‰H�R˜uÔ%àà�M‰M˜(Ó#à�M‰M˜(Ó#×%Ñ%à�M‰M˜(Ó#¡D b D©#¨A¨# IÑ.ð
õ 	ñðò6
€ð ˆ€Vˆr�2ˆh˜˜R˜Ð! 1Ð%Øˆ€Vˆr�2ˆh˜˜R˜Ð! 1Ð%ð€ð( ØØØØ	ò  ð 	!ð
 	Øð	ð 	ð ØØØðð ð Øð#
€ð( ˆ€Vˆb�"�t˜b "˜X¨¨B x°!°Q°Ð8¸$ÀÐEØ	ˆ:˜˜R˜ 2 r (Ð+¨Qð0àˆ€Vˆb�"�t˜b "˜X¨¨B x°!°Q°Ð8¸$ÀÐFØ	ˆ:˜˜R˜ 2 r (Ð+¨Qð0ð€ð €B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆQÐ1Ð2Ô3ð€ô"˜ô "òòòòò&ò*ò@ò
-ò24ð ‡�×Ñ�GÐ$CÐÓDØ‡�×Ññó ó Eðò<"ð €b‡h�hˆ| 4Ô(€à€b‡h�h˜#˜s˜°°t°Ø˜q˜6ñ#ó $€ð €b‡h�h˜#˜s˜°°s°Ñ<Ó=€à€b‡h�hš°T°F¸Q±JÑ?Ó@€à€b‡h�h˜#˜s˜°°t°Ø˜q˜6¨d°D¨\ñ;ó <€ð €b‡h�h˜¨¸Ñ:Ó;€à‡�×Ñ˜  S¨#¨s°C¸Ð=Ó>ñ"ó ?ð"ð ‡�×ÑØPóRñ,1óRð,1ò^&ð ‡�×Ñ˜ð €B‡H�Hˆs�B—G‘GˆnØ�B—H‘HˆoØ�B—H‘Hˆoðð ôð €B‡H�Hˆs�H�B—H‘H¨¨c¨
Ø*.°¨Ø*+¨Q¨Ø*+ñð
 ðó ð ðð ó ð €B‡H�Hð ð ó ð €B‡H�Hˆs�H�B—H‘HØˆ�‰ØˆB�H‰H  S˜zØ"&¨ Ø"# Q Ø"#ñ%ó &ð ðó 	ð 	ð	
ó 	ð 	ð 

ó 
ð €B‡H�HØ	ˆhˆb�h‰hØˆB�H‰HØ�—‘Ø�B—H‘HØ˜c˜
Ø˜h˜bŸh™h°#°s°Ø48¸$°<Ø45°q°6Ø45ñ(7ó 8ð 9ðó ð ð	ó 	ð ðó ð ð
ó ð 	ð
ó ð=0 ó 0ñb#óc0ðb#ò@ð2 ‡�×Ñ�GÐ$CÐÓDñó Eðð< ‡�×Ñ˜ s¨D kÓ2ñ!ó 3ð!ò&!ò(8ò6Ð ò€ò+ò*8ò8ò4òCò
?ò
?ò?ò:ð2 ‡�×Ñ˜�LÐ)FÐÓGØ‡�×ÑÙ˜IÔ&Ø‡�×ÑÐ";ÐÓ<ñ ó =ó 'ó ó Hð ò,ò5ò.@ð ‡�×Ñ˜Ø€B‡H�H˜˜S�z°°x°r·x±xÀØ! 7Ð+ô8-ð 0.ñ /ó 0à€B‡H�HˆS˜F GÐ,Ô-Ø€B‡H�Hˆz˜C ˜;Ð'Ð(°F¸GÐ3DÔEà€B‡H�H˜˜S�zØˆxˆr�x‰x 3 %°X°R·X±X¸cÈBÔ5OÐ4PÑQÓRð/ñ ó ð	 ó 	ñ3ó	ñ3rN   