Ë
    6Š·ju  ã                   óZ  — d dl Z d dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZmZmZmZmZ d„ Zd„ Zd;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# G d„ d«      Z$d„ Z% G d„ dejL                  «      Z' G d„ de'«      Z(d„ Z)d„ Z*d„ Z+d „ Z,e jZ                  j]                  d!ej^                  ej`                  ejb                  ejd                  ejf                  ejh                  ejj                  ejl                  ejn                  ejp                  ejr                  ejt                  g«      d"„ «       Z;e jZ                  j]                  d#g d$¢«      d%„ «       Z<e jZ                  j]                  d&g d'¢«      d(„ «       Z=e jZ                  j]                  d)g d*¢«      d+„ «       Z>e jZ                  j]                  d,g d-¢«      d.„ «       Z?e jZ                  j]                  d/g d0¢«      d1„ «       Z@d2„ ZAd3„ ZBd4„ ZCd5„ ZDd6„ ZEd7„ ZFe jZ                  j]                  d8g d9¢«      d:„ «       ZGy)<é    N)ÚrationalÚ	rational2)Ú_broadcast_shapeÚ
as_stridedÚbroadcast_arraysÚbroadcast_shapesÚbroadcast_toÚsliding_window_view)Úassert_Úassert_array_equalÚassert_equalÚassert_raisesÚassert_raises_regexc                 óÔ   — | D �cg c]  }t        j                  |«      ‘Œ }}t        |Ž }|D �cg c]  }|j                  ‘Œ }}|gt	        |«      z  }t        ||«       y c c}w c c}w ©N)ÚnpÚzerosr   ÚshapeÚlenr   )Úinput_shapesÚexpected_shapeÚsÚinarraysÚ	outarraysÚaÚ	outshapesÚexpecteds           úX/root/workspace/.venv/lib/python3.12/site-packages/numpy/lib/tests/test_stride_tricks.pyÚassert_shapes_correctr      sc   € ð &2Ö2 ”—‘˜•Ð2€HÐ2Ü  (Ð+€IØ"+Ö,˜Q�—“Ð,€IÐ,ØÐ¤# h£-Ñ/€HÜ�˜HÕ%ùò	 3ùâ,s
   …A ¯A%c                 ó|   — | D �cg c]  }t        j                  |«      ‘Œ }}t        t        t        g|¢­Ž  y c c}w r   )r   r   r   Ú
ValueErrorr   )r   r   r   s      r   Ú assert_incompatible_shapes_raiser"   !   s4   € ð &2Ö2 ”—‘˜•Ð2€HÐ2Ü”*Ô.Ð:°Ô:ùò 3s   …9c                 ój  — t        j                  | t        ¬«      }t        t         j                  j	                  |«      «      }t        j
                  |«      j                  |«      }|r|j                  }|j                  }|r|d d d…   }|d d d…   }||z   }t        ||«      \  }}	t        ||	«       y )N©Údtypeéÿÿÿÿ)
r   r   ÚintÚmultiplyÚreduceÚarangeÚreshapeÚTr   r   )
Úshape0Úshape1Ú
transposedÚflippedÚx0ÚnÚx1ÚyÚb0Úb1s
             r   Úassert_same_as_ufuncr7   )   sž   € ô 
�‰�&¤Ô	$€Bô 	ŒB�K‰K×Ñ˜vÓ&Ó'€AÜ	�‰�1‹×	Ñ	˜fÓ	%€BÙØ�T‰TˆØ�T‰TˆÙØ‘�"�‰XˆØ‘�"�‰Xˆð 	ˆR‰€AÜ˜b "Ó%�F€BˆÜ�q˜"Õó    c                  ó¦   — t        j                  d«      } t        j                  d«      }t        | |«      \  }}t        | |«       t        ||«       y )Né
   )r   r*   r   r   )Úxr4   ÚbxÚbys       r   Ú	test_samer>   ?   s@   € Ü
�	‰	�"‹€AÜ
�	‰	�"‹€AÜ˜a Ó#�F€BˆÜ�q˜"ÔÜ�q˜"Õr8   c                  ó¾   — t        j                  d«      } t        j                  d«      }t        t        d«      5  t	        | |d¬«       d d d «       y # 1 sw Y   y xY w)Nr:   zgot an unexpected keywordÚfloat64r$   )r   r*   r   Ú	TypeErrorr   )r;   r4   s     r   Útest_broadcast_kwargsrB   F   sJ   € ô 	�	‰	�"‹€AÜ
�	‰	�"‹€Aä	œYÐ(CÓ	Dñ 0Ü˜˜A YÕ/÷0÷ 0ñ 0ús   »AÁAc                  ó  — t        j                  g d¢g«      } t        j                  dgdgdgg«      }t        | |«      \  }}t        j                  g d¢g d¢g d¢g«      }|j                  }t	        ||«       t	        ||«       y )N©é   é   é   rE   rF   rG   )r   Úarrayr   r,   r   )r;   r4   r<   r=   Úbx0Úby0s         r   Útest_one_offrK   Q   sn   € Ü
�‰’)�Ó€AÜ
�‰�1�#˜�s˜Q˜C�Ó!€AÜ˜a Ó#�F€BˆÜ
�(‰(’Išyª)Ð4Ó
5€CØ
�%‰%€CÜ�s˜BÔÜ�s˜BÕr8   c                  óz   — g d¢} | D ]2  }|g}t        ||«       ||g}t        ||«       |||g}t        ||«       Œ4 y )N)
© ©rE   ©rG   ©r   rE   )r   rG   ©rE   r   )rG   r   ©rE   rG   ©rG   rE   ©rG   rG   ©r   )Údatar   r   Úinput_shapes2Úinput_shapes3s        r   Útest_same_input_shapesrY   [   sT   € ò€Dð ò 	4ˆØ�wˆä˜l¨EÔ2à ˜ˆÜ˜m¨UÔ3à  uÐ-ˆÜ˜m¨UÕ3ñ	4r8   c                  óÚ   — ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd	dgdgdd	gdgddgdgddgdgdd	gd	gg} | D ]#  \  }}t        ||«       t        |d d d
…   |«       Œ% y )NrN   rO   rR   rT   rS   ©rE   rE   rQ   ©r   r   rP   r&   rU   ©rV   r   r   s      r   Ú(test_two_compatible_by_ones_input_shapesr^   v   sè   € ð
 �ˆ�tÐØ
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"ð€Dð )-ò BÑ$ˆ�nÜ˜l¨NÔ;ä˜l©4¨R¨4Ñ0°.ÕAñBr8   c                  ó   — ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgdd	gd	gdd
gd	gdd	gd	gdd	gd	gddgdgdd
gd
gddgdgddgdgdd
gd
gg} | D ]#  \  }}t        ||«       t        |d d d…   |«       Œ% y )NrM   rO   rT   rS   rN   r[   rR   ©r   r\   rP   rQ   r&   rU   r]   s      r   Ú3test_two_compatible_by_prepending_ones_input_shapesra   �   s0  € ð
 ˆdˆ�TÐØ
�ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
�$ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
ˆfˆ�vÐØ
ˆdˆ�TÐØ
�ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
�$ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
ˆfˆ�vÐð)€Dð, )-ò BÑ$ˆ�nÜ˜l¨NÔ;ä˜l©4¨R¨4Ñ0°.ÕAñBr8   c                  óf   — ddgddgg d¢ddgg} | D ]  }t        |«       t        |d d d…   «       Œ  y )	NrO   ©é   ©rF   rG   ©rF   ©rO   rO   rc   ©rE   rG   rd   ©rF   rG   rG   r&   )r"   )rV   r   s     r   Ú)test_incompatible_shapes_raise_valueerrorrj   ¯   sN   € ð 
ˆtˆØ	�ˆÚØ	�IÐð	€Dð ò =ˆÜ(¨Ô6ä(¨±d¸°dÑ);Õ<ñ=r8   c            
      óŠ  — g ddgdg‘ddgdg‘ddgdg‘ddgdg‘ddgdg‘ddgdg‘ddgdg‘ddgdg‘d	dgdg‘dd	gdg‘ddgdg‘ddgdg‘dd	gd	g‘d
dgdg‘ddgdg‘ddgdg‘ddgdg‘d
dgdg‘ddgdg‘ddgdg‘ddgdg‘d
dgdg‘d
dgdg‘d
dgdg‘ddgdg‘dd	gdg‘ddgdg‘d
dgdg‘ddgdg‘dd	gd	g‘ddgdg‘d
dgdg‘d
d	gd	g‘} | D ]v  \  }}t        |d   |d   d|d   › d|d   › �«       t        |d   |d   «       t        |d   |d   d«       d
|vsŒOt        |d   |d   dd«       t        |d   |d   dd«       Œx y )NrN   rO   rR   rT   rS   r[   rQ   r\   rP   rM   r`   r   rE   zShapes: ú TF)r7   r]   s      r   Útest_same_as_ufuncrm   ¾   s.  € ð"Ø
�ˆ�tÐð"à
�&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð	"ð
 �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð �&Ð	˜6Ð"ð"ð ˆdˆ�TÐð"ð �ˆ˜Ð ð"ð  �ˆ˜Ð ð!"ð" �ˆ˜Ð ð#"ð$ ˆfˆ�vÐð%"ð& �$ˆ˜Ð ð'"ð( �ˆ˜Ð ð)"ð* �ˆ˜Ð ð+"ð, ˆfˆ�vÐð-"ð. ˆfˆ�vÐð/"ð0 ˆdˆ�TÐð1"ð2 �ˆ˜Ð ð3"ð4 �ˆ˜Ð ð5"ð6 �ˆ˜Ð ð7"ð8 ˆfˆ�vÐð9"ð: �$ˆ˜Ð ð;"ð< �ˆ˜Ð ð="ð> �ˆ˜Ð ð?"ð@ ˆfˆ�vÐðA"ðB ˆfˆ�vÐðC"€DðF )-ò OÑ$ˆ�nÜ˜\¨!™_¨l¸1©oØ'¨°Q©Ð'8¸¸,Àq¹/Ð9JÐKô	Mô 	˜\¨!™_¨l¸1©oÔ>ä˜\¨!™_¨l¸1©o¸tÔDð �\Ò!Ü  ¨a¡°,¸q±/À5È$ÔOÜ  ¨a¡°,¸q±/À4ÈÕNñOr8   c                  óf  — t        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      d	t        j                  d	«      gt        j                  d«      dt        j                  d«      gt        j                  d«      d
t        j                  d«      j                  dd«      gt        j                  d«      dt        j                  g d¢g d¢g«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gt        j                  d«      dt        j                  d«      gg} | D ]  \  }}}t        ||«      }t        ||«       Œ  y )Nr   r`   rN   rE   rO   rG   rf   rF   rD   rR   r&   re   ©r   rE   rF   ©rE   rF   )r   rF   ©rF   rE   )rF   r   )r   rH   r   Úonesr*   r+   r	   r   )rV   Úinput_arrayr   r   Úactuals        r   Útest_broadcast_to_succeedsru   ò   sÓ  € ä	�‰�!‹�dœBŸH™H Q›KÐ(Ü	�‰�!‹�dœBŸH™H Q›KÐ(Ü	�‰�!‹�dœBŸH™H Q›KÐ(Ü	�‰�‹�Tœ2Ÿ7™7 1›:Ð&Ü	�‰�‹�Tœ2Ÿ7™7 1›:Ð&Ü	�‰�‹�Y¤§¡¨	Ó 2Ð3Ü	�‰�1‹�tœRŸY™Y q›\Ð*Ü	�‰�1‹�vœrŸy™y¨›|×3Ñ3°A°rÓ:Ð;Ü	�‰�1‹�vœrŸx™xª²IÐ(>Ó?Ð@ä	�‰�‹�QœŸ™ ›
Ð#Ü	�‰�‹�QœŸ™ ›
Ð#Ü	�‰�‹�QœŸ™ ›
Ð#ô 
�‰�‹�Tœ2Ÿ7™7 1›:Ð&Ü	�‰�‹˜&¤"§'¡'¨&£/Ð2Ü	�‰�‹˜&¤"§'¡'¨&£/Ð2ð%€Dð( )-ò -Ñ$ˆ�U˜HÜ˜k¨5Ó1ˆÜ˜8 VÕ,ñ-r8   c                  ó´   ‡‡— ddgddgddgddgddgddgddgd	dgdd
gddgddgg} | D ].  \  }Št        j                  |«      Št        t        ˆˆfd„«       Œ0 y )Nr`   rM   rN   rO   rf   rc   rp   rq   r[   r&   )r&   )r&   rF   c                  ó   •— t        ‰ ‰«      S r   )r	   )ÚarrÚtarget_shapes   €€r   ú<lambda>z*test_broadcast_to_raises.<locals>.<lambda>  s   ø€ ¬,°s¸LÓ*I€ r8   )r   r   r   r!   )rV   Ú
orig_shaperx   ry   s     @@r   Útest_broadcast_to_raisesr|     sŠ   ù€ à	ˆrˆ
Ø	ˆrˆ
Ø	ˆrˆ
Ø	ˆtˆØ	ˆtˆØ	ˆtˆØ	�ÐØ	�ˆØ	ˆrˆ
Ø	ˆuˆØ	�Ðð€Dð %)ò KÑ ˆ
�LÜ�h‰h�zÓ"ˆÜ”jÔ"IÕJñKr8   c                  ó®  ‡ — t        t        «       d«       t        t        ddg«      d«       t        t        t        j                  d«      «      d«       t        t        t        j                  d«      t        j                  d«      «      d«       t        t        t        j                  d«      gdz  Ž d«       t        t        t        j                  d«      gd	z  Ž d«       t        t        t        j                  d«      gdz  dgz   Ž d«       t        j                  d«      gdz  t        j                  d
«      gdz  z   Š t	        t
        ˆ fd„«       y )NrM   rE   rF   rf   r[   ©rG   rd   rp   é    éd   rG   c                  ó   •— t        ‰ Ž S r   )r   ©Úbad_argss   €r   rz   z&test_broadcast_shape.<locals>.<lambda>-  ó   ø€ Ô&6¸Ð&A€ r8   )r   r   r   rr   r   r!   r‚   s   @r   Útest_broadcast_shaper…     sü   ø€ ô Ô!Ó# RÔ(ÜÔ! 1 a &Ó)¨4Ô0ÜÔ!¤"§'¡'¨&£/Ó2°FÔ;ÜÔ!¤"§'¡'¨&£/´2·7±7¸6³?ÓCÀVÔLÜÔ!¤R§W¡W¨V£_Ð$5¸Ñ$:Ð<¸fÔEÜÔ!¤R§W¡W¨V£_Ð$5¸Ñ$;Ð=¸vÔFô Ô!¤R§W¡W¨Q£Z L°2Ñ$5¸¸Ñ$;Ð=¸tÔDÜ—‘˜“
ˆ|˜bÑ ¤B§G¡G¨A£J <°"Ñ#4Ñ4€HÜ”*ÓAÕBr8   c                  óÆ  — g dgdgdgdgdgddgdgdgdgddgdgg d¢dgd	gd	gd
dgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgg} | D ]  \  }}t        t        |Ž |«       Œ t        t        dgdz  Ž d«       t        t        dgdz  Ž d«       t        t        dgdz  Ž d«       y )NrM   ©é   rp   rf   r[   r~   ))é   rˆ   ©é   r‰   rE   r‡   )r‹   rE   rˆ   )r‹   r‰   rˆ   rŠ   rR   rS   rT   rQ   r\   rP   r`   rN   rO   rF   ©rG   rF   r   r€   )r   r   )rV   r   ry   s      r   Útest_broadcast_shapes_succeedsr�   0  s²  € ð 
ˆRˆØ
ˆˆrˆ
Ø
ˆ�ˆØ
�$ˆ˜Ð Ø
ˆ�6ÐØ
�&Ð	˜6Ð"Ú	-¨yÐ9Ø
ˆ�iÐ Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
�&Ð	˜6Ð"Ø
ˆdˆ�TÐØ
�ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
�$ˆ˜Ð Ø
�ˆ˜Ð Ø
�ˆ˜Ð Ø
ˆfˆ�vÐØ
ˆfˆ�vÐØ
�ˆ�tÐØ
ˆVˆ�fÐð7€Dð: '+ò DÑ"ˆ�lÜÔ% |Ð4°lÕCðDô Ô! V H¨r¡MÐ3°VÔ<ÜÔ! V H¨s¡NÐ4°fÔ=ô Ô! T F¨R¡KÐ1°4Õ8r8   c                  ó¤   ‡‡— ddgddgg d¢ddgg d¢d	dgg} | D ]  Št        t        ˆfd
„«       Œ dgdz  dgdz  z   Št        t        ˆfd„«       y )NrO   rc   re   rf   rg   rh   ri   )rp   rS   rŒ   )r:   r‹   rF   c                  ó   •— t        ‰ Ž S r   ©r   )r   s   €r   rz   z.test_broadcast_shapes_raises.<locals>.<lambda>d  s   ø€ Ô*:¸LÐ*I€ r8   r   c                  ó   •— t        ‰ Ž S r   r�   r‚   s   €r   rz   z.test_broadcast_shapes_raises.<locals>.<lambda>g  r„   r8   )r   r!   )rV   rƒ   r   s    @@r   Útest_broadcast_shapes_raisesr’   Y  sp   ù€ ð 
ˆtˆØ	�ˆÚØ	�IÐÚ)Ø	
ˆFˆð€Dð ò KˆÜ”jÓ"IÕJðKð ˆv˜‰{˜d˜V b™[Ñ(€HÜ”*ÓAÕBr8   c                  ó  — t        j                  d g«      } t        | «      }t        j                  d g«      }t        |t        j                  d g«      «       t        j                  g d¢«      } t        | dd| j                  z  f¬«      }t        j                  ddg«      }t        ||«       t        j                  g d¢«      } t        | ddd| j                  z  f¬«      }t        j                  g d¢g d¢g d¢g«      }t        ||«       t        j
                  d	d
g«      }t        j                  d|¬«      } t        j                  dd«      | d<   t        | dd| j                  f¬«      }g d¢gdz  }d gdz  gdz  }t        |j
                  |«       t        ||d   «       t        ||d   «       t        j                  dd¬«      } t        | dd| j                  f¬«      }t        | j
                  |j
                  «       t        j
                  dgdgdœ«      }t        j                  d|¬«      } t        | dd| j                  f¬«      }t        | j
                  |j
                  «       t        d«      D �cg c]  }t        |«      ‘Œ }}t        j                  |t        ¬«      } t        | dd| j                  f¬«      }t        | j
                  |j
                  «       t        |gdz  |«       t        d«      D �cg c]  }t        |«      ‘Œ }}t        j                  |t        ¬«      } t        | dd| j                  f¬«      }t        | j
                  |j
                  «       t        |gdz  |«       y c c}w c c}w )N©rE   rF   rG   rd   rf   rF   ©r   ÚstridesrE   rG   r~   r   )ÚnumÚi4)ÚobjÚOrc   r$   r‹   r—   rd   r™   ÚV4Ú )ÚnamesÚformats)r   rH   r   r   Úitemsizer%   Úemptyr*   r   Úranger   r   )r   Úa_viewr   ÚdtÚexpected_numÚexpected_objÚiÚrs           r   Útest_as_stridedr¨   j  sÀ  € Ü
�‰�$�Ó€AÜ˜‹]€FÜ�x‰x˜˜Ó€HÜ�vœrŸx™x¨¨Ó/Ô0ä
�‰’Ó€AÜ˜ °°A·J±J±Ð/@ÔA€FÜ�x‰x˜˜A˜Ó€HÜ�v˜xÔ(ä
�‰’Ó€AÜ˜ °!°Q¸¿¹±^Ð1DÔE€FÜ�x‰xš¢|²\ÐBÓC€HÜ�v˜xÔ(ô 
�‰�= ,Ð/Ó	0€BÜ
�‰�˜RÔ €AÜ�y‰y˜˜A‹€A€e�HÜ˜ °!°Q·Z±Z°ÔA€FÚ �> AÑ%€LØ�F˜Q‘J�< !Ñ#€LÜ�—‘˜rÔ"Ü�| V¨E¡]Ô3Ü�| V¨E¡]Ô3ô 	�‰�˜TÔ"€AÜ˜ °!°Q·Z±Z°ÔA€FÜ�—‘˜&Ÿ,™,Ô'ô 
�‰˜R˜D¨d¨VÑ4Ó	5€BÜ
�‰�˜RÔ €AÜ˜ °!°Q·Z±Z°ÔA€FÜ�—‘˜&Ÿ,™,Ô'ô $ A›hÖ'˜Œ�!�Ð'€AÐ'Ü
�‰�œ(Ô#€AÜ˜ °!°Q·Z±Z°ÔA€FÜ�—‘˜&Ÿ,™,Ô'Ü˜�s˜Q‘w Ô'ô  % Q›xÖ(˜!Œ�1�Ð(€AÐ(Ü
�‰�œ)Ô$€AÜ˜ °!°Q·Z±Z°ÔA€FÜ�—‘˜&Ÿ,™,Ô'Ü˜�s˜Q‘w Õ'ùò 	(ùò 	)s   É<M<ÌNc                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestSlidingWindowViewc                 ó    — t        j                  d«      }t        |d«      }t        j                  ddgddgddgddgg«      }t	        ||«       y )Nr‹   rF   r   rE   rG   rd   )r   r*   r
   rH   r   )Úselfrx   Úarr_viewr   s       r   Útest_1dzTestSlidingWindowView.test_1d   sU   € Ü�i‰i˜‹lˆÜ& s¨AÓ.ˆÜ—8‘8˜a ˜VØ ˜VØ ˜VØ ˜Vð%ó &ˆô 	˜8 XÕ.r8   c                 ó  — t         j                  d d…d d…f   \  }}d|z  |z   }d}t        ||«      }t        j                  ddgddggddgdd	ggddgd	d
gggddgddggdd	gddggd	d
gddgggg«      }t	        ||«       y )NrG   rd   r:   )rF   rF   r   rE   é   rF   é   é   é   é   é   é   ©r   Úogridr
   rH   r   ©r¬   r¦   Újrx   r   r­   r   s          r   Útest_2dzTestSlidingWindowView.test_2d©  sÈ   € Ü�x‰x˜˜˜˜B˜Q˜B˜Ñ‰ˆˆ1Ø�1‰f�q‰jˆØˆÜ& s¨EÓ2ˆÜ—8‘8  1˜v¨¨B xÐ0Ø ! 1˜v¨¨B xÐ0Ø ! 1˜v¨¨B xÐ0ð2ð !# B˜x¨"¨b¨Ð2Ø " B˜x¨"¨b¨Ð2Ø " B˜x¨"¨b¨Ð2ð4ð5ó 6ˆô 	˜8 XÕ.r8   c                 óÂ   — t         j                  d d…d d…f   \  }}d|z  |z   }t        |dd«      }t        j                  g d¢g d¢g d¢g d¢gg«      }t	        ||«       y )	NrG   rd   r:   r   )r   r:   r³   )rE   r°   r´   )rF   r±   rµ   )rG   r²   r¶   r·   ©r¬   r¦   rº   rx   r­   r   s         r   Útest_2d_with_axisz'TestSlidingWindowView.test_2d_with_axis¶  sj   € Ü�x‰x˜˜˜˜B˜Q˜B˜Ñ‰ˆˆ1Ø�1‰f�q‰jˆÜ& s¨A¨qÓ1ˆÜ—8‘8škÚ)Ú)Ú)ð+ð ,ó -ˆô 	˜8 XÕ.r8   c                 óØ   — t         j                  d d…d d…f   \  }}d|z  |z   }t        |dd«      }t        j                  g d¢g d¢ggg d¢g d	¢ggg d
¢g d¢ggg«      }t	        ||«       y )NrG   rd   r:   re   r[   ro   rD   ©r:   r°   r±   ©r°   r±   r²   ©r³   r´   rµ   ©r´   rµ   r¶   r·   r½   s         r   Útest_2d_repeated_axisz+TestSlidingWindowView.test_2d_repeated_axisÀ  s‰   € Ü�x‰x˜˜˜˜B˜Q˜B˜Ñ‰ˆˆ1Ø�1‰f�q‰jˆÜ& s¨F°FÓ;ˆÜ—8‘8šyÚ(ð*ð +â+Ú+ð-ð .â+Ú+ð-ð .ð	/ó 0ˆô 	˜8 XÕ.r8   c                 ó  — t         j                  d d…d d…f   \  }}d|z  |z   }d}t        ||«      }t        j                  g d¢g d¢gg d¢g d¢ggg d¢g d¢gg d¢g d	¢ggg d¢g d
¢gg d	¢g d¢ggg«      }t	        ||«       y )Nrd   r:   re   ro   rÀ   rD   rÁ   rÂ   rÃ   )é   é   r   )rÇ   r   é!   r·   r¹   s          r   Útest_2d_without_axisz*TestSlidingWindowView.test_2d_without_axisÌ  s›   € Ü�x‰x˜˜˜˜B˜Q˜B˜Ñ‰ˆˆ1Ø�1‰f�q‰jˆØˆÜ& s¨EÓ2ˆÜ—8‘8šyª,Ð7Ú(ª,Ð7ð9â+ª\Ð:Ú+ª\Ð:ð<â+ª\Ð:Ú+ª\Ð:ð<ð	=ó >ˆô 	˜8 XÕ.r8   c                 ó0  — t         j                  d d…d d…f   \  }}d|z  |z   }t        j                  t        d¬«      5  t        |d«       d d d «       t        j                  t        d¬«      5  t        |d«       d d d «       t        j                  t        d¬«      5  t        |d	d
¬«       d d d «       t        j                  t        d¬«      5  t        |d«       d d d «       y # 1 sw Y   ŒœxY w# 1 sw Y   ŒxxY w# 1 sw Y   ŒRxY w# 1 sw Y   y xY w)Nrd   r:   zcannot contain negative values©Úmatch)r&   rG   z3must provide window_shape for all dimensions of `x`rN   z2Must provide matching length window_shape and axisrh   rP   )Úaxisz.window shape cannot be larger than input array©r‹   r‹   )r   r¸   ÚpytestÚraisesr!   r
   )r¬   r¦   rº   rx   s       r   Útest_errorsz!TestSlidingWindowView.test_errorsÙ  s  € Ü�x‰x˜˜˜˜B˜Q˜B˜Ñ‰ˆˆ1Ø�1‰f�q‰jˆÜ�]‰]œ:Ð-MÔNñ 	.Ü  WÔ-÷	.ä�]‰]ÜØKôMñ 	+ô    TÔ*÷	+ô �]‰]ÜØJôLñ 	=ô    Y°VÕ<÷	=ô �]‰]ÜØFôHñ 	-ô    VÔ,÷	-ð 	-÷	.ð 	.ú÷	+ð 	+ú÷	=ð 	=ú÷	-ð 	-ús0   Á C(Á0C4Â D ÃDÃ(C1Ã4C=Ä D	ÄDc                 óš  — t        j                  d«      }t        |dd¬«      }t        |j                  j
                   «       t        j                  t        d¬«      5  d|d<   d d d «       t        |dd	¬«      }t        |j                  j
                  «       d|d
<   t        |t        j                  g d¢«      «       y # 1 sw Y   Œ]xY w)Nr‹   rF   F©Ú	writeablez#assignment destination is read-onlyrË   rG   r\   TrP   )r   rG   rF   rG   rd   )r   r*   r
   r   ÚflagsrÔ   rÏ   rÐ   r!   r   rH   )r¬   rx   Úviews      r   Útest_writeablez$TestSlidingWindowView.test_writeableë  s¢   € Ü�i‰i˜‹lˆÜ" 3¨°UÔ;ˆÜ�D—J‘J×(Ñ(Ð(Ô)Ü�]‰]ÜØ;ô=ñ 	ð ˆD�‰J÷	ô # 3¨°TÔ:ˆÜ�—
‘
×$Ñ$Ô%ØˆˆT‰
Ü˜3¤§¡ªÓ 9Õ:÷	ð 	ús   ÁCÃC
c           	      óD  —  G d„ dt         j                  «      }t        j                  d«      j                  |«      }t	        t        t        |dd¬«      |«       «       t	        t        t        |dd¬«      |«      «       t	        t        t        |d«      |«       «       y )Nc                   ó   — e Zd Zy)ú1TestSlidingWindowView.test_subok.<locals>.MyArrayN)Ú__name__Ú
__module__Ú__qualname__rM   r8   r   ÚMyArrayrÚ   ù  s   „ Ør8   rÞ   r‹   rF   F©ÚsubokT)r   Úndarrayr*   rÖ   r   Ú
isinstancer
   )r¬   rÞ   rx   s      r   Ú
test_subokz TestSlidingWindowView.test_subokø  sˆ   € ô	”b—j‘jô 	ô �i‰i˜‹l×Ñ Ó(ˆÜ”JÔ2°3¸Ø9>ô @à&ó(ð (ô 	)ô 	”
Ô.¨s°A¸TÔBÀGÓLÔMä”JÔ2°3¸Ó:¸GÓDÐDÕEr8   N)rÛ   rÜ   rÝ   r®   r»   r¾   rÄ   rÉ   rÑ   r×   rã   rM   r8   r   rª   rª   Ÿ  s+   „ ò/ò/ò/ò
/ò/ò-ò$;ó
Fr8   rª   c                  óÀ  — t        j                  d«      } t        | d¬«      }t        |j                  j
                   «       t        | d¬«      }t        |j                  j
                  «       d|d<   t        | t        j                  | d«      «       d| j                  _        t        | d¬«      }t        | d¬«      }t        |j                  j
                   «       y )Nr:   FrÓ   TrG   .)r   rr   r   r   rÕ   rÔ   r   Ú	full_like)rx   rÖ   s     r   Úas_strided_writeableræ     s©   € Ü
�'‰'�"‹+€CÜ�c UÔ+€DÜ�—
‘
×$Ñ$Ð$Ô%ô �c TÔ*€DÜˆD�J‰J× Ñ Ô!Ø€Dˆ�IÜ�sœBŸL™L¨¨aÓ0Ô1ð  €C‡I�IÔÜ�c UÔ+€DÜ�c TÔ*€DÜ�—
‘
×$Ñ$Ð$Õ%r8   c                   ó   — e Zd Zd„ Zy)ÚVerySimpleSubClassc                 óN   — t        j                  |ddi|¤Žj                  | «      S )Nrà   T)r   rH   rÖ   )ÚclsÚargsÚkwargss      r   Ú__new__zVerySimpleSubClass.__new__  s&   € Ü�x‰x˜Ð4 TÐ4¨VÑ4×9Ñ9¸#Ó>Ð>r8   N)rÛ   rÜ   rÝ   rí   rM   r8   r   rè   rè     s   „ ó?r8   rè   c                   ó   — e Zd Zd„ Zd„ Zy)ÚSimpleSubClassc                 ó`   — t        j                  |ddi|¤Žj                  | «      }d|_        |S )Nrà   TÚsimple)r   rH   rÖ   Úinfo)rê   rë   rì   r¬   s       r   rí   zSimpleSubClass.__new__  s1   € Ü�x‰x˜Ð4 TÐ4¨VÑ4×9Ñ9¸#Ó>ˆØˆŒ	Øˆr8   c                 ó.   — t        |dd«      dz   | _        y )Nrò   rœ   z
 finalized)Úgetattrrò   )r¬   r™   s     r   Ú__array_finalize__z!SimpleSubClass.__array_finalize__"  s   € Ü˜C ¨Ó,¨|Ñ;ˆ�	r8   N)rÛ   rÜ   rÝ   rí   rõ   rM   r8   r   rï   rï     s   „ òó
<r8   rï   c                  óœ  — t        g d¢«      } t        t        | «      t         u «       t        | dd| j                  z  f¬«      }t        t        |«      t
        j                  u «       t        | dd| j                  z  fd¬«      }t        t        |«      t         u «       t        g d¢«      } t        | dd| j                  z  fd¬«      }t        t        |«      t        u «       t        |j                  dk(  «       t        j                  t        | «      «      j                  dd	«      }t        | |«      \  }}t        t        |«      t
        j                  u «       t        t        |«      t
        j                  u «       t        |j                  |j                  k(  «       t        | |d¬
«      \  }}t        t        |«      t        u «       t        |j                  dk(  «       t        t        |«      t
        j                  u «       t        |j                  |j                  k(  «       d}t        | |«      }t        t        |«      t
        j                  u «       t        |j                  |k(  «       t        | |d¬
«      }t        t        |«      t        u «       t        |j                  dk(  «       t        |j                  |k(  «       y )Nr”   rf   rF   r•   T)r   r–   rà   zsimple finalizedr&   rE   rß   )rF   rd   )rè   r   Útyper   rŸ   r   rá   rï   rò   r*   r   r+   r   r   r	   )r   r¢   ÚbÚb_viewr   s        r   Útest_subclassesrú   &  s  € äš<Ó(€AÜŒD�‹GÔ)Ð)Ô*Ü˜ °°A·J±J±Ð/@ÔA€FÜŒD�‹LœBŸJ™JÐ&Ô'Ü˜ °°A·J±J±Ð/@ÈÔM€FÜŒD�‹LÔ.Ð.Ô/ä’|Ó$€AÜ˜ °°A·J±J±Ð/@ÈÔM€FÜŒD�‹LœNÐ*Ô+ÜˆF�K‰KÐ-Ñ-Ô.ô 	�	‰	”#�a“&Ó×!Ñ! " aÓ(€AÜ% a¨Ó+�N€FˆFÜŒD�‹LœBŸJ™JÐ&Ô'ÜŒD�‹LœBŸJ™JÐ&Ô'ÜˆF�L‰L˜FŸL™LÑ(Ô)Ü% a¨°$Ô7�N€FˆFÜŒD�‹LœNÐ*Ô+ÜˆF�K‰KÐ-Ñ-Ô.ÜŒD�‹LœBŸJ™JÐ&Ô'ÜˆF�L‰L˜FŸL™LÑ(Ô)ð €EÜ˜!˜UÓ#€FÜŒD�‹LœBŸJ™JÐ&Ô'ÜˆF�L‰L˜EÑ!Ô"Ü˜!˜U¨$Ô/€FÜŒD�‹LœNÐ*Ô+ÜˆF�K‰KÐ-Ñ-Ô.ÜˆF�L‰L˜EÑ!Õ"r8   c                  óÚ  — t        j                  g d¢«      } t        | d«      }t        |j                  j
                  d«       t        t        |j                  t        d «      d«       dt        | «      fdt        d| «      fg}|D ]Å  \  }}t        ||«      D ]±  \  }}|rŠt        j                  t        «      5  t        |j                  j
                  d«       d d d «       t        j                  t        «      5  d|d d  d d d «       t        |j                  j
                  d«       Œ’t        |j                  j
                  d«       Œ³ ŒÇ t        | «      t        d| «      fD ]?  }|D ]8  }d|j                  _        t        |j                  j
                  d«       d|d d  Œ: ŒA d| j                  _        t        d| «      \  }}t        |j                  j
                  d«       d}dg}t!        t        j                  d«      ||«      }	t        j"                  d	«      }
t        |	|
«      \  }}t%        |j&                  |j&                  k(  «       y # 1 sw Y   �Œ{xY w# 1 sw Y   �ŒaxY w)
NrD   re   Fr   ©F©TFTrf   rN   )r   rH   r	   r   rÕ   rÔ   r   r!   Ú__setitem__Úslicer   ÚziprÏ   ÚwarnsÚFutureWarningÚDeprecationWarningr   r   r   r   )ÚoriginalÚresultÚ
test_casesÚis_broadcastÚresultsÚarray_is_broadcastÚ_r   r–   Útricky_arrayÚotherÚfirstÚseconds                r   r×   r×   K  s  € ä�x‰xš	Ó"€HÜ˜( FÓ+€FÜ�—‘×'Ñ'¨Ô/Ü”*˜f×0Ñ0´%¸³+¸qÔAð Ô-¨hÓ8Ð9Ø Ô"2°1°hÓ"?Ð@ðB€Jà!+ò ;Ñˆ�gÜ*-¨l¸GÓ*Dò 	;Ñ&Ð á!Ü—\‘\¤-Ó0ñ ?Ü  §¡×!7Ñ!7¸Ô>÷?ä—\‘\Ô"4Ó5ñ "Ø !�F™1�I÷"ô ˜VŸ\™\×3Ñ3°TÕ:ô ˜VŸ\™\×3Ñ3°TÕ:ñ	;ð;ô % XÓ.Ü$ Q¨Ó1ð3ò ˆàò 	ˆFà%)ˆF�L‰LÔ"ä˜Ÿ™×/Ñ/°Ô6ØˆF‘1‰Iñ	ðð  %€H‡N�NÔÜ   HÓ-�I€A€vÜ�—‘×'Ñ'¨Ô/ð €EØˆc€GÜœbŸh™h q›k¨5°'Ó:€LÜ�H‰H�T‹N€EÜ$ \°5Ó9�M€Eˆ6ÜˆE�K‰K˜6Ÿ<™<Ñ'Õ(÷=?ñ ?ú÷"ñ "ús   Â9!IÃ;I ÉIÉ I*c                  ó  — t        j                  g d¢«      } dt        | «      fdt        d| «      fg}|D ]J  \  }}t        ||«      D ]6  \  }}|rt	        |«      j
                  rŒJ ‚t	        |«      j
                  sŒ6J ‚ ŒL y )NrD   rü   rý   r   )r   rH   r   r   Ú
memoryviewÚreadonly)r  r  r  r  r	  r  s         r   Útest_writeable_memoryviewr  {  s•   € ô
 �x‰xš	Ó"€HàÔ.¨xÓ9Ð:Ø Ô"2°1°hÓ"?Ð@ðB€Jà!+ò 7Ñˆ�gÜ*-¨l¸GÓ*Dò 	7Ñ&Ð á!ô " &Ó)×2Ó2Ð2Ð2ä% fÓ-×6Ó6Ð6Ð6ñ	7ñ7r8   c                  ó  — t        j                  dt        ¬«      } t        j                  dgdz  t        ¬«      }t        | d«      }t	        ||«       t        | t        j                  d«      «      \  }}t	        ||«       y )Nr   r$   rG   rO   )r   rH   Úobjectr	   r   r   rr   )rs   r   rt   r
  s       r   Útest_reference_typesr  �  s`   € Ü—(‘(˜3¤fÔ-€KÜ�x‰x˜˜ ™	¬Ô0€HÜ˜+ tÓ,€FÜ�x Ô(ä  ¬b¯g©g°a«jÓ9�I€FˆAÜ�x Õ(r8   r%   c                 ó°   — t        j                  d| ¬«      }t        |d|j                  dz  fd¬«      }|j                  dk(  sJ ‚|j
                  | k(  sJ ‚y)z=Test as_strided with check_bounds=True with different dtypes.r:   r$   ©r‹   rF   T©r   r–   Úcheck_boundsN)r   r*   r   rŸ   r   r%   )r%   r;   r4   s      r   Ú(test_as_strided_checked_different_dtypesr  ™  sQ   € ô& 	�	‰	�"˜EÔ"€AÜ�1˜D¨1¯:©:¸©>Ð*;È$ÔO€AØ�7‰7�dŠ?Ðˆ?Ø�7‰7�eÒÐÑr8   zsize,view_size,stride_mult))r:   r‹   rE   )r:   r‹   rF   )r³   r:   rF   )r€   r:   r:   c                 óà   — t        j                  | t         j                  ¬«      }|j                  }t	        ||f||z  fd¬«      }|j
                  |fk(  sJ ‚|dd|…   d| }t        ||«       y)z%Test 1D arrays with positive strides.r$   Tr  N©r   r*   Úint64rŸ   r   r   r   )ÚsizeÚ	view_sizeÚstride_multr;   rŸ   r4   r   s          r   Ú+test_as_strided_checked_1d_positive_stridesr!  ²  ss   € ô 	�	‰	�$œbŸh™hÔ'€AØ�z‰z€HÜØ	�)�¨°;Ñ(>Ð'@Ètô	€Að �7‰7�y�lÒ"Ð"Ð"à‘�;�Ñ 
 Ð+€HÜ�q˜(Õ#r8   zshape,window_shape))©r:   rO   )©r³   r  )©r€   r"  c                 ó4  — t        j                  | d   t         j                  ¬«      }|j                  }| d   |d   z
  dz   }||d   f}||f}t	        |||d¬«      }|j
                  |k(  sJ ‚t        |d   |d|d    «       t        |d   ||d    d «       y)z Test sliding window views in 1D.r   r$   rE   Tr  Nr&   r  )r   Úwindow_shaper;   rŸ   Ú	n_windowsÚ
view_shapeÚview_stridesr4   s           r   Ú)test_as_strided_checked_sliding_window_1dr*  È  s­   € ô 	�	‰	�%˜‘(¤"§(¡(Ô+€AØ�z‰z€HØ�a‘˜<¨™?Ñ*¨QÑ.€IØ˜\¨!™_Ð-€JØ˜hÐ'€Lä�1˜J°È4ÔP€AØ�7‰7�jÒ Ð Ð ä�q˜‘t˜QÐ0 ¨a¡Ð1Ô2Ü�q˜‘u˜a ¨a¡Ð 0Ð 2Ð3Õ4r8   r   )r~   )r‹   r‰   )r:   r:   c                 óÄ   — t        j                  t        j                  | «      t         j                  ¬«      j	                  | «      }t        |d¬«      }t        ||«       y)z$Test 2D arrays with default strides.r$   T)r  N)r   r*   Úprodr  r+   r   r   )r   r;   r4   s      r   Ú*test_as_strided_checked_2d_default_stridesr-  ß  sA   € ô 	�	‰	”"—'‘'˜%“.¬¯©Ô1×9Ñ9¸%Ó@€AÜ�1 4Ô(€AÜ�q˜!Õr8   r  )r   rE   rF   r:   r€   c                 óâ   — t        j                  dgt         j                  ¬«      }t        || fdd¬«      }|j                  | fk(  sJ ‚| dkD  r"t        t        j                  |dk(  «      «       yy)z0Test zero strides (broadcasting a single value).é*   r$   r`   Tr  r   N)r   rH   r  r   r   r   Úall)r  r;   r4   s      r   Ú0test_as_strided_checked_zero_stride_broadcastingr1  î  s`   € ô 	�‰�"�œRŸX™XÔ&€AÜ�1˜T˜G¨TÀÔE€AØ�7‰7�t�gÒÐÐØˆa‚xÜ”—‘�q˜B‘w“Õ ð r8   zsize,shape,strides))r:   r  )r   )r:   r"  ©é   )r³   )é   r2  )r:   r#  ©é   )r:   r$  r5  )r³   rÎ   )éP   r6  )r³   )rG   r:   )é@   r6  )r:   r  ©éøÿÿÿ)r:   r"  r9  )r³   r  )iðÿÿÿ)r:   ©rF   rG   rd   )é`   r   r:  )r³   r~   )r8  r:  )rÆ   r;  )i ÿÿÿr   r6  c                 óÌ   — t        j                  | t         j                  ¬«      }t        j                  t
        d¬«      5  t        |||d¬«       ddd«       y# 1 sw Y   yxY w)z:Test that out-of-bounds positive strides raise ValueError.r$   úout of boundsrË   Tr  N©r   r*   r  rÏ   rÐ   r!   r   )r  r   r–   r;   s       r   Ú6test_as_strided_checked_out_of_bounds_positive_stridesr@  ø  sM   € ô2 	�	‰	�$œbŸh™hÔ'€AÜ	�‰”z¨Ô	9ñ GÜ�1˜E¨7ÀÕF÷G÷ Gñ Gús   ÁAÁA#c                  óÞ   — t        j                  dt         j                  ¬«      } | dd }t        |ddd¬«      }t	        |j
                  d«       t	        |d	   d	«       t	        |d
   d«       y)zmTest as_strided

    - with check_bounds=True
    - considers the base array bounds, not just the view.

    éè  r$   NrF   rf   )i�  Tr  r   rE   é2   ©r   r*   r  r   r   r   ©r   rø   r4   s      r   Ú,test_as_strided_checked_view_of_larger_arrayrF    s_   € ô 	�	‰	�$œbŸh™hÔ'€Aà	ˆ"ˆ1ˆ€Aô 	�1˜D¨&¸tÔD€AÜ�—‘˜$ÔÜ��1‘�qÔÜ��1‘�rÕr8   c                  óÞ   — t        j                  dt         j                  ¬«      } | dd }t        |ddd¬«      }t	        |j
                  d«       t	        |d	   d«       t	        |d
   d«       y)zgTest as_strided

    - with check_bounds=True
    - on a view that doesn't start at the beginning.
    rB  r$   r€   éf   rf   )r7  Tr  r   rE   én   NrD  rE  s      r   Ú(test_as_strided_checked_view_with_offsetrJ  (  s]   € ô 	�	‰	�$œbŸh™hÔ'€Aà	ˆ#ˆcˆ
€Aä�1˜D¨%¸dÔC€AÜ�—‘˜$ÔÜ��1‘�sÔÜ��1‘�sÕr8   c                  óÖ   — t        j                  dt         j                  ¬«      } | dd }t        j                  t
        d¬«      5  t        |ddd	¬
«       ddd«       y# 1 sw Y   yxY w)zDTest that negative strides on a view correctly detect out of bounds.rB  r$   r‹   rˆ   r>  rË   rf   )iÐÿÿÿTr  Nr?  ©r   rø   s     r   Ú3test_as_strided_checked_view_out_of_bounds_negativerM  8  sV   € ä
�	‰	�$œbŸh™hÔ'€Aà	ˆ!ˆAˆ€Aä	�‰”z¨Ô	9ñ EÜ�1˜D¨&¸tÕD÷E÷ Eñ Eúó   ÁAÁA(c                  óÖ   — t        j                  dt         j                  ¬«      } | dd }t        j                  t
        d¬«      5  t        |ddd	¬
«       ddd«       y# 1 sw Y   yxY w)zDTest that positive strides on a view correctly detect out of bounds.r€   r$   é_   éa   r>  rË   rf   )éÈ   Tr  Nr?  rL  s     r   Ú3test_as_strided_checked_view_out_of_bounds_positiverS  B  sV   € ä
�	‰	�#œRŸX™XÔ&€Aà	ˆ"ˆRˆ€Aä	�‰”z¨Ô	9ñ EÜ�1˜D¨&¸tÕD÷E÷ Eñ EúrN  c                  óè   — t        j                  dt         j                  ¬«      } | dd }|dd }t        |ddd¬	«      }t	        |j
                  d«       t	        |d
   d«       t	        |d   d«       y)z;Test as_strided with check_bounds=True on a view of a view.rB  r$   r:   r€   r‹   rf   )é    Tr  r   r4  rE   é#   NrD  )r   rø   Úcr4   s       r   Ú$test_as_strided_checked_nested_viewsrX  L  sf   € ä
�	‰	�$œbŸh™hÔ'€AØ	ˆ"ˆSˆ	€AØ	ˆ!ˆBˆ€Aä�1˜D¨&¸tÔD€AÜ�—‘˜$ÔÜ��1‘�rÔÜ��1‘�rÕr8   c                  óü   — t        j                  dt         j                  ¬«      } | dd }t        |ddd¬«      }t	        |j
                  d«       | d	d	d
…   }t        |ddd¬«      }t	        |j
                  d«       y	)zTest various slicing scenarios.rR  r$   r:   r³   r  r2  Tr  NrF   r"  rD  )r   rø   r4   rW  s       r   Ú$test_as_strided_checked_sliced_arrayrZ  X  sj   € ä
�	‰	�#œRŸX™XÔ&€Aà	ˆ"ˆRˆ€AÜ�1˜D¨%¸dÔC€AÜ�—‘˜$Ôà	‰#ˆAˆ#‰€AÜ�1˜E¨5¸tÔD€AÜ�—‘˜%Õ r8   z#start,stop,stride_bytes,should_pass))r   r:   i(  T)r   r:   i)  T)éZ   rP  éH   T)r[  rP  éI   F)r‹   rˆ   iØÿÿÿT)r‹   rˆ   i×ÿÿÿFc                 ó*  — t        j                  dt         j                  ¬«      }|| | }|r't        |d|fd¬«      }t	        |j
                  d«       yt        j                  t        d¬«      5  t        |d|fd¬«       ddd«       y# 1 sw Y   yxY w)	z;Parametrized test for various view and stride combinations.r€   r$   rf   Tr  r>  rË   N)	r   r*   r  r   r   r   rÏ   rÐ   r!   )ÚstartÚstopÚstride_bytesÚshould_passr   rø   r4   s          r   Ú)test_as_strided_checked_view_parametrizedrc  e  s}   € ô 	�	‰	�#œRŸX™XÔ&€AØ	ˆ%�ˆ€AáÜ�q ¨|¨oÈDÔQˆÜ�Q—W‘W˜dÕ#ä�]‰]œ:¨_Ô=ñ 	RÜ�q ¨|¨oÈDÕQ÷	R÷ 	Rñ 	Rús   Á/B	Â	B)FF)HrÏ   Únumpyr   Únumpy._core._rational_testsr   r   Únumpy.lib._stride_tricks_implr   r   r   r   r	   r
   Únumpy.testingr   r   r   r   r   r   r"   r7   r>   rB   rK   rY   r^   ra   rj   rm   ru   r|   r…   r�   r’   r¨   rª   ræ   rá   rè   rï   rú   r×   r  r  ÚmarkÚparametrizeÚint8Úint16Úint32r  Úuint8Úuint16Úuint32Úuint64Úfloat32r@   Ú	complex64Ú
complex128r  r!  r*  r-  r1  r@  rF  rJ  rM  rS  rX  rZ  rc  rM   r8   r   ú<module>rt     sh  ðÛ ã ß ;÷÷ ÷õ ò&ò;óò,ò0ò ò4ò6Bò2Bò@=ò1Oòh-ò4Kò&Cò"&9òRCò"2(÷jcFñ cFòL&ô$?˜Ÿ™ô ?ô
<Ð'ô <ò"#òJ-)ò`7ò()ð ‡�×ÑØà
�‰Ø
�‰Ø
�‰Ø
�‰Ø
�‰Ø
�	‰	Ø
�	‰	Ø
�	‰	Ø
�
‰
Ø
�
‰
Ø
�‰Ø
�‰ðóñ"ó#ð"ð ‡�×ÑØ òóñ
$óð
$ð ‡�×ÑØòóñ5óð5ð ‡�×ÑØòóñóðð ‡�×Ñ˜Ò!3Ó4ñ!ó 5ð!ð ‡�×ÑØòóñ.Gó/ð.Gòò$ò EòEò	ò
!ð ‡�×ÑØ)òó
ñ
Ró
ñ
Rr8   