
    Ph%                         d dl Z d dlZd dlmZ d dlmZ d dlZd dlZd dl	m
Z
mZmZmZmZmZ d dlmZ d dlZ G d d      Z G d d	      Z G d
 d      Z G d d      Zd Z G d d      Zy)    N)given)numpy)assert_assert_equalassert_raisesassert_warnsHAS_REFCOUNTassert_raises_regex)_typelessdatac                   z    e Zd Zd Zd Zej                  j                  d      d        Zd Z	d Z
d Zd	 Zd
 Zy)TestArrayReprc                     t        j                  t         j                  t         j                  g      }t	        t        |      d       y )Narray([nan, inf]))nparraynaninfr   reprselfxs     kC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_arrayprint.pytest_nan_infzTestArrayRepr.test_nan_inf   s,    HHbffbff%&T!W12    c                     G d dt         j                        }t        j                  ddg      j                  |      }t	        t        |      d       t        j                  ddgddgg      j                  |      }t	        t        |      d       t        j                  d	d
g      j                  |      }t	        t        |      d       y )Nc                       e Zd Zy)(TestArrayRepr.test_subclass.<locals>.subN)__name__
__module____qualname__ r   r   subr      s    r   r"         zsub([1, 2])      zsub([[1, 2],
     [3, 4]])r$   r$   )a<i4dtypez<sub([[(1,), (1,)],
     [(1,), (1,)]], dtype=[('a', '<i4')]))r   ndarrayr   viewr   r   ones)r   r"   x1dx2dxstructs        r   test_subclasszTestArrayRepr.test_subclass   s    #"**# hh1v##C(T#Y. hhAA'(--c2T#Y	
 ''%~6;;C@T']8	
r   zSee gh-10544reasonc                     G fddt         j                         d d g      }t        t        |      d       t        t	        |      d        d  d d g      g      }t        t        |      d       t        t	        |      d       y )Nc                   (     e Zd Zd Z fdZ xZS )/TestArrayRepr.test_object_subclass.<locals>.subc                 N    t        j                  |      j                  |       }|S Nr   asarrayr-   clsinpobjs      r   __new__z7TestArrayRepr.test_object_subclass.<locals>.sub.__new__+       jjo**3/
r   c                 2    t         |   |      } |      S r9   super__getitem__r   indret	__class__r"   s      r   rE   z;TestArrayRepr.test_object_subclass.<locals>.sub.__getitem__/       g)#.3xr   r   r   r    r@   rE   __classcell__rI   r"   s   @r   r"   r7   *          r   r"   zsub([None, None], dtype=object)z[None None]z:sub([None, sub([None, None], dtype=object)], dtype=object)z&[None sub([None, None], dtype=object)])r   r,   r   r   str)r   r   r"   s     @r   test_object_subclassz"TestArrayRepr.test_object_subclass(   sy    	 "** 	  tT!W?@SV]+sD$<()*T!WH	JSVEFr   c                 B    G fddt         j                         d      }t        t        |      d       t        t	        |      d        ddg      }t        t        |      d       t        t	        |      d        d       }t        t        |      d       t        t	        |      d	        d       }||d
<   ||d
<   t        t        |      d       t        t	        |      d       d|d
<    d       } d       |d
<   t        t        |      d       t        t	        |      d	        G fddt         j                        t        j
                  d      j                        }t        t	        |      d       t        t	        |d         d       y )Nc                   (     e Zd Zd Z fdZ xZS )2TestArrayRepr.test_0d_object_subclass.<locals>.subc                 N    t        j                  |      j                  |       }|S r9   r:   r<   s      r   r@   z:TestArrayRepr.test_0d_object_subclass.<locals>.sub.__new__A   rA   r   c                 2    t         |   |      } |      S r9   rC   rF   s      r   rE   z>TestArrayRepr.test_0d_object_subclass.<locals>.sub.__getitem__E   rJ   r   rK   rM   s   @r   r"   rS   @   rN   r   r"   r#   zsub(1)1zsub([1, 1])z[1 1]zsub(None, dtype=object)Noner!   z<sub(sub(sub(..., dtype=object), dtype=object), dtype=object)z...r   z*sub(sub(None, dtype=object), dtype=object)c                   .     e Zd Z fdZd Zd Z xZS ):TestArrayRepr.test_0d_object_subclass.<locals>.DuckCounterc                 f    t         |   |      }t        |      s|d   j                        }|S )N.)rD   rE   
isinstancer-   )r   itemresultDuckCounterrI   s      r   rE   zFTestArrayRepr.test_0d_object_subclass.<locals>.DuckCounter.__getitem__g   s5    ,T2!&+6#C[--k:Fr   c                 J    ddddj                  | j                         d      S )Nzeroonetwo)r   r#   r$   many)getr\   r   s    r   	to_stringzDTestArrayRepr.test_0d_object_subclass.<locals>.DuckCounter.to_stringm   s"    !e6::499;OOr   c                 x    | j                   dk(  r| j                         S dd i}t        j                  | |      S )Nr!   allc                 "    | j                         S r9   )rf   r   s    r   <lambda>zTTestArrayRepr.test_0d_object_subclass.<locals>.DuckCounter.__str__.<locals>.<lambda>t   s
    AKKMr   	formatter)shaperf   r   array2string)r   fmts     r   __str__zBTestArrayRepr.test_0d_object_subclass.<locals>.DuckCounter.__str__p   s7    ::#>>++ "9:C??43??r   )r   r   r    rE   rf   rq   rL   )rI   r^   s   @r   r^   rY   f   s    P@r   r^      z[zero one two many many]r`   )r   r,   r   r   rO   aranger-   )r   r   ydcr^   r"   s       @@r   test_0d_object_subclassz%TestArrayRepr.test_0d_object_subclass=   sS   	 "** 	  FT!Wh'SVS!AKT!Wm,SVW% IT!W78SVV$ I""T!WJ	LSVU#" ID	"T!WJKSVV$	@"** 	@" YYq\{+SW89SAZ(r   c                 t   t        j                  d       }||d<   t        t        |      d       d|d<   t        j                  d d g      }||d<   t        t        |      d       d|d<   t        j                  d       }t        j                  d       }||d<   ||d<   t        t        |      d       d|d<   y )Nr!   z-array(array(..., dtype=object), dtype=object)r   r#   z5array([None, array(..., dtype=object)], dtype=object)zBarray(array(array(..., dtype=object), dtype=object), dtype=object)r   r   r   r   )r   arr0darr1dfirstseconds        r   test_self_containingz"TestArrayRepr.test_self_containing{   s    b	T%[;	=b	$&aT%[C	Ea$b	r
T%[P	Rb	r   c                 v    t        j                  d d g      }ddg|d<   dg|d<   t        t        |      d       y )Nr#   r$   r   r%   z.array([list([1, 2]), list([3])], dtype=object)rx   )r   rz   s     r   test_containing_listz"TestArrayRepr.test_containing_list   s=    $&q6a3aT%[<	>r   c                 @    t        t        j                  d             y )Ns   test)r   r   voidre   s    r   test_void_scalar_recursionz(TestArrayRepr.test_void_scalar_recursion   s    RWWWr   c                     t        j                  g       }t        j                  d|      }t        t	        |      d       y )Nr&   r*   z!array([(), (), (), ()], dtype=[]))r   r+   emptyr   r   )r   	no_fieldsarr_no_fieldss      r   test_fieldless_structuredz'TestArrayRepr.test_fieldless_structured   s/    HHRL	)4T-(*MNr   N)r   r   r    r   r2   pytestmarkxfailrP   rv   r}   r   r   r   r!   r   r   r   r      sO    3
( [[n-G .G(<)|*>Or   r   c                       e Zd Zd Zy)TestComplexArrayc                    dddt         j                  t         j                   t         j                  g}|D cg c]  }|D ]  }t        ||        }}}t         j                  t         j
                  t         j                  g}|D cg c])  }|D ]"  }t        t        j                  |g|            $ + }}}g d}	t        ||	      D ]  \  }
}t        |
|        y c c}}w c c}}w )Nr   r#   )l[0.+0.j]r   r   [0.+1.j]r   r   [0.-1.j]r   r   	[0.+infj]r   r   	[0.-infj]r   r   	[0.+nanj]r   r   [1.+0.j]r   r   [1.+1.j]r   r   [1.-1.j]r   r   	[1.+infj]r   r   	[1.-infj]r   r   	[1.+nanj]r   r   	[-1.+0.j]r   r   	[-1.+1.j]r   r   	[-1.-1.j]r   r   
[-1.+infj]r   r   
[-1.-infj]r   r   
[-1.+nanj]r   r   	[inf+0.j]r   r   	[inf+1.j]r   r   	[inf-1.j]r   r   
[inf+infj]r   r   
[inf-infj]r   r   
[inf+nanj]r   r   
[-inf+0.j]r   r   
[-inf+1.j]r   r   
[-inf-1.j]r   r   [-inf+infj]r   r   [-inf-infj]r   r   [-inf+nanj]r   r   	[nan+0.j]r   r   	[nan+1.j]r   r   	[nan-1.j]r   r   
[nan+infj]r   r   
[nan-infj]r   r   
[nan+nanj]r   r   )r   r   r   complex	complex64cdoubleclongdoublerO   r   zipr   )r   rvalsrpipcvalsdtypescdtactualwantedresvals               r   test_strzTestComplexArray.test_str   s    Ar266BFF7BFF3+0A5R5RR55A,,

BNN;27I%Q&B#bhhsB'(&(%I$8L FF+HCc" ,S BIs   C 
.C&N)r   r   r    r   r!   r   r   r   r      s    ,#r   r   c                   
   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Z e ej(                   ej,                  d                  d        Zej2                  j5                  e d      d        Zy)TestArray2Stringc                     t        j                  d      }t        t        j                  |      dk(         t        t        j                  |dd      dk(         t        t        j                  |d      dk(         y	)
zBasic test of array2string.r%   z[0 1 2]r&   1.13max_line_widthlegacyz[0 1
 2]r   z	[0
 1
 2]N)r   rs   r   ro   r   r(   s     r   
test_basiczTestArray2String.test_basic   sW    IIaL"i/0!FC{RS!4EFr   c                     t        t        d      5  t        j                  t        j                  g d      d        d d d        y # 1 sw Y   y xY w)Nnonsense)r#   r$   r%   )r   )r
   	TypeErrorr   ro   r   re   s    r   test_unexpected_kwargz&TestArray2String.test_unexpected_kwarg   s4    
 !J7OOBHHY/%)+ 877s   -AAc                    d }t        j                  d      }d}d}t        t        j                  |d|i      dk(         t        t        j                  |d|i      dk(         t        t        j                  |dd	 i      d
k(         t	        t        j                  |dd i      |       t	        t        j                  |dd i      |       t        j                  d      }t        t        j                  |dd i      dk(         t        t        j                  |dd i      dk(         t        j
                  ddg      }t        t        j                  |dd i      dk(         y)z6Test custom format function for each element in array.c                 h    t        j                  |       dk  ryt        j                  |       dk  ryy)Nr#   .r$   oO)r   absrj   s    r   _format_functionz?TestArray2String.test_format_function.<locals>._format_function   s)    vvay1}Qr   r%   z[0x0 0x1 0x2]z[0o0 0o1 0o2]rh   rl   z[. o O]int_kindc                     d| z  S )Nz%.4fr!   rj   s    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>   s    fqjr   z[0.0000 1.0000 2.0000]intc                     t        |       S r9   )hexrj   s    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>       3q6r   c                     t        |       S r9   )octrj   s    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>   r   r         @
float_kindc                     d| z  S Nz%.2fr!   rj   s    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>   s    VaZr   z[0.00 1.00 2.00]floatc                     d| z  S r   r!   rj   s    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>   s    
r   abcdefnumpystrc                     | dz  S Nr$   r!   )ss    r   rk   z7TestArray2String.test_format_function.<locals>.<lambda>  s    1Q3r   z[abcabc defdef]N)r   rs   r   ro   r   r   )r   r   r   x_hexx_octr   s         r   test_format_functionz%TestArray2String.test_format_function   sP   	 IIaLe4D-EF 	j9I-JK 	e4H-IJ() 	*R__Q59I2JK	R__Q59I2JK	 IIbMl;O-PQ"# 	$g6J-KL"# 	$ HHeU^$j-GH!" 	#r   c                    t        j                  dt         j                  dfdt         j                  dfg      }t        j                  ddg|      }t        t        j                  |      d       t        j                  d	
       	 t        j                  ddg      }|dd  j                  t        j                  d             t        t        j                  |      t        j                  d             t        j                  d
       t        t        j                  |      t        j                  d             t        j                  dddg      }|dd  j                  t        j                  d             t        t        j                  |      t        j                  d             y # t        j                  d
       w xY w)Nname   grades)r$   )Sarah)g       @      @)John)g      @r   r*   z([('Sarah', [8., 7.]) ('John', [6., 7.])]r   r   
   )AzM8[s])rn   r+   rr   NaTz                [('1970-01-01T00:00:00',) ('1970-01-01T00:00:00',) ('1970-01-01T00:00:00',)
                 ('1970-01-01T00:00:00',) ('1970-01-01T00:00:00',) ('NaT',) ('NaT',)
                 ('NaT',) ('NaT',) ('NaT',)]Fa;              [('1970-01-01T00:00:00',) ('1970-01-01T00:00:00',)
             ('1970-01-01T00:00:00',) ('1970-01-01T00:00:00',)
             ('1970-01-01T00:00:00',) (                'NaT',)
             (                'NaT',) (                'NaT',)
             (                'NaT',) (                'NaT',)]i@ )r   zm8[s]z~            [(123456,) (123456,) (123456,) (123456,) (123456,) ( 'NaT',) ( 'NaT',)
             ( 'NaT',) ( 'NaT',) ( 'NaT',)])r   r+   str_float64r   r   ro   set_printoptionszerosfill
datetime64textwrapdedentfull)r   r   r   r   s       r   test_structure_format_mixedz,TestArray2String.test_structure_format_mixed  sb   XX,xT.JKLHH+-AB"MR__Q':	< 	6*	.r.)9:AabEJJr}}U+," !0 1 u- 	OOAOO C D	
 GGB~&67	!"

2=='(OOAOO / 0	
! u-s   	A1F5 5Gc                    t        j                  ddgfddgfgdg      }t        t        j                  |      d       t        j                  ddgdd	ggfd
dgddggfgdg      }t        t        j                  |      d       y )Nr#   r   {   )Bi4r$   r*   z[([  1,  -1],) ([123,   1],)]r   r$   r%      )r  r  r'   z1[([[ 0,  1], [ 2,  3]],) ([[12,  0], [ 0,  0]],)]r   r   r   ro   )r   
struct_intstruct_2dints      r   test_structure_format_intz*TestArray2String.test_structure_format_int/  s    XXBzS!H;7?OP
R__Z0/	1xxAq6Aq6"2!4Q!Q7H6J K*+-R__\2C	Er   c                 p    t        j                  dd      }t        t        j                  |      d       y )N)      ?g7 @r   zf8,f8,f8r*   z(1., 2.12345679, 3.)r
  )r   array_scalars     r   test_structure_format_floatz,TestArray2String.test_structure_format_float9  s*    xx/
ER__\24JKr   c                    t        j                  g dd      j                  d      }t        t	        |d         d       t        t        |d         d       t        t	        |      d       t        t        t	        |      t        t                     |       t        t        t	        |d         t        t                     |d          y )	N)   [   2   K      A   r      r  r  3   1   m   R   e   d   u1r*   V8r   z)void(b'\x1B\x5B\x32\x4B\x07\x41\x0A\x08')z#b'\x1B\x5B\x32\x4B\x07\x41\x0A\x08'zearray([b'\x1B\x5B\x32\x4B\x07\x41\x0A\x08',
       b'\x1B\x5B\x33\x31\x6D\x52\x65\x64'], dtype='|V8'))r   r   r-   r   r   rO   evalvarsr   s     r   test_unstructured_void_reprz,TestArray2String.test_unstructured_void_repr?  s    HH 6=ACCG4: 	
T!A$Z!MNS1Y FGT!WI	J 	T$q'48,a0T$qt*d2h/16r   c                 |    t        j                  dt              }t        t        j                  |dd      d       y )Nr%   r#   r   	edgeitems	thresholdz	[0 ... 0])r   r   r   r   ro   )r   arrs     r   test_edgeitems_kwargz%TestArray2String.test_edgeitems_kwargK  s-    hhq#OOC1:	
r   c                     t        j                  d      }d}t        t        |      |       d}t        t	        |      |       y )N  z#[   0    1    2 ...  998  999 1000]z0array([   0,    1,    2, ...,  998,  999, 1000]))r   rs   r   rO   r   r   r   strAreprAs       r   test_summarize_1dz"TestArray2String.test_summarize_1dS  s5    IIdO4SVT"BT!We$r   c                     t        j                  d      j                  dd      }d}t        t	        |      |       d}t        t        |      |       y )Ni  r$   i  zJ[[   0    1    2 ...  498  499  500]
 [ 501  502  503 ...  999 1000 1001]]zdarray([[   0,    1,    2, ...,  498,  499,  500],
       [ 501,  502,  503, ...,  999, 1000, 1001]]))r   rs   reshaper   rO   r   r-  s       r   test_summarize_2dz"TestArray2String.test_summarize_2d[  sG    IIdO##As+7SVT"ET!We$r   c                 0   t        j                  dd      j                  dd      j                  dg      }d}t	        t        |      |       d}t	        t        |      |       t        j                  dd	      j                  d
g      }d}t	        t        |      |       d}t	        t        |      |       t        j                  dd      j                  dd      j                  ddg      }d}t	        t        j                  |dd      |       y )Ni  <i8r*   r$   r,  )ir5  )r,  z`[[([   0,    1,    2, ...,  998,  999, 1000],)]
 [([1001, 1002, 1003, ..., 1999, 2000, 2001],)]]zarray([[([   0,    1,    2, ...,  998,  999, 1000],)],
       [([1001, 1002, 1003, ..., 1999, 2000, 2001],)]],
      dtype=[('i', '<i8', (1001,))])>i8)r6  r7  )r$   r,  z7[([[1, 1, 1, ..., 1, 1, 1], [1, 1, 1, ..., 1, 1, 1]],)]zearray([([[1, 1, 1, ..., 1, 1, 1], [1, 1, 1, ..., 1, 1, 1]],)],
      dtype=[('i', '>i8', (2, 1001))])      )i1r5  )i10r5  )r   z.[[( 0, [ 1, ..., 10])]
 [(11, [12, ..., 21])]]r#   )r(  r'  )	r   rs   r2  r-   r   rO   r   r.   ro   )	r   r   r.  r/  r  strBreprBCstrCs	            r   test_summarize_structurez)TestArray2String.test_summarize_structuree  s    YYt5)11!T:d)*+ 	
CSVT"8 	T!We$GGD&++-D,EFHSVT"5 	 	T!We$YYr'//26dM#89: 	
@R__Q!qA4Hr   c                 *   t        j                  dd      }d }t         ||dd      d       t         ||dd      d       t         ||d	d      d
       t         ||d      d       t         ||d      d       t         ||d	      d       |d d d d f   }t         ||dd      d       t         ||dd      d       t         ||dd      d       t         ||d      d       t         ||d      d       t         ||d      d       y )N   r#   c                 4    t        j                  | fd|d|S )N )	separatorr   )r   ro   )r(   widthkws      r   make_strz1TestArray2String.test_linewidth.<locals>.make_str  s    ??1O5OBOOr   r  r   r   z[111111]r  rr   z
[1111
 11]z
[11111
 1]z
[111
 111]r	  z[[[111111]]]	   z[[[11111
   1]]]z[[[111
   111]]]z[[[11
   11
   11]]])r   r  r   )r   r(   rH  bs       r   test_linewidthzTestArray2String.test_linewidth  s   GGAqM	P 	Xa62J?Xa62J?Xa62 5; 	< 	Xa^Z0Xa^ &+ 	,Xa^ &- 	. d4kNXaF3^DXa!F3^DXa!F3 6? 	@ 	Xa_n5Xa!_ '2 	3Xa!_ '1 	2r   c                     t        j                  dg      }t        t        j                  |d      d       t        t        j                  |dd      d       y )Nxxxxxrr   r   z	['xxxxx']r   r   z
[ 'xxxxx']r
  r   s     r   test_wide_elementz"TestArray2String.test_wide_element  sH    HHgYOOAa0	
 	OOAa?	
r   c                     G d d      }t        j                  d  |       g |       d gg      }t        t        j                  |      d       t        t        j                  |d      d       t        t	        |      d        G d d	      }t        j                  d  |       g |       d gg      }t        t	        |      d
       t        t        j
                  |d      d       y )Nc                       e Zd Zd Zy)7TestArray2String.test_multiline_repr.<locals>.MultiLinec                      y)NzLine 1
Line 2r!   re   s    r   __repr__z@TestArray2String.test_multiline_repr.<locals>.MultiLine.__repr__  s    'r   Nr   r   r    rS  r!   r   r   	MultiLinerQ    s    (r   rU  z5[[None Line 1
       Line 2]
 [Line 1
  Line 2 None]]rr   r   z4[[None
  Line 1
  Line 2]
 [Line 1
  Line 2
  None]]z`array([[None, Line 1
              Line 2],
       [Line 1
        Line 2, None]], dtype=object)c                       e Zd Zd Zy);TestArray2String.test_multiline_repr.<locals>.MultiLineLongc                      y)Nz*Line 1
LooooooooooongestLine2
LongerLine 3r!   re   s    r   rS  zDTestArray2String.test_multiline_repr.<locals>.MultiLineLong.__repr__  s    Er   NrT  r!   r   r   MultiLineLongrW    s    Fr   rY  zarray([[None, Line 1
              LooooooooooongestLine2
              LongerLine 3          ],
       [Line 1
        LooooooooooongestLine2
        LongerLine 3          , None]], dtype=object)   zarray([[None,
        Line 1
        LooooooooooongestLine2
        LongerLine 3          ],
       [Line 1
        LooooooooooongestLine2
        LongerLine 3          ,
        None]],
      dtype=object))r   r   r   ro   r   
array_repr)r   rU  r(   rY  s       r   test_multiline_reprz$TestArray2String.test_multiline_repr  s    	( 	( HHtY[)IK+>?@OOA	
 	OOAa0	
 	G4	
	F 	F HHt]_-/FGHGD	
 	MM!R "	
r   c                     t        j                  dt              }t        j                  d      |d<   t        j                  d      |d<   d |d<   t        j                  d      |d	<   t        t        |      d
       y )Nr'   r*   r$   )r   r   r%   )r   r#   )r#   r   )r%   r#   )r#   r#   a  array([[array([[1., 0.],
               [0., 1.]]), array([[1., 0., 0.],
                                  [0., 1., 0.],
                                  [0., 0., 1.]])],
       [None, array([[1.],
                     [1.],
                     [1.]])]], dtype=object))r   r   objecteyer.   r   r   r   s     r   test_nested_array_reprz'TestArray2String.test_nested_array_repr  sb    HHV6*&&)$&&)$$''&/$G;		
r   Uc                     t        j                  |||g      }t        |d   |       dj                  |      }t        j                  |t        t        |            dz  dz         }t        ||       y )Nr   z[{0!r} {0!r}
 {0!r}]r$   r%   r   )r   r   r   formatro   lenr   )r   textr(   expected_reprr]   s        r   test_any_textzTestArray2String.test_any_text  sc     HHdD$'(QqT4 /66t<3tDz?Q3F3JKV]+r   zPython lacks refcountsr3   c                 j   t        j                          t        j                  d      }t	        j
                  |      }t        j                  |       t        j                  |       t	        j
                  |      }t        j                          t        j                          t        ||k(         y r   )
gcdisabler   rs   sysgetrefcountro   collectenabler   )r   r(   r1r2s       r   test_refcountzTestArray2String.test_refcount  sl     	

IIaL__Q

__Q



		br   N)r   r   r    r   r   r   r  r  r  r$  r*  r0  r3  r@  rK  rN  r\  r`  r   hynp
from_dtyper   r+   rg  r   r   skipifr	   rq  r!   r   r   r   r      s    G+ #D(
TEL
7
%%I62>	
8
t
" ?4??8288C=)*	, +	, [[L(1IJ Kr   r   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej*                  j-                  dgg d      d        Zd Zd Zd Zd Zd Zy)TestPrintOptionsz.Test getting and setting global print options.c                 6    t        j                         | _        y r9   )r   get_printoptionsoldoptsre   s    r   setup_methodzTestPrintOptions.setup_method  s    **,r   c                 B    t        j                  di | j                   y )Nr!   )r   r   ry  re   s    r   teardown_methodz TestPrintOptions.teardown_method  s    
+dll+r   c                     t        j                  g d      }t        t        |      d       t        j                  d       t        t        |      d       y )N)      ?r   gރB?z+array([1.5       , 0.        , 1.23456789])r&   	precisionzarray([1.5   , 0.    , 1.2346]))r   r   r   r   r   r   s     r   r   zTestPrintOptions.test_basic  s=    HH*+T!WKL
a(T!W?@r   c                    t        j                  d       dgdfdgdfdgdfdgd	fd
gdfdgdfdgdfdgdfg ddfdgdfdgdft        dd      gdffD ]2  \  }}t        j                  |      }t	        t        |      d|z         4 y )Nr   r          z0.g333333?g333333ӿz-0.gffffff?z1.r~  z2.g      z-2.gGz.z-15.      Y@z100.)g?r   gq=
ף^@z  0.,  -1., 123.0iz-12gffffffz0.-1.jzarray([%s]))r   r   r   r   r   r   )r   valuesstringr   s       r   test_precision_zeroz$TestPrintOptions.test_precision_zero  s    
a(ttTlcUENbT4L&60B #35G"Hc
cUENgb#.>-?,J	LNFF
  Aa-&"89Lr   c                     t        j                  d      }t        j                  dd i       t        t	        |      d       y )Nr%   rh   c                     t        | dz
        S Nr#   rO   rj   s    r   rk   z1TestPrintOptions.test_formatter.<locals>.<lambda>*      s1Q3xr   rl   array([-1, 0, 1])r   rs   r   r   r   r   s     r   test_formatterzTestPrintOptions.test_formatter(  s2    IIaL
u-?&@AT!W12r   c                 0   t        j                  d      }t        j                  dd i       t        t	        |      d       t        j                  dd i       t        t	        |      d       t        j                  dd i       t        t	        |      d       t        j                  dd i       t        t	        |      d       t        j                  dd	 i       t        t	        |      d       t        j                  d
d i       t        t	        |      d       t        j                  d      }t        j                  dd i       t        t	        |      d       t        j                  dd i       t        t	        |      d       y )Nr%   rh   c                     t        | dz
        S r  r  rj   s    r   rk   z7TestPrintOptions.test_formatter_reset.<locals>.<lambda>/  r  r   rl   r  r   zarray([0, 1, 2])c                     t        | dz
        S r  r  rj   s    r   rk   z7TestPrintOptions.test_formatter_reset.<locals>.<lambda>4  r  r   c                     t        | dz
        S r  r  rj   s    r   rk   z7TestPrintOptions.test_formatter_reset.<locals>.<lambda>9  r  r   r   r   r   c                     t        | dz
        S r  r  rj   s    r   rk   z7TestPrintOptions.test_formatter_reset.<locals>.<lambda>?  s    QqSr   zarray([-1.0, 0.0, 1.0])r   zarray([0., 1., 2.])r  r   s     r   test_formatter_resetz%TestPrintOptions.test_formatter_reset-  s.   IIaL
u-?&@AT!W12
uTl3T!W01
u-?&@AT!W12
uTl3T!W01
u-?&@AT!W12
z$&78T!W01IIbM
w/A&BCT!W78
|D&9:T!W34r   c                    t        t        t        j                  dd            d       t        t	        t        j                  dd            d       t        t        t        j                  dt        j
                              d       t        j                  ddg      }t        t        |d         d	       t        t	        t        j                  d
      d         d       t        t	        t        j                  dd      d         d       t        j                  d      }t        j                  dd i       t        t	        |      d       t        t        |      d       t        t        t        j                  t        j                  d      t               t        j                  t        j                  d      t        d       t        j                  t        j                  d      d       y )Nu   café<U4u   array('café', dtype='<U4')testr#   )r(   r)   )r%   r*   r   z([0, 0, 0],)z
2005-02-25.z*array('2005-02-25', dtype='datetime64[D]')10Yz!array(10, dtype='timedelta64[Y]')rh   c                      y)Nr  r!   rj   s    r   rk   z1TestPrintOptions.test_0d_arrays.<locals>.<lambda>V  s    vr   rl   zarray(test)rV   r  )styler   )r  r   r   )r   rO   r   r   r   r   r   r   timedelta64r   r   DeprecationWarningro   )r   r(   r   s      r   test_0d_arrayszTestPrintOptions.test_0d_arraysD  sR   S'512G<T"((7E232	4S&"''23V<HHQ123S1Y/T"--5c:;A	C 	T"..s3C898	: HHQK
u-=&>?T!Wm,SVS! 	')+"T	C 	D@
V4r   c                    t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  g d      }t        t        |      d       t        t        |      d       t        t        t        j                  |d               d       t        t        t        j                  |d	               d
       t        t        |      d       t        t        |      d       t        t        t        j                  t         j                  t         j
                  g            d       t        t        t        j                  t         j                  t         j
                   g            d       t        j                  t         j
                  ddg      }t        j                  t         j
                  ddg      }t        j                  t         j
                  ddg      }t        j                  d       t        t        |      d       t        t        |      d       t        t        |      d       y )N)r         @r   )r  r  g      $)r  r        )g      Yr  r  zarray([1., 2., 3.])zarray([  1.,   2., -10.])r   	array(1.)r   zarray(-10.)zarray([100.,   2.,  -1.])zarray([-100.,    2.,    1.])r   zarray([ nan, -inf])i g8EGr?g8EGrg*4r$   r  z%array([     inf, 1.00e+05, 1.12e+00])z(array([      inf,  1.00e+05, -1.12e+00])z+array([       inf,  1.12e+000, -1.00e+120]))r   r   r   r   r   r   r   )r   r   rt   zws        r   test_float_spacingz#TestPrintOptions.test_float_spacingc  s   HH\"HH^$HH_%HH_%T!W34T!W9:T"((1Q4.);7T"((1R5/*M:T!W9:T!W<=T"((BFFBFF#3457JKT"((BFFRVVG#4568MNHHbffff-.HHbfffg./HHbffff-.
a(T!WEFT!WHIT!WKLr   c                    t        t        t        j                  ddg            d       t        t        t        j                  ddg            d       t        t        t        j                  dg            d       t        t        t        j                  d            d       t        t        t        j                  d            d       y )NTzarray([ True,  True])Fzarray([ True, False])zarray([ True])zarray(True)zarray(False))r   r   r   r   re   s    r   test_bool_spacingz"TestPrintOptions.test_bool_spacing{  s    T"((D4=12,	.T"((D%=12,	.T"((D6*+%	'T"((4.)"	$T"((5/*#	%r   c                 T   t        j                  d      }t        j                  dg      }t        j                  ddgd      }t        t	        |      d       t        t	        t        j                  d            d	       t        t	        |      d
       t        t	        t        j                  dg            d       t        t	        |      d       t        t	        t        j                  ddg            d       t        j
                  d       t        t	        |      d       t        t	        t        j                  d            d       t        t	        |      d       t        t	        |      d       t        t	        t        j                  ddg            d       t        j
                  d       t        t	        |      d       t        t	        t        j                  d            d       t        t	        |      d       t        t	        |      d       t        j
                  d       t        t	        |      d       t        t	        |      d       t        t	        |       d       t        t	        t        j                  d            d       t        t	        t        j                  dg            d        t        t	        |      d!       t        t        t        j                  d"d#g            d$       t        t        t         j
                  d%&       y )'Ng      @g    VcA      ?      ?6sӭ?6sӭ?c16r*   zarray([0., 1., 2., 3.])r  r  zarray([1.234e+09])r  zarray([0.])7array([1.        +1.j        , 1.12345679+1.12345679j])g       zarray([ 0., -0.]) )signzarray([ 0.,  1.,  2.,  3.])z
array( 1.)zarray([ 1.234e+09])z9array([ 1.        +1.j        ,  1.12345679+1.12345679j])+zarray([+0., +1., +2., +3.])z
array(+1.)zarray([+1.234e+09])z9array([+1.        +1.j        , +1.12345679+1.12345679j])r   r   zarray([  1.23400000e+09])zarray([ -1.23400000e+09])z
array(1.0)zarray([ 0.])z9array([ 1.00000000+1.j        ,  1.12345679+1.12345679j])r  r   z[ -1.  10.]T)wrongarg)	r   rs   r   r   r   r   rO   r   r   )r   r(   rJ  r   s       r   test_sign_spacingz"TestPrintOptions.test_sign_spacing  s*   IIbMHHgYHHj"<=UKT!W78T"((2,'5T!W23T"((B4.)=9T!WE	GT"((B9-.0CD
%T!W;<T"((2,'6T!W34T!WG	IT"((B9-.0CD
%T!W;<T"((2,'6T!W34T!WG	I 	6*T!W;<T!W:;T1"X:;T"((2,'6T"((B4.)>:T!WG	I 	S3),-}=i!4!4tDr   c                 H    t        t        j                  ddgd             y )Ng     @g?f2r*   )r   r   r   re   s    r   test_float_overflow_nowarnz+TestPrintOptions.test_float_overflow_nowarn  s     	RXXsCj-.r   c                     t        j                  dd      }t        t        |      d       t        t        |d         d       y )Nr$   z<f,<fr*   zAarray([(1., 1.), (1., 1.)], dtype=[('f0', '<f4'), ('f1', '<f4')])r   z(1., 1.))r   r.   r   r   r   s     r   test_sign_spacing_structuredz-TestPrintOptions.test_sign_spacing_structured  s6    GGAW%T!WO	QT!A$Z,r   c                    t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  dt         j                        dz  }t        j                  ddgd      }t        j                  t        d	      D cg c]  }d
j                  |       c}t         j                        }t        j                  g d      }t        j                  d       t        t        |      d       t        t        |      d       t        t        |      d       t        t        |      d       t        t        |      d       t        t        |      d       t        j                  dd       t        t        |      d       t        t        |      d       t        t        |      d       t        t        |d d d         d       t        t        |      d       t        t        |      d       t        j                  dd       t        t        |      d       t        t        |      d       t        t        |      d       t        t        |d d d         d        t        t        |      d!       t        t        t        j                  d"            d#       t        t        |      d$       t        j                  dd       t        t        |      d%       t        j                  d&d       t        t        |      d'       t        t        |      d(       t        t        |      d)       t        t        |d d d         d       t        t        |      d       t        t        |      d*       t         j                  j                  d+      }t        t        j                  t        j                  |d            |       y c c}w ),N)
gOe?g/$?gsh|??goŏ1?g1%?g߿yq}?gHP?gM?gQI?gΈ?r*   )g:@2?g4?gjId;?gB?gwq?gx$?g?g;?rB  r   r  r  r     z1e{})gGz(@r  gr%4xYunique)	floatmodezarray([0.6104  , 0.922   , 0.457   , 0.0906  , 0.3733  , 0.007244,
       0.5933  , 0.947   , 0.2383  , 0.4226  ], dtype=float16)zarray([0.2918820979355541 , 0.5064172631089138 , 0.2848750619642916 ,
       0.4342965294660567 , 0.7326538397312751 , 0.3459503329096204 ,
       0.0862072768214508 , 0.39112753029631175])z4array([0. , 0.1, 0.2, 0.3, 0.4, 0.5], dtype=float16)zarray([1.e+00, 1.e+01, 1.e+02, 1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07,
       1.e+08, 1.e+09, 1.e+10, 1.e+11, 1.e+12, 1.e+13, 1.e+14, 1.e+15,
       1.e+16, 1.e+17, 1.e+18, 1.e+19, 1.e+20, 1.e+21, 1.e+22, 1.e+23,
       1.e+24])z+array([1.234e+001, 1.000e+002, 1.000e+123])z;array([1.         +1.j         , 1.123456789+1.123456789j])maxprecr  )r  r  znarray([0.2918821 , 0.50641726, 0.28487506, 0.43429653, 0.73265384,
       0.34595033, 0.08620728, 0.39112753])rr   z/array([1.e+00, 1.e+05, 1.e+10, 1.e+15, 1.e+20])r  fixedr&   zmarray([0.6104, 0.9219, 0.4570, 0.0906, 0.3733, 0.0072, 0.5933, 0.9468,
       0.2383, 0.4226], dtype=float16)zGarray([0.2919, 0.5064, 0.2849, 0.4343, 0.7327, 0.3460, 0.0862, 0.3911])zFarray([0.0000, 0.1000, 0.2000, 0.3000, 0.3999, 0.5000], dtype=float16)zCarray([1.0000e+00, 1.0000e+05, 1.0000e+10, 1.0000e+15, 1.0000e+20])z.array([1.2340e+001, 1.0000e+002, 1.0000e+123])r%   zarray([0.0000, 0.0000, 0.0000])z'array([1.0000+1.0000j, 1.1235+1.1235j])zearray([0.00000000, 0.09997559, 0.19995117, 0.30004883, 0.39990234,
       0.50000000], dtype=float16)maxprec_equalzarray([0.610352, 0.921875, 0.457031, 0.090576, 0.373291, 0.007244,
       0.593262, 0.946777, 0.238281, 0.422607], dtype=float16)znarray([0.29188210, 0.50641726, 0.28487506, 0.43429653, 0.73265384,
       0.34595033, 0.08620728, 0.39112753])z4array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5], dtype=float16)z7array([1.00000000+1.00000000j, 1.12345679+1.12345679j])z-1p-97)r   r   float16r   rs   rangerc  r   r   r   r   fromhexro   )	r   r   rt   r  r   r6  r  wpr(   s	            r   test_floatmodezTestPrintOptions.test_floatmode  sC   HH 5<>JJHHH ? JJ	(
 IIarzz*2-HHj"<=UK HHb	:	1fmmA&	:"**M XX+, 	h/T!WM	N 	T!W@	A 	T!WB	DT!W	
 	T"XLMT!WI	K 	i1=T!WM	N 	T!W:	; 	T!WB	DT!CaC&\=	?T"XLMT!WE	G 	g;T!W5	6 	T!WU	WT!WT	VT!CaC&\Q	ST"XOPT"((1+&(IJT!W5	7 	g;T!W1	2
 	oCT!WM	N 	T!W:	; 	T!WB	DT!CaC&\=	?T"XLMT!WE	G JJx(RZZX FGKc ;s   ,O?c           
         t        j                  d       t        t        t        j                  d            d       t        t        t        j
                  t        dt         j                                    d       t        j                  d       t        t        t        j                  d            d       t        t        t        j
                  t        dt         j                                    d	       y )
Nr   r   g|ӭ?z1.12345678912r#   z	(1+nan*j)Fz1.1234567891234568z(1+nanj))r   r   r   rO   r   
complex128r   r   re   s    r   test_legacy_mode_scalarsz)TestPrintOptions.test_legacy_mode_scalars  s     	6*S$89:OLSwq"&&'9:;[I
5)S$89:)	+Swq"&&'9:;ZHr   c                     t        j                  d       t        t        t        j                  d            d       t        j                  d       t        t        t        j                  d            d       y )Nr   r   i'  z$[   0    1    2 ..., 9997 9998 9999]Fz#[   0    1    2 ... 9997 9998 9999])r   r   r   rO   rs   re   s    r   test_legacy_stray_commaz(TestPrintOptions.test_legacy_stray_comma&  sP    
6*S5)*,RS
5)S5)*,QRr   c           	         t        j                  d       t        t        t        j                  ddd            d       t        t        t        j                  ddd            t        j                  d	             d
}t        t        t        j                  d|            dj                  |             t        t        t        j                  d|            t        j                  dj                  |                   y )Nr  	linewidthr   g      4@f4r*   zHarray([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.], dtype=float32)g      7@zu            array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22.],
                  dtype=float32)r  r%   z"array(['1', '1', '1'], dtype='{}')r	  zm            array(['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'],
                  dtype='{}'))	r   r   r   r   rs   r  r  r.   rc  )r   styps     r   test_dtype_linewidth_wrappingz.TestPrintOptions.test_dtype_linewidth_wrapping-  s    
b)T"))Bs$78V	XT"))Bs$78(// K$ ;% 	& T"''!401077=	?T"''"D12HOO E!!'5/ 	0r   native))bool)uint8)uint16)uint32)uint64)int8)int16)int32)int64)r  )float32)r   )U1c                 J   t        j                  |      }|j                         }t        t        j                  dg|            }t        t        j                  dg|            }d|v |t
        v z  sJ d       |j                  dkD  r||k7  sJ d|j                   |v sJ yy)z
        there was an issue where
        repr(array([0], dtype='<u2')) and repr(array([0], dtype='>u2'))
        both returned the same thing:
        array([0], dtype=uint16)
        even though their dtypes have different endianness.
        r#   r+   zan array's repr should show dtype if and only if the type of the array is NOT one of the standard types (e.g., int32, bool, float64).zdtype='N)r   r+   newbyteorderr   r   r   itemsize	byteorder)r   r  native_dtypenon_native_dtypenon_native_reprnative_reprs         r   test_dtype_endianness_reprz+TestPrintOptions.test_dtype_endianness_repr<  s    4 xx''446rxx-=>?288QC67;&<=+HI 	21	2I $$q( #k111-7789_LLL	 )r   c                 V   t        j                  dd      }t        j                  d       t        t	        |      t        j                  d             t        j                  dd       t        t	        |      t        j                  d	             t        j                  d
d      }t        j                  dd       t        t	        |      t        j                  d             t        j                  dd       t        t	        |      t        j                  d             y )Nr  r$   
fill_value   r  zN            array([2, 2, 2,
                   2, 2, 2,
                   2])r   r  r   z;            array([2, 2, 2,
                   2, 2, 2, 2])r     FzQ            array([2, 2, 2,
                   2, 2, 2,
                   2, 2])z>            array([2, 2, 2, 2,
                   2, 2, 2, 2]))r   r  r   r   r   r  r  r   s     r   test_linewidth_reprz$TestPrintOptions.test_linewidth_repre  s    GGA!$
b)GOO  	
 	b8GOO # $	
 GGA!$
b7GOO  	
 	b8GOO # $	
r   c                 ,   t        j                  dd      }t        j                  d       t        t	        |      t        j                  d             t        j                  dd       t        t	        |      t        j                  d             y )	Nr  r$   r  r  zK            [2 2 2 2 2 2 2 2
             2 2 2 2 2 2 2 2
             2 2]r   r  z>            [2 2 2 2 2 2 2 2 2
             2 2 2 2 2 2 2 2 2])r   r  r   r   rO   r  r  r   s     r   test_linewidth_strz#TestPrintOptions.test_linewidth_str  sr    GGB1%
b)FOO  	
 	b8FOO # $	
r   c                    t        j                  dd       t        j                  d      j                  d      }t	        t        |      t        j                  d             t        j                  d      }t	        t        |      t        j                  d             t        j                  d	       t	        t        |      t        j                  d
             t	        t        |      t        j                  d             y )Nr#   r&  r  )r%   r%   r%   z            array([[[ 0, ...,  2],
                    ...,
                    [ 6, ...,  8]],

                   ...,

                   [[18, ..., 20],
                    ...,
                    [24, ..., 26]]]))r%   r%   r#   r#   z            array([[[[0.]],

                    ...,

                    [[0.]]],


                   ...,


                   [[[0.]],

                    ...,

                    [[0.]]]])r   r   z            array([[[ 0, ...,  2],
                    ..., 
                    [ 6, ...,  8]],

                   ..., 
                   [[18, ..., 20],
                    ..., 
                    [24, ..., 26]]])z            array([[[[ 0.]],

                    ..., 
                    [[ 0.]]],


                   ..., 
                   [[[ 0.]],

                    ..., 
                    [[ 0.]]]]))	r   r   rs   r2  r   r   r  r  r   )r   r(   rJ  s      r   test_edgeitemszTestPrintOptions.test_edgeitems  s    
a15IIbM!!),GOO 	( 	)	
 HH\"GOO ! "	
* 	6*GOO ( )	
 	GOO " #	
r   c                     t        j                  dd       t        j                  dd      j                  dg      }d}t	        t        |      |       y )Nr#   r&     r5  r*   )r6  r5  )rr   r$   r%   zxarray([([[[ 0, ...,  2], [ 3, ...,  5]], ..., [[24, ..., 26], [27, ..., 29]]],)],
      dtype=[('i', '<i8', (5, 2, 3))]))r   r   rs   r-   r   r   )r   r   r/  s      r   test_edgeitems_structuredz*TestPrintOptions.test_edgeitems_structured  sK    
a15IIe5)..0G/HI5 	
 	T!We$r   c                 V   t        t        t        j                  t	        d             t        t
        t        j                  d       t        t
        t        j                  d       t        t
        t        j                  d       t        t
        t        j                  d       y )Nr   )r(  rV      1r  r~  )r   
ValueErrorr   r   r   r   re   s    r   test_bad_argszTestPrintOptions.test_bad_args  s`    j""5"5uNi!4!4Di!4!4Ei!4!4Di!4!4Dr   N)r   r   r    __doc__rz  r|  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   parametrizer  r  r  r  r  r  r!   r   r   rv  rv    s    8-,A:3
5.5>M0
%'ER/
-]L~
IS0 [[	
	
$M%$M.#
J
$D
L%Er   rv  c                  j    d} t        j                  dgt              }t        t	        |      |        y )Nu   array(['é'], dtype=object)   ér*   )r   r   r^  r   r   )expectedr   s     r   test_unicode_object_arrayr    s'    ,H
&(Aa(#r   c                   $    e Zd Zd Zd Zd Zd Zy)TestContextManagerc                     t        j                  d      5  t        t        j                  dg      dz        }d d d        t	        d       y # 1 sw Y   xY w)Nr$   r  r  r%   z[0.67])r   printoptionsrO   r   r   )r   r   s     r   test_ctx_mgrzTestContextManager.test_ctx_mgr  s?    __q)BHHcUOa'(A *Q! *)s   #AAc                     t        j                         }t        j                  |d   dz
  |d   dz
        5  	 d d d        t        t        j                         |       y # 1 sw Y   (xY w)Nr  r#   r  r&   r  r  )r   rx  r  r   r   optss     r   test_ctx_mgr_restoresz(TestContextManager.test_ctx_mgr_restores  s]    ""$__tK'81'<'+K'81'<>> 	R((*D1> >s   A!!A*c                     t        j                         }	 t        j                  dd      5  t        # 1 sw Y   nxY wn# t        $ r Y nw xY wt	        t        j                         |       y )Nr$   r9  r  )r   rx  r  r  r   r  s     r   test_ctx_mgr_exceptionsz*TestContextManager.test_ctx_mgr_exceptions	  sZ    ""$	1;   <;; 		R((*D1s   A 4=A 	AAc                     ddi}t        j                  di |5 }|j                         }d d d        t        |D ci c]  }||   
 c}|       y # 1 sw Y   (xY wc c}w )Nr  r$   r!   )r   r  copyr   )r   r  ctx
saved_optsks        r   test_ctx_mgr_as_smthz'TestContextManager.test_ctx_mgr_as_smth  sZ    Q__$t$J %51aA&5t< %$5s   AAAN)r   r   r    r   r  r  r  r!   r   r   r  r    s    "22=r   r  )rk  ri  
hypothesisr   hypothesis.extrar   rr  r   r   numpy.testingr   r   r   r   r	   r
   numpy.core.arrayprintr   r  r   r   r   rv  r  r  r!   r   r   <module>r     sn    
 	  *    0 QO QOh-# -#^{ {z	cE cEJ$= =r   