Ë
    6Š·jk  ã                   óò  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZ ej4                  dkD  Zd„ Z G d„ d«      Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Z  G d„ d«      Z! G d„ d«      Z" G d„ d«      Z# G d„ d«      Z$ G d„ d«      Z% G d„ d«      Z& G d„ d«      Z' G d„ d«      Z( G d„ d «      Z) G d!„ d"«      Z* G d#„ d$«      Z+ G d%„ d&«      Z,d'„ Z-y)(é    N)Úapply_along_axisÚapply_over_axesÚarray_splitÚcolumn_stackÚdsplitÚdstackÚexpand_dimsÚhsplitÚkronÚput_along_axisÚsplitÚtake_along_axisÚtileÚvsplit)Ú	AxisError)Úassert_Úassert_array_equalÚassert_equalÚassert_raisesì        c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )z: hack in keepdims behavior into a function taking an axis c                 óP   •—  ‰| fd|i|¤Ž}|€d}t        j                  ||¬«      S )NÚaxisr   ©r   )Únpr	   )Úar   ÚkwargsÚresÚfuncs       €úU/root/workspace/.venv/lib/python3.12/site-packages/numpy/lib/tests/test_shape_base.pyÚwrappedz_add_keepdims.<locals>.wrapped   s2   ø€ á�1Ñ*˜4Ð* 6Ñ*ˆØˆ<ØˆDÜ�~‰~˜c¨Ô-Ð-ó    )Ú	functoolsÚwraps)r   r!   s   ` r    Ú_add_keepdimsr%      s%   ø€ ä‡_�_�TÓó.ó ð.ð
 €Nr"   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTakeAlongAxisc           
      óð  — ddl m}  |ddd«      }t        j                  t        j                  i ft        t        j                  «      t        t        j                  «      i ft        t        j                  «      t        t        j                  «      i fg}|D ][  \  }}}t        t        |j                  «      «      dgz   D ]0  } ||fd|i|¤Ž} ||fd|i|¤Ž}	t        |t        ||	|¬«      «       Œ2 Œ] y)	z- Test it translates from arg<func> to <func> r   ©Úrandé   é   é   Nr   r   )Únumpy.randomr*   r   ÚsortÚargsortr%   ÚminÚargminÚmaxÚargmaxÚlistÚrangeÚndimr   r   )
Úselfr*   r   Úfuncsr   Úargfuncr   r   Úa_funcÚai_funcs
             r    Útest_argequivalentz$TestTakeAlongAxis.test_argequivalent)   sß   € å%Ù��A�q‹Mˆô �W‰W”b—j‘j "Ð%Üœ2Ÿ6™6Ó"¤M´"·)±)Ó$<¸bÐAÜœ2Ÿ6™6Ó"¤M´"·)±)Ó$<¸bÐAð
ˆð &+ò 	MÑ!ˆD�'˜6ÜœU 1§6¡6›]Ó+¨t¨fÑ4ò M�Ù˜aÑ5 dÐ5¨fÑ5�Ù! !Ñ9¨$Ð9°&Ñ9�Ü˜V¤_°Q¸ÀdÔ%KÕLñMñ	Mr"   c                 óö  — t        j                  d«      }t        j                  dt         j                  ¬«      }t        ||d¬«       t	        t
        t        |t        j                  d«      d¬«       t	        t        t        ||j                  t        «      d¬«       t	        t        t        ||j                  t        «      d¬«       t	        t        t        ||d¬«       t	        t
        t        ||d¬«       y)z4 Test it errors when indices has too few dimensions )é
   r?   )r?   é   ©Údtypeé   r   r?   N)r   ÚonesÚintpr   r   Ú
ValueErrorÚarrayÚ
IndexErrorÚastypeÚboolÚfloatr   ©r8   r   Úais      r    Útest_invalidzTestTakeAlongAxis.test_invalid;   s�   € ä�G‰G�HÓˆÜ�W‰W�W¤B§G¡GÔ,ˆô 	˜˜2 AÕ&ô 	”j¤/°1´b·h±h¸q³kÈÕJä”j¤/°1°b·i±iÄ³oÈAÕNä”j¤/°1°b·i±iÄÓ6FÈQÕOä”i¤°!°R¸bÕAä”j¤/°1°b¸tÖDr"   c                 óÔ   — t        j                  d«      }t        j                  dt         j                  ¬«      }t        ||d¬«      }t	        |j
                  |j
                  «       y)zC Test everything is ok with empty results, even with inserted dims )r+   r,   r-   )r+   r   r-   rA   rC   r   N©r   rD   rE   r   r   Úshape©r8   r   rM   Úactuals       r    Ú
test_emptyzTestTakeAlongAxis.test_emptyN   sD   € ä�G‰G�IÓˆÜ�W‰W�Y¤b§g¡gÔ.ˆä   B¨QÔ/ˆÜ�V—\‘\ 2§8¡8Õ,r"   c                 óÀ   — t        j                  d«      }t        j                  dt         j                  ¬«      }t        ||d¬«      }t	        |j
                  d«       y)úD Test that non-indexing dimensions are broadcast in both directions ©r+   r,   rC   ©rC   r@   r-   rA   rC   r   ©r+   r@   r-   NrP   rR   s       r    Útest_broadcastz TestTakeAlongAxis.test_broadcastV   s@   € ä�G‰G�IÓˆÜ�W‰W�Y¤b§g¡gÔ.ˆÜ   B¨QÔ/ˆÜ�V—\‘\ 9Õ-r"   N)Ú__name__Ú
__module__Ú__qualname__r=   rN   rT   rZ   © r"   r    r'   r'   (   s   „ òMò$Eò&-ó.r"   r'   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestPutAlongAxisc                 ób  — t        j                  g d¢g d¢g«      }t        t        |j                  «      «      d gz   D ]o  }|j                  «       } t        t         j                  «      ||¬«      }t        ||d|¬«        t        t         j                  «      ||¬«      }t        ||«       Œq y )N©r?   é   é   ©é<   é(   é2   r   i�ÿÿÿ)r   rG   r5   r6   r7   Úcopyr%   r4   r   r2   r   )r8   Úa_baser   r   Úi_maxÚi_mins         r    Útest_replace_maxz!TestPutAlongAxis.test_replace_max_   sŽ   € Ü—‘š<ªÐ6Ó7ˆäœ˜vŸ{™{Ó+Ó,°¨vÑ5ò 	'ˆDà—‘“ˆAð -”M¤"§)¡)Ó,¨Q°TÔ:ˆEÜ˜1˜e S¨tÕ4ð -”M¤"§)¡)Ó,¨Q°TÔ:ˆEä˜ Õ&ñ	'r"   c                 óê   — t        j                  d«      }t        j                  dt         j                  ¬«      j	                  d«      dz  }t        ||dd¬«       t        t        ||d¬«      d«       y	)
rV   rW   r?   rA   rX   r,   rd   rC   r   N)r   rD   ÚarangerE   Úreshaper   r   r   rL   s      r    rZ   zTestPutAlongAxis.test_broadcasto   sU   € ä�G‰G�IÓˆÜ�Y‰Y�r¤§¡Ô)×1Ñ1°)Ó<¸qÑ@ˆÜ�q˜"˜b qÕ)Ü”_ Q¨°Ô3°RÕ8r"   c                 óÔ  — t        j                  g d¢g d¢g«      }t        j                  dgdgg«      }t        j                  dgdgg«      }|j                  «       }t        |||d¬«       t        j                  |g d¢g d¢gk(  «      sJ ‚|j                  «       }t        t        «      5 }t        |||d	¬«       d	d	d	«       d
t        j                  «      v sJ ‚y	# 1 sw Y   Œ#xY w)z Test invalid inputs rb   re   r   rC   r@   r   ©r@   r@   r@   ©rC   rC   rC   Nzsingle dimension)	r   rG   ri   r   Úallr   rF   ÚstrÚ	exception)r8   rj   ÚindicesÚvaluesr   Úexcs         r    rN   zTestPutAlongAxis.test_invalidv   sÉ   € ä—‘š<ªÐ6Ó7ˆÜ—(‘(˜Q˜C ! ˜:Ó&ˆÜ—‘˜A˜3  ˜*Ó%ˆð �K‰K‹MˆÜ�q˜' 6°Õ2Ü�v‰v�ašI¢yÐ1Ñ1Ô2Ð2Ð2ð �K‰K‹MˆÜœ:Ó&ð 	:¨#Ü˜1˜g v°DÕ9÷	:à!¤S¨¯©Ó%7Ñ7Ð7Ñ7÷	:ð 	:ús   Â,CÃC'N)r[   r\   r]   rm   rZ   rN   r^   r"   r    r`   r`   ^   s   „ ò'ò 9ó8r"   r`   c                   ó¢   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  fd„Z
ej                  fd„Zej                  fd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestApplyAlongAxisc                 ó¾   — t        j                  dd«      }t        t        t        d|«      t	        |«      t        j                  |j
                  d   «      z  «       y )N©rd   r?   Údr   rC   ©r   rD   r   r   ÚlenrQ   ©r8   r   s     r    Útest_simplezTestApplyAlongAxis.test_simple‰   sC   € Ü�G‰G�H˜cÓ"ˆÜÜœS ! QÓ'¬¨Q«´"·'±'¸!¿'¹'À!¹*Ó2EÑ)Eõ	Gr"   c                 ó¾   — t        j                  dd«      }t        t        t        d|«      t	        |«      t        j                  |j
                  d   «      z  «       y )N)r?   ée   r~   r   rC   r   r�   s     r    Útest_simple101z!TestApplyAlongAxis.test_simple101Ž   sC   € Ü�G‰G�I˜sÓ#ˆÜÜœS ! QÓ'¬¨Q«´"·'±'¸!¿'¹'À!¹*Ó2EÑ)Eõ	Gr"   c                 ó¨   — t        j                  d«      j                  d«      }t        t	        t         j
                  d|«      g d¢g d¢g d¢g«       y )Né   ©r+   r+   r+   r   )r‡   rc   é!   )é$   é'   é*   )é-   é0   é3   )r   ro   rp   r   r   Úsumr�   s     r    Útest_3dzTestApplyAlongAxis.test_3d“   s=   € Ü�I‰I�b‹M×!Ñ! )Ó,ˆÜÔ+¬B¯F©F°A°qÓ9Ú(ª,ºÐEõ	Gr"   c                 óœ  — d„ } G d„ dt         j                  «      }t        j                  ddgddgg«      j                  |«      }t        j                  ddgdd	gg«      j                  |«      }t	        |d|«      }t        t        ||«      «       t        ||«       t	        |d|«      }t        t        ||«      «       t        ||«       y )
Nc                 ó   — | dz  S )Nr@   r^   )Úrows    r    Údoublez9TestApplyAlongAxis.test_preserve_subclass.<locals>.double™   s   € Ø˜‘7ˆNr"   c                   ó   — e Zd Zy)ú<TestApplyAlongAxis.test_preserve_subclass.<locals>.MyNDArrayN©r[   r\   r]   r^   r"   r    Ú	MyNDArrayr—   œ   ó   „ Ør"   r™   r   rC   r@   r+   r,   é   )r   ÚndarrayrG   Úviewr   r   Ú
isinstancer   )r8   r•   r™   ÚmÚexpectedÚresults         r    Útest_preserve_subclassz)TestApplyAlongAxis.test_preserve_subclass˜   s³   € ò	ô	œŸ
™
ô 	ô �H‰H�q˜!�f˜q !˜fÐ%Ó&×+Ñ+¨IÓ6ˆÜ—8‘8˜a ˜V a¨ VÐ,Ó-×2Ñ2°9Ó=ˆä! &¨!¨QÓ/ˆÜ”
˜6 9Ó-Ô.Ü˜6 8Ô,ä! &¨!¨QÓ/ˆÜ”
˜6 9Ó-Ô.Ü˜6 8Õ,r"   c                 óÜ   —  G d„ dt         j                  «      }d„ }t        j                  d«      j                  |«      }t	        t        |d|«      t        j                  g d¢«      «       y )Nc                   ó   — e Zd ZdZy)ú9TestApplyAlongAxis.test_subclass.<locals>.MinimalSubclassrC   N)r[   r\   r]   Údatar^   r"   r    ÚMinimalSubclassr¥   «   s   „ Ø‰Dr"   r§   c                 ó   — | j                   S ©N)r¦   )rG   s    r    Úminimal_functionz:TestApplyAlongAxis.test_subclass.<locals>.minimal_function®   s   € Ø—:‘:Ðr"   ©r›   r+   r   rs   )r   rœ   Úzerosr�   r   r   rG   )r8   r§   rª   r   s       r    Útest_subclassz TestApplyAlongAxis.test_subclassª   sR   € ô	œbŸj™jô 	ò	ô �H‰H�VÓ×!Ñ! /Ó2ˆäÜÐ-¨q°!Ó4´b·h±hºyÓ6Iõ	
r"   c                 ó  — t        j                  d«      j                  |«      }t        t         j                  d|«      }t        t        ||«      «       t        |t        j                  g d¢«      j                  |«      «       y )Nr«   r   ©r›   r›   r›   )	r   rD   r�   r   r�   r   rž   r   rG   )r8   Úclsr   r   s       r    Útest_scalar_arrayz$TestApplyAlongAxis.test_scalar_array·   sY   € Ü�G‰G�F‹O× Ñ  Ó%ˆÜœrŸv™v q¨!Ó,ˆÜ”
˜3 Ó$Ô%Ü˜3¤§¡ªÓ 3× 8Ñ 8¸Ó =Õ>r"   c                 óš  — d„ }t        j                  d«      j                  |«      }t        |d|«      }t	        t        ||«      «       t        |t        j                  g d¢«      j                  |«      «       t        |d|«      }t	        t        ||«      «       t        |t        j                  g d¢«      j                  |«      «       y )Nc                 ó‚   — t        | j                  d«       t        j                  t        j                  | d¬«      «      S )z/ Sum x, returning a 0d array of the same class rC   T)Úkeepdims)r   r7   r   Úsqueezer�   ©Úxs    r    Ú	sum_to_0dz3TestApplyAlongAxis.test_0d_array.<locals>.sum_to_0d¾   s*   € ä˜Ÿ™ Ô#Ü—:‘:œbŸf™f Q°Ô6Ó7Ð7r"   r«   r   r¯   rC   )r+   r+   r+   r+   r+   r+   )r   rD   r�   r   r   rž   r   rG   )r8   r°   r¸   r   r   s        r    Útest_0d_arrayz TestApplyAlongAxis.test_0d_array½   s˜   € ò	8ô �G‰G�F‹O× Ñ  Ó%ˆÜ˜y¨!¨QÓ/ˆÜ”
˜3 Ó$Ô%Ü˜3¤§¡ªÓ 3× 8Ñ 8¸Ó =Ô>ä˜y¨!¨QÓ/ˆÜ”
˜3 Ó$Ô%Ü˜3¤§¡Ò);Ó <× AÑ AÀ#Ó FÕGr"   c                 ó–  ‡— ˆfd„}t        j                  d«      j                  d«      }t        |d|«      }t        j                  t        |j                  d   «      D �cg c]  } ||d d …|f   «      ‘Œ c}d¬«      j                  ‰«      }t        t        |«      t        |«      «       t        ||«       t        |d|«      }t        j                  t        |j                  d   «      D �cg c]  } |||d d …f   «      ‘Œ c}d¬«      j                  ‰«      }t        t        |«      t        |«      «       t        ||«       t        j                  d«      j                  d	«      }t        |d|«      }t        j                  t        |j                  d
   «      D ��cg c]K  }t        j                  t        |j                  d   «      D �cg c]  } |||d d …|f   «      ‘Œ c}d¬«      ‘ŒM c}}d¬«      j                  ‰«      }t        t        |«      t        |«      «       t        ||«       y c c}w c c}w c c}w c c}}w )Nc                 ór   •— t        | j                  d«       | ddd…   | dd…df   z  j                  ‰«      S )ú/produces an asymmetric non-square matrix from xrC   Néÿÿÿÿ)r   r7   r�   )r·   r°   s    €r    Úf1to2z5TestApplyAlongAxis.test_axis_insertion.<locals>.f1to2Ì   s9   ø€ ä˜Ÿ™ Ô#Ø‘d˜�d‘G˜a ¡ D ™kÑ)×/Ñ/°Ó4Ð4r"   é   r«   r   rC   r½   r   éZ   )r›   r-   r+   r@   )
r   ro   rp   r   Ústackr6   rQ   r�   r   Útype)	r8   r°   r¾   Úa2drS   Úir    Úa3dÚjs	    `       r    Útest_axis_insertionz&TestApplyAlongAxis.test_axis_insertionË   sñ  ø€ ô	5ô
 �i‰i˜Ó×&Ñ& vÓ.ˆô " %¨¨CÓ0ˆÜ—8‘8Ü&+¨C¯I©I°a©LÓ&9ö
Ø!"‰E�#’a˜�d‘)Õò
àôç‘D˜“Ið 	ô 	”T˜&“\¤4¨£>Ô2Ü�V˜XÔ&ô " %¨¨CÓ0ˆÜ—8‘8Ü&+¨C¯I©I°a©LÓ&9ö
Ø!"‰E�#�aš�d‘)Õò
àôç‘4˜“9ð 	ô 	”T˜&“\¤4¨£>Ô2Ü�V˜XÔ&ô �i‰i˜	Ó"×*Ñ*¨9Ó5ˆä! %¨¨CÓ0ˆÜ—8‘8ô ˜3Ÿ9™9 Q™<Ó(÷	
ð ô �H‰HÜ-2°3·9±9¸Q±<Ó-@öØ()‘�c˜!šQ ˜'‘lÕ#òàöó
ð
 ô÷
 ‘D˜“Ið 	ô 	”T˜&“\¤4¨£>Ô2Ü�V˜XÕ&ùò3
ùò
ùòùó
s$   Á!H6Ã/H;Æ".I
ÇI Ç'I
É I
c                 óœ   —  G d„ dt         j                  «      }| j                  |«       | j                  |«       | j	                  |«       y )Nc                   ó   — e Zd Zy)úFTestApplyAlongAxis.test_subclass_preservation.<locals>.MinimalSubclassNr˜   r^   r"   r    r§   rÊ   ñ   rš   r"   r§   )r   rœ   r±   r¹   rÇ   )r8   r§   s     r    Útest_subclass_preservationz-TestApplyAlongAxis.test_subclass_preservationð   s<   € ô	œbŸj™jô 	à×Ñ˜Ô/Ø×Ñ˜?Ô+Ø× Ñ  Õ1r"   c                 ó<  — d„ }t        j                  d«      j                  d«      }t        |d|«      }t	        t        |t         j                  j                  «      «       t        |j                  d«       t        |d d …d d …df   j                   ||d d …df   «      j                  «       t        |d d …d d …df   j                   ||d d …df   «      j                  «       t        |d d …d d …df   j                   ||d d …df   «      j                  «       y )Nc                 óž   — t        | j                  d«       | ddd…   | dd…df   z  }t        j                  j	                  |dz  dk(  |«      S )r¼   rC   Nr½   r-   r   )r   r7   r   ÚmaÚmasked_where)r·   r   s     r    r¾   z8TestApplyAlongAxis.test_axis_insertion_ma.<locals>.f1to2ø   sK   € ä˜Ÿ™ Ô#Ø‘D�b�D‘'˜A˜a™b $˜h™KÑ'ˆCÜ—5‘5×%Ñ% c¨A¡g°¡l°CÓ8Ð8r"   r¿   r«   r   r+   rC   r@   )r   ro   rp   r   r   rž   rÎ   Úmasked_arrayr   r7   r   Úmask)r8   r¾   r   r   s       r    Útest_axis_insertion_maz)TestApplyAlongAxis.test_axis_insertion_ma÷   sÛ   € ò	9ô
 �I‰I�eÓ×$Ñ$ VÓ,ˆÜ˜u a¨Ó+ˆÜ”
˜3¤§¡× 2Ñ 2Ó3Ô4Ü�S—X‘X˜qÔ!Ü˜3šq¢! Q˜w™<×,Ñ,©e°A²a¸°d±G«n×.AÑ.AÔBÜ˜3šq¢! Q˜w™<×,Ñ,©e°A²a¸°d±G«n×.AÑ.AÔBÜ˜3šq¢! Q˜w™<×,Ñ,©e°A²a¸°d±G«n×.AÑ.AÕBr"   c           	      ó´   — d„ }t        j                  |dt        j                  ddgddgg«      «      }t        |t        j                  ddgddgg«      «       y )Nc                 ó   — | d   | d   fS )NrC   r   r^   r¶   s    r    Ú	sample_1dz7TestApplyAlongAxis.test_tuple_func1d.<locals>.sample_1d  s   € Ø�Q‘4˜˜1™�:Ðr"   rC   r@   r+   r,   )r   r   rG   r   )r8   rÕ   r   s      r    Útest_tuple_func1dz$TestApplyAlongAxis.test_tuple_func1d  sQ   € ò	ä×!Ñ! )¨Q´·±¸1¸a¸&À1ÀaÀ&Ð9IÓ0JÓKˆÜ˜3¤§¡¨1¨a¨&°1°a°&Ð)9Ó :Õ;r"   c                 ó–  — d„ }t        j                  d«      }t        t        t         j                  |d|«       t        t        t         j                  |d|«       d„ }t        j                  d«      }t        j                  |d|«      }t        |t        j                  d«      «       t        t        t         j                  |d|«       y )Nc                 ó   — t        d«       y )NF)r   r¶   s    r    Ú
never_callz1TestApplyAlongAxis.test_empty.<locals>.never_call  s	   € Ü�E�Nr"   )r   r   r   rC   c                 ó2   — t        t        | «      dk(  «       y)Nr   rC   )r   r€   r¶   s    r    Ú
empty_to_1z1TestApplyAlongAxis.test_empty.<locals>.empty_to_1  s   € Ü”C˜“F˜a‘KÔ Ør"   )r?   r   r?   )r   Úemptyr   rF   r   r   rD   )r8   rÙ   r   rÛ   rS   s        r    rT   zTestApplyAlongAxis.test_empty  s”   € ò	ô �H‰H�VÓˆÜ”j¤"×"5Ñ"5°zÀ1ÀaÔHÜ”j¤"×"5Ñ"5°zÀ1ÀaÔHò	ô �H‰H�WÓˆÜ×$Ñ$ Z°°AÓ6ˆÜ�VœRŸW™W R›[Ô)Ü”j¤"×"5Ñ"5°zÀ1ÀaÕHr"   c                 ój  — t        j                  ddhddhddhgddhd	d
hddhgg«      }t        j                  d„ d|«      }t        j                  h d£h d£h d£g«      }t        ||«       t        j                  |j
                  «      D ]&  }t        t        ||   «      t        ||   «      «       Œ( y )NrC   é   r@   é   r+   r‰   r,   é,   r-   é7   r›   éB   c                 ó&   — t        j                  | Ž S r©   )ÚsetÚunion)r   s    r    ú<lambda>z>TestApplyAlongAxis.test_with_iterable_object.<locals>.<lambda>$  s   € ¬s¯y©y¸!¨}€ r"   r   >   rC   r,   rÞ   rà   >   r@   r-   rß   rá   >   r+   r›   r‰   râ   )r   rG   r   r   ÚndindexrQ   rÂ   )r8   r~   rS   r    rÄ   s        r    Útest_with_iterable_objectz,TestApplyAlongAxis.test_with_iterable_object  s°   € ä�H‰HØ�ˆW�q˜"�g  2˜wÐ'Ø�ˆW�q˜"�g  2˜wÐ'ð
ó ˆô ×$Ñ$Ñ%<¸aÀÓCˆÜ—8‘8š^ª^º^ÐLÓMˆä�V˜XÔ&ô —‘˜FŸL™LÓ)ò 	=ˆAÜœ˜f Q™i›¬$¨x¸©{Ó*;Õ<ñ	=r"   N)r[   r\   r]   r‚   r…   r‘   r¢   r­   r   rœ   r±   r¹   rÇ   rË   rÒ   rÖ   rT   rè   r^   r"   r    r{   r{   ˆ   se   „ òGò
Gò
Gò
-ò$
ð %'§J¡Jó ?ð !#§
¡
ó Hð ')§j¡jó #'òJ2òCò<òIó&=r"   r{   c                   ó   — e Zd Zd„ Zy)ÚTestApplyOverAxesc                 óÖ   — t        j                  d«      j                  ddd«      }t        t         j                  |ddg«      }t        |t        j                  dgdgdggg«      «       y )	Né   r@   r+   r,   r   rf   é\   é|   )r   ro   rp   r   r�   r   rG   )r8   r   Úaoa_as      r    r‚   zTestApplyOverAxes.test_simple/  sW   € Ü�I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ¤§¡¨¨A¨q¨6Ó2ˆÜ˜5¤"§(¡(¨b¨T°B°4¸#¸Ð,?Ð+@Ó"AÕBr"   N)r[   r\   r]   r‚   r^   r"   r    rê   rê   .  s   „ óCr"   rê   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestExpandDimsc                 óø   — d}t        j                  |«      }t        dd«      D ]T  }t        ||«      }t	        |j
                  |   dk(  «       t	        t        j                  |«      j
                  |k(  «       ŒV y )N©r@   r+   r,   r-   éûÿÿÿr,   rC   )r   rÜ   r6   r	   r   rQ   rµ   )r8   Úsr   r   Úbs        r    Útest_functionalityz!TestExpandDims.test_functionality6  se   € ØˆÜ�H‰H�Q‹KˆÜ˜"˜a“Lò 	.ˆDÜ˜A˜tÓ$ˆAÜ�A—G‘G˜D‘M QÑ&Ô'Ü”B—J‘J˜q“M×'Ñ'¨1Ñ,Õ-ñ	.r"   c                 ó^  — t        j                  d«      }t        j                  |d¬«      j                  dk(  sJ ‚t        j                  |d¬«      j                  dk(  sJ ‚t        j                  |d¬«      j                  dk(  sJ ‚t        j                  |d	¬«      j                  d
k(  sJ ‚y )Nrˆ   ©r   rC   r@   r   )rC   rC   rC   r+   r+   r+   )r   r½   éþÿÿÿ)rC   r+   r+   r+   rC   rC   )r   r+   r-   )rC   r+   r+   rC   r+   rC   )r   éýÿÿÿrô   )rC   rC   r+   rC   r+   r+   )r   rÜ   r	   rQ   r�   s     r    Útest_axis_tuplezTestExpandDims.test_axis_tuple>  s�   € Ü�H‰H�YÓˆÜ�~‰~˜a iÔ0×6Ñ6Ð:LÒLÐLÐLÜ�~‰~˜a kÔ2×8Ñ8Ð<NÒNÐNÐNÜ�~‰~˜a iÔ0×6Ñ6Ð:LÒLÐLÐLÜ�~‰~˜a kÔ2×8Ñ8Ð<NÒNÐNÑNr"   c                 ó  — d}t        j                  |«      }t        t        t        |d«       t        t        t        |d«       t        j                  d«      }t        t        t        |d«       t        t        t        |d«       y )Nró   éúÿÿÿr-   rˆ   )r   rþ   )r   r-   )r   rÜ   r   r   r	   )r8   rõ   r   s      r    Útest_axis_out_of_rangez%TestExpandDims.test_axis_out_of_rangeE  sZ   € ØˆÜ�H‰H�Q‹KˆÜ”i¤¨a°Ô4Ü”i¤¨a°Ô3ä�H‰H�YÓˆÜ”i¤¨a°Ô9Ü”i¤¨a°Õ8r"   c                 ó\   — t        j                  d«      }t        t        t        |d¬«       y )Nrˆ   ©rC   rC   r   )r   rÜ   r   rF   r	   r�   s     r    Útest_repeated_axisz!TestExpandDims.test_repeated_axisO  s   € Ü�H‰H�YÓˆÜ”j¤+¨q°vÖ>r"   c                 óŽ  — t        j                  d«      j                  d«      }t         j                  j	                  ||dz  dk(  ¬«      }t        j
                  |d¬«      }t        t        |t         j                  j                  «      «       t        |j                  d«       t        |j                  j                  d«       y )	Nr?   )r@   r-   r+   r   ©rÑ   rC   r   )r@   rC   r-   )r   ro   rp   rÎ   rG   r	   r   rž   ÚMaskedArrayr   rQ   rÑ   )r8   r   Úexpandeds      r    Útest_subclasseszTestExpandDims.test_subclassesS  sƒ   € Ü�I‰I�b‹M×!Ñ! &Ó)ˆÜ�E‰E�K‰K˜  A¡¨¡
ˆKÓ+ˆä—>‘> !¨!Ô,ˆÜ”
˜8¤R§U¡U×%6Ñ%6Ó7Ô8Ü�X—^‘^ YÔ/Ü�X—]‘]×(Ñ(¨)Õ4r"   N)r[   r\   r]   r÷   rü   rÿ   r  r  r^   r"   r    rñ   rñ   5  s   „ ò.òOò9ò?ó5r"   rñ   c                   ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  e d¬«      d„ «       Zd	„ Zd
„ Zd„ Zy)ÚTestArraySplitc                 óZ   — t        j                  d«      }t        t        t        |d«       y )Nr?   r   )r   ro   r   rF   r   r�   s     r    Útest_integer_0_splitz#TestArraySplit.test_integer_0_split^  s   € Ü�I‰I�b‹MˆÜ”j¤+¨q°!Õ4r"   c                 ó&  — t        j                  d«      }t        |d«      }t        j                  d«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd	«      t        j                  d	d«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      g}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      g}t        ||«       t        |d	«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      g}t        ||«       t        |d
«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      g	}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      g
}t        ||«       t        |d«      }t        j                  d«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd	«      t        j                  d	d
«      t        j                  d
d«      t        j                  g «      g}t        ||«       y )Nr?   rC   r@   r-   r+   r,   é   r›   é   é	   rÞ   )r   ro   r   Úcompare_resultsrG   ©r8   r   r   Údesireds       r    Útest_integer_splitz!TestArraySplit.test_integer_splitb  sw  € Ü�I‰I�b‹MˆÜ˜!˜QÓˆÜ—9‘9˜R“=�/ˆÜ˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨bÓ!1Ð2ˆÜ˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸rÓ2BÐCˆÜ˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q Ó#ð%ˆä˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°Ó$4ð6ˆä˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ"Ó5EðGˆä˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q Ó#ð%ˆô 	˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q “?¤B§I¡I¨a°Ó$4ð6ˆô 	˜˜WÔ%ä˜!˜QÓˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ"Ó5EðGˆô 	˜˜WÔ%ä˜!˜RÓ ˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q Ó#ð%ˆô 	˜˜WÔ%ä˜!˜RÓ ˆÜ—9‘9˜Q“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q Ó#¤R§X¡X¨b£\ð3ˆô 	˜˜WÕ%r"   c                 ób  — t        j                  t        j                  d«      t        j                  d«      g«      }t        |dd¬«      }t        j                  t        j                  d«      g«      t        j                  t        j                  d«      g«      t        j                  d«      g}t        ||«       t        |j                  j                  |d   j                  j                  u «       t        |ddgd¬«      }t        j                  d«      t        j                  t        j                  d«      g«      t        j                  t        j                  d«      g«      g}t        ||«       t        |j                  j                  |d   j                  j                  u «       y )Nr?   r+   r   r   ©r   r?   r½   rC   ©	r   rG   ro   r   r¬   r  r   rB   rÂ   ©r8   r   r   Útgts       r    Útest_integer_split_2D_rowsz)TestArraySplit.test_integer_split_2D_rowsŸ  s  € Ü�H‰H”b—i‘i “m¤R§Y¡Y¨r£]Ð3Ó4ˆÜ˜!˜Q QÔ'ˆÜ�x‰xœŸ™ 2›˜Ó(¬"¯(©(´B·I±I¸b³M°?Ó*CÜ—8‘8˜GÓ$ð&ˆä˜˜SÔ!Ü�—‘—‘  B¡§¡× 2Ñ 2Ð2Ô3ô ˜!˜a ˜V¨!Ô,ˆÜ�x‰x˜Ó ¤"§(¡(¬B¯I©I°b«M¨?Ó";Ü�x‰xœŸ™ 2›˜Ó(ð*ˆä˜˜SÔ!Ü�—‘—‘  B¡§¡× 2Ñ 2Ð2Õ3r"   c           	      ó&  — t        j                  t        j                  d«      t        j                  d«      g«      }t        |dd¬«      }t        j                  t        j                  d«      t        j                  d«      g«      t        j                  t        j                  dd«      t        j                  dd«      g«      t        j                  t        j                  dd«      t        j                  dd«      g«      g}t	        ||«       y )Nr?   r+   r½   r   r,   r  )r   rG   ro   r   r  r  s       r    Útest_integer_split_2D_colsz)TestArraySplit.test_integer_split_2D_cols®  s´   € Ü�H‰H”b—i‘i “m¤R§Y¡Y¨r£]Ð3Ó4ˆÜ˜!˜Q RÔ(ˆÜ—8‘8œRŸY™Y q›\¬2¯9©9°Q«<Ð8Ó9Ü—8‘8œRŸY™Y q¨!›_¬b¯i©i¸¸1«oÐ>Ó?Ü—8‘8œRŸY™Y q¨"Ó-¬r¯y©y¸¸BÓ/?Ð@ÓAðCˆô 	˜˜WÕ%r"   c                 óê  — t        j                  t        j                  d«      t        j                  d«      g«      }t        |d«      }t        j                  t        j                  d«      g«      t        j                  t        j                  d«      g«      t        j                  d«      g}t        ||«       t        |j                  j                  |d   j                  j                  u «       y)z2 This will fail if we change default axis
        r?   r+   r  r½   Nr  r  s       r    Útest_integer_split_2D_defaultz,TestArraySplit.test_integer_split_2D_default¶  sž   € ô �H‰H”b—i‘i “m¤R§Y¡Y¨r£]Ð3Ó4ˆÜ˜!˜QÓˆÜ�x‰xœŸ™ 2›˜Ó(¬"¯(©(´B·I±I¸b³M°?Ó*CÜ—8‘8˜GÓ$ð&ˆä˜˜SÔ!Ü�—‘—‘  B¡§¡× 2Ñ 2Ð2Õ3r"   zNeeds 64bit platform)Úreasonc                 ó  — t        j                  dgd«      }t        |d«      }t        j                  dgd«      }|gdz  }t        t	        |«      «      D ](  }t        ||   j                  ||   j                  «       Œ* y )Nr   )r   r@   r,   )i   @r@   )r   Úbroadcast_tor   r6   r€   r   rQ   )r8   r   r   Úchunkr  rÄ   s         r    Ú,test_integer_split_2D_rows_greater_max_int32z;TestArraySplit.test_integer_split_2D_rows_greater_max_int32Á  sn   € ä�O‰O˜Q˜C Ó.ˆÜ˜!˜QÓˆÜ—‘   \Ó2ˆØˆg˜‰kˆÜ”s˜3“x“ò 	5ˆAÜ˜˜Q™Ÿ™ s¨1¡v§|¡|Õ4ñ	5r"   c                 ó  — t        j                  d«      }g d¢}t        ||d¬«      }t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  dd«      g}t        ||«       y )	Nr?   )rC   r-   r  r½   r   r   rC   r-   r  )r   ro   r   r  ©r8   r   rw   r   r  s        r    Útest_index_split_simplez&TestArraySplit.test_index_split_simpleÊ  sf   € Ü�I‰I�b‹MˆÚˆÜ˜!˜W¨2Ô.ˆÜ—9‘9˜Q “?¤B§I¡I¨a°£O´R·Y±Y¸qÀ!³_Ü—9‘9˜Q Ó#ð%ˆä˜˜WÕ%r"   c                 ó  — t        j                  d«      }g d¢}t        ||d¬«      }t        j                  g «      t        j                  dd«      t        j                  dd«      t        j                  dd«      g}t	        ||«       y )Nr?   )r   r-   r  r½   r   r   r-   r  ©r   ro   r   rG   r  r$  s        r    Útest_index_split_low_boundz)TestArraySplit.test_index_split_low_boundÒ  sd   € Ü�I‰I�b‹MˆÚˆÜ˜!˜W¨2Ô.ˆÜ—8‘8˜B“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q Ó#ð%ˆä˜˜WÕ%r"   c                 ód  — t        j                  d«      }g d¢}t        ||d¬«      }t        j                  g «      t        j                  dd«      t        j                  dd«      t        j                  dd«      t        j                  g «      t        j                  g «      g}t	        ||«       y )Nr?   )r   r-   r  r?   é   r½   r   r   r-   r  r'  r$  s        r    Útest_index_split_high_boundz*TestArraySplit.test_index_split_high_boundÚ  sy   € Ü�I‰I�b‹MˆÚ#ˆÜ˜!˜W¨2Ô.ˆÜ—8‘8˜B“<¤§¡¨1¨a£´"·)±)¸A¸q³/Ü—9‘9˜Q Ó#¤R§X¡X¨b£\´2·8±8¸B³<ðAˆä˜˜WÕ%r"   N)r[   r\   r]   r  r  r  r  r  ÚpytestÚmarkÚskipifÚIS_64BITr"  r%  r(  r+  r^   r"   r    r	  r	  ]  sW   „ ò5ò;&òz4ò&ò4ð ‡[�[×Ñ˜H˜Ð-CÐÓDñ5ó Eð5ò&ò&ó&r"   r	  c                   ó   — e Zd Zd„ Zd„ Zy)Ú	TestSplitc                 ó´   — t        j                  d«      }t        |d«      }t        j                  d«      t        j                  dd«      g}t        ||«       y )Nr?   r@   r-   )r   ro   r   r  r  s       r    Útest_equal_splitzTestSplit.test_equal_splitè  sA   € Ü�I‰I�b‹MˆÜ�A�q‹kˆÜ—9‘9˜Q“<¤§¡¨1¨bÓ!1Ð2ˆÜ˜˜WÕ%r"   c                 óZ   — t        j                  d«      }t        t        t        |d«       y )Nr?   r+   )r   ro   r   rF   r   r�   s     r    Útest_unequal_splitzTestSplit.test_unequal_splitî  s   € Ü�I‰I�b‹MˆÜ”j¤%¨¨AÕ.r"   N)r[   r\   r]   r3  r5  r^   r"   r    r1  r1  ã  s   „ ò
&ó/r"   r1  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestColumnStackc                 ó.   — t        t        t        d«       y ©NrC   )r   Ú	TypeErrorr   ©r8   s    r    Útest_non_iterablez!TestColumnStack.test_non_iterableô  s   € Ü”i¤¨qÕ1r"   c                 óÚ   — t        j                  d«      }t        j                  d«      }t        j                  ddgddgddgg«      }t        j                  ||f«      }t        ||«       y )N©rC   r@   r+   )r@   r+   r,   rC   r@   r+   r,   ©r   rG   r   r   ©r8   r   rö   r    rS   s        r    Útest_1D_arrayszTestColumnStack.test_1D_arrays÷  sc   € ä�H‰H�YÓˆÜ�H‰H�YÓˆÜ—8‘8˜a ˜VØ ˜VØ ˜Vð%ó &ˆô —‘ ! Q Ó(ˆÜ�V˜XÕ&r"   c                 óò   — t        j                  dgdgdgg«      }t        j                  dgdgdgg«      }t        j                  ddgddgddgg«      }t        j                  ||f«      }t        ||«       y )NrC   r@   r+   r,   r?  r@  s        r    Útest_2D_arrayszTestColumnStack.test_2D_arrays  s{   € ä�H‰H�q�c˜A˜3  �_Ó%ˆÜ�H‰H�q�c˜A˜3  �_Ó%ˆÜ—8‘8˜a ˜VØ ˜VØ ˜Vð%ó &ˆô —‘ ! Q Ó(ˆÜ�V˜XÕ&r"   c                 óš   — t        j                  t        d¬«      5  t        d„ t	        d«      D «       «       d d d «       y # 1 sw Y   y xY w)Núarrays to stack must be©Úmatchc              3   óF   K  — | ]  }t        j                  d «      –— Œ y­w©r+   N©r   ro   ©Ú.0Ú_s     r    ú	<genexpr>z1TestColumnStack.test_generator.<locals>.<genexpr>  s   è ø€ Ò8¨!œŸ™ 1ŸÑ8ùó   ‚!r@   )r,  Úraisesr:  r   r6   r;  s    r    Útest_generatorzTestColumnStack.test_generator  s8   € Ü�]‰]œ9Ð,EÔFñ 	9ÜÑ8¬u°Q«xÔ8Ô8÷	9÷ 	9ñ 	9úó   œAÁA
N)r[   r\   r]   r<  rA  rC  rQ  r^   r"   r    r7  r7  ó  s   „ ò2ò'ò'ó9r"   r7  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
TestDstackc                 ó.   — t        t        t        d«       y r9  )r   r:  r   r;  s    r    r<  zTestDstack.test_non_iterable  s   € Ü”i¤¨Õ+r"   c                 ó¼   — t        j                  d«      }t        j                  d«      }t        ||g«      }t        j                  ddggg«      }t        ||«       y ©NrC   r@   ©r   rG   r   r   ©r8   r   rö   r   r  s        r    Útest_0D_arrayzTestDstack.test_0D_array  sI   € Ü�H‰H�Q‹KˆÜ�H‰H�Q‹KˆÜ�a˜�V‹nˆÜ—(‘(˜a ˜V˜H˜:Ó&ˆÜ˜3 Õ(r"   c                 óÀ   — t        j                  dg«      }t        j                  dg«      }t        ||g«      }t        j                  ddggg«      }t        ||«       y rW  rX  rY  s        r    Útest_1D_arrayzTestDstack.test_1D_array  sM   € Ü�H‰H�a�S‹MˆÜ�H‰H�a�S‹MˆÜ�a˜�V‹nˆÜ—(‘(˜a ˜V˜H˜:Ó&ˆÜ˜3 Õ(r"   c                 óÔ   — t        j                  dgdgg«      }t        j                  dgdgg«      }t        ||g«      }t        j                  ddggddggg«      }t        ||«       y rW  rX  rY  s        r    Útest_2D_arrayzTestDstack.test_2D_array"  sd   € Ü�H‰H�q�c˜A˜3�ZÓ ˆÜ�H‰H�q�c˜A˜3�ZÓ ˆÜ�a˜�V‹nˆÜ—(‘(˜a ˜V˜H¨¨1 x jÐ1Ó2ˆÜ˜3 Õ(r"   c                 óÊ   — t        j                  ddg«      }t        j                  ddg«      }t        ||g«      }t        j                  ddgddggg«      }t        ||«       y rW  rX  rY  s        r    Útest_2D_array2zTestDstack.test_2D_array2)  s[   € Ü�H‰H�a˜�VÓˆÜ�H‰H�a˜�VÓˆÜ�a˜�V‹nˆÜ—(‘(˜a ˜V a¨ VÐ,Ð-Ó.ˆÜ˜3 Õ(r"   c                 óš   — t        j                  t        d¬«      5  t        d„ t	        d«      D «       «       d d d «       y # 1 sw Y   y xY w)NrE  rF  c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­wrI  rJ  rK  s     r    rN  z,TestDstack.test_generator.<locals>.<genexpr>2  s   è ø€ Ò2 A”2—9‘9˜Q—<Ñ2ùrO  r@   )r,  rP  r:  r   r6   r;  s    r    rQ  zTestDstack.test_generator0  s8   € Ü�]‰]œ9Ð,EÔFñ 	3ÜÑ2¬¨q«Ô2Ô2÷	3÷ 	3ñ 	3úrR  N)	r[   r\   r]   r<  rZ  r\  r^  r`  rQ  r^   r"   r    rT  rT    s    „ ò,ò)ò)ò)ò)ó3r"   rT  c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú
TestHsplitú&Only testing for integer splits.

    c                 ó0   — t        t        t        dd«       y r9  )r   rF   r
   r;  s    r    r<  zTestHsplit.test_non_iterable;  ó   € Ü”j¤&¨!¨QÕ/r"   c                 ó|   — t        j                  d«      }	 t        |d«       t        d«       y # t        $ r Y y w xY w)NrC   r@   r   )r   rG   r
   r   rF   r�   s     r    rZ  zTestHsplit.test_0D_array>  s6   € Ü�H‰H�Q‹Kˆð	Ü�1�aŒLÜ�A�JøÜò 	Ùð	ús   —/ ¯	;º;c                 ó¾   — t        j                  g d¢«      }t        |d«      }t        j                  ddg«      t        j                  ddg«      g}t        ||«       y ©N©rC   r@   r+   r,   r@   rC   r+   r,   ©r   rG   r
   r  r  s       r    r\  zTestHsplit.test_1D_arrayF  sI   € Ü�H‰H’\Ó"ˆÜ�Q˜‹lˆÜ—8‘8˜Q ˜FÓ#¤R§X¡X¨q°!¨fÓ%5Ð6ˆÜ˜˜WÕ%r"   c                 óÖ   — t        j                  g d¢g d¢g«      }t        |d«      }t        j                  ddgddgg«      t        j                  ddgddgg«      g}t        ||«       y rj  rl  r  s       r    r^  zTestHsplit.test_2D_arrayL  se   € Ü�H‰H’lÚð ó !ˆä�Q˜‹lˆÜ—8‘8˜a ˜V a¨ VÐ,Ó-¬r¯x©x¸!¸Q¸À!ÀQÀÐ8HÓ/IÐJˆÜ˜˜WÕ%r"   N©r[   r\   r]   Ú__doc__r<  rZ  r\  r^  r^   r"   r    rd  rd  7  s   „ ñò0òò&ó&r"   rd  c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú
TestVsplitre  c                 ó0   — t        t        t        dd«       y r9  )r   rF   r   r;  s    r    r<  zTestVsplit.test_non_iterableX  rg  r"   c                 óZ   — t        j                  d«      }t        t        t        |d«       y rW  )r   rG   r   rF   r   r�   s     r    rZ  zTestVsplit.test_0D_array[  ó   € Ü�H‰H�Q‹KˆÜ”j¤&¨!¨QÕ/r"   c                 ó€   — t        j                  g d¢«      }	 t        |d«       t        d«       y # t        $ r Y y w xY w©Nrk  r@   r   )r   rG   r   r   rF   r�   s     r    r\  zTestVsplit.test_1D_array_  s7   € Ü�H‰H’\Ó"ˆð	Ü�1�aŒLÜ�A�JøÜò 	Ùð	ús   ™1 ±	=¼=c                 óÊ   — t        j                  g d¢g d¢g«      }t        |d«      }t        j                  g d¢g«      t        j                  g d¢g«      g}t        ||«       y ©Nrk  r@   )r   rG   r   r  r  s       r    r^  zTestVsplit.test_2D_arrayg  sO   € Ü�H‰H’lÚð ó !ˆä�Q˜‹lˆÜ—8‘8š\˜NÓ+¬R¯X©X²|°nÓ-EÐFˆÜ˜˜WÕ%r"   Nrn  r^   r"   r    rq  rq  T  s   „ ñò0ò0òó&r"   rq  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
TestDsplitc                 ó0   — t        t        t        dd«       y r9  )r   rF   r   r;  s    r    r<  zTestDsplit.test_non_iterableq  rg  r"   c                 óZ   — t        j                  d«      }t        t        t        |d«       y rW  ©r   rG   r   rF   r   r�   s     r    rZ  zTestDsplit.test_0D_arrayt  rt  r"   c                 ó^   — t        j                  g d¢«      }t        t        t        |d«       y rx  r}  r�   s     r    r\  zTestDsplit.test_1D_arrayx  s   € Ü�H‰H’\Ó"ˆÜ”j¤&¨!¨QÕ/r"   c                 óˆ   — t        j                  g d¢g d¢g«      }	 t        |d«       t        d«       y # t        $ r Y y w xY wrv  )r   rG   r   r   rF   r�   s     r    r^  zTestDsplit.test_2D_array|  sA   € Ü�H‰H’lÚð ó !ˆð	Ü�1�aŒLÜ�A�JøÜò 	Ùð	ús   �5 µ	AÁ Ac                 ó  — t        j                  g d¢g d¢gg d¢g d¢gg«      }t        |d«      }t        j                  ddgddggddgddggg«      t        j                  ddgddggddgddggg«      g}t        ||«       y rj  )r   rG   r   r  r  s       r    Útest_3D_arrayzTestDsplit.test_3D_array…  sŸ   € Ü�H‰H’|Úð!âÚð!ð"ó #ˆô �Q˜‹lˆÜ—8‘8˜q !˜f q¨! fÐ-°°A°¸¸A¸Ð/?Ð@ÓAÜ—8‘8˜q !˜f q¨! fÐ-°°A°¸¸A¸Ð/?Ð@ÓAðCˆä˜˜WÕ%r"   N)r[   r\   r]   r<  rZ  r\  r^  r�  r^   r"   r    rz  rz  o  s   „ ò0ò0ò0òó&r"   rz  c                   ó   — e Zd Zd„ Zy)ÚTestSqueezec                 óF  — ddl m}  |ddddd«      } |ddddd«      } |dddd«      }t        t        j                  |«      t        j
                  |d«      «       t        t        j                  |«      t        j
                  |d«      «       t        t        j                  |«      t        j
                  |d«      «       d	ggg}t        j                  |«      }t        |d	«       t        |j                  d«       t        t        |«      t        j                  «       y )
Nr   r)   rd   r?   rC   )rd   r?   r?   )rd   r?   rd   r}   g      ø?)
r.   r*   r   r   rµ   rp   r   r7   rÂ   rœ   )r8   r*   r   rö   Úcr   s         r    Ú
test_basiczTestSqueeze.test_basic‘  sÔ   € Ý%á��R˜˜Q Ó"ˆÙ��Q˜˜A˜rÓ"ˆÙ��A�r˜2ÓˆÜœ2Ÿ:™: a›=¬"¯*©*°Q¸Ó*EÔFÜœ2Ÿ:™: a›=¬"¯*©*°Q¸Ó*EÔFÜœ2Ÿ:™: a›=¬"¯*©*°Q¸Ó*AÔBð ˆeˆWˆIˆÜ�j‰j˜‹mˆÜ�S˜#ÔÜ�S—X‘X˜qÔ!Ü”T˜#“Y¤§
¡
Õ+r"   N©r[   r\   r]   r†  r^   r"   r    rƒ  rƒ  �  s   „ ó,r"   rƒ  c                   óÖ   — e Zd Zd„ Zd„ Zej                  j                  dej                  ej                  g«      d„ «       Zd„ Zej                  j                  dg d¢«      d„ «       Zy	)
ÚTestKronc                 óØ  — t        j                  d«      }t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        t        j                  ||«      |«       t        j                  ddgddgg«      }t        j                  d«      }t        t        j                  ||«      |«       t        j                  dg«      }t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        t        j                  ||«      |«       t        j                  ddgddgg«      }t        j                  dg«      }t        t        j                  ||«      |«       t        j                  dggdggg«      }t        j                  ddgddgg«      }t        j                  ddgddggddgddggg«      }t        t        j                  ||«      |«       t        j                  ddgddgg«      }t        j                  dggdggg«      }t        j                  ddgddggddgddggg«      }t        t        j                  ||«      |«       y )	NrC   r@   r+   r,   r›   r  r*  r  )r   rG   r   r   )r8   r   rö   Úks       r    r†  zTestKron.test_basic¤  s  € ä�H‰H�Q‹KˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜœ2Ÿ7™7 1 a›=¨!Ô,Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�Q‹KˆÜœ2Ÿ7™7 1 a›=¨!Ô,ô �H‰H�a�S‹MˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�q˜!�f˜q "˜gÐ&Ó'ˆÜœ2Ÿ7™7 1 a›=¨!Ô,Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�a�S‹MˆÜœ2Ÿ7™7 1 a›=¨!Ô,ô �H‰H˜�s�e˜q˜c˜U�^Ó$ˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H˜˜1�v  1˜vÐ&¨!¨Q¨°!°Q°Ð(8Ð9Ó:ˆÜœ2Ÿ7™7 1 a›=¨!Ô,Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H˜�s�e˜q˜c˜U�^Ó$ˆÜ�H‰H˜˜1�v  1˜vÐ&¨!¨Q¨°!°Q°Ð(8Ð9Ó:ˆÜœ2Ÿ7™7 1 a›=¨!Õ,r"   c                 óÈ  —  G d„ dt         j                  «      }t        j                  ddg«      } ||j                  |j                  |j
                  «      }t        t        t        ||«      «      t         j                  «       t        t        t        ||«      «      |«       t        t        t        ||«      «      |«       t        t        t        ||«      «      |«       y )Nc                   ó   — e Zd ZdZy)ú*TestKron.test_return_type.<locals>.myarrayg      ð?N)r[   r\   r]   Ú__array_priority__r^   r"   r    ÚmyarrayrŽ  Â  s   „ Ø!$Ñr"   r�  r@   )	r   rœ   rD   rQ   rB   r¦   r   rÂ   r   )r8   r�  r   rÎ   s       r    Útest_return_typezTestKron.test_return_typeÁ  s—   € ô	%”b—j‘jô 	%ô �G‰G�Q˜�F‹OˆÙ�Q—W‘W˜aŸg™g q§v¡vÓ.ˆÜ”Tœ$˜q !›*Ó%¤r§z¡zÔ2Ü”Tœ$˜r 2›,Ó'¨Ô1Ü”Tœ$˜q "›+Ó&¨Ô0Ü”Tœ$˜r 1›+Ó&¨Õ0r"   Úarray_classc                 óò   —  |t        j                  ddg«      «      } |t        j                  ddg«      «      } |t        j                  ddg«      «      }t        t        j                  ||«      |«       y )Nr+   r  )r   rD   r   r   )r8   r’  r   rö   r‹  s        r    Útest_kron_smokezTestKron.test_kron_smokeÌ  sZ   € ñ œŸ™  A ›Ó(ˆÙœŸ™  A ›Ó(ˆÙœŸ™  A ›Ó(ˆäœ2Ÿ7™7 1 a›=¨!Õ,r"   c                 ód  — t         j                  j                  ddgddggddgddgg¬«      }t         j                  j                  t        j                  g d¢«      t        j                  t        j                  d«      t
        ¬«       ¬«      }t        |t        j                  ||«      «       y )	NrC   r@   r+   r,   r   r  )rC   r,   r,   é   rA   )r   rÎ   rG   ÚdiagÚidentityrJ   r   r   )r8   r·   r‹  s      r    Útest_kron_mazTestKron.test_kron_maÖ  sƒ   € Ü�E‰E�K‰K˜!˜Q˜ ! Q Ð(°°A°¸¸A¸Ð/?ˆKÓ@ˆÜ�E‰E�K‰KœŸ™¢Ó.Ü—h‘hœrŸ{™{¨1›~´TÔ:Ð:ð ó <ˆô 	˜1œbŸg™g a¨›mÕ,r"   zshape_a,shape_b))r  r  )r>  )r,   r-   r›   )©r@   r@   rr   ))rC   r   r  )©r@   r   r@   rš  ))r@   r   r   r@   r›  c                 óš  — t        j                  |«      }t        j                  |«      }dt        dt        |«      t        |«      z
  «      z  |z   }dt        dt        |«      t        |«      z
  «      z  |z   }t        j                  ||«      }t        j
                  ||«      }t        j                  |j                  |«      sJ d«       ‚y )N)rC   r   zUnexpected shape from kron)r   rD   r3   r€   Úmultiplyr   Úarray_equalrQ   )	r8   Úshape_aÚshape_br   rö   Únormalised_shape_aÚnormalised_shape_bÚexpected_shaper‹  s	            r    Útest_kron_shapezTestKron.test_kron_shapeÝ  s²   € ô �G‰G�GÓˆÜ�G‰G�GÓˆØ!¤C¨¬3¨w«<¼#¸g»,Ñ+FÓ$GÑGÈ'ÑQÐØ!¤C¨¬3¨w«<¼#¸g»,Ñ+FÓ$GÑGÈ'ÑQÐÜŸ™Ð%7Ð9KÓLˆä�G‰G�A�q‹MˆÜ�~‰~Ø—‘˜ô)ð 	GØ*Fó	Gñ )r"   N)r[   r\   r]   r†  r‘  r,  r-  Úparametrizer   ÚasarrayÚasmatrixr”  r™  r¤  r^   r"   r    r‰  r‰  £  ss   „ ò-ò:	1ð ‡[�[×ÑØ˜Ÿ
™
 B§K¡KÐ0óñ-óð-ò-ð ‡[�[×ÑØò 
óñ	Góñ	Gr"   r‰  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTilec                 óœ  — t        j                  g d¢«      }ddgddgg}t        t        |d«      g d¢«       t        t        |d«      g d¢g d¢g«       t        t        |d«      g d¢g«       t        t        |d«      g d	¢g d
¢g«       t        t        |d«      ddgddgddgddgg«       t        t        |d«      g d	¢g d
¢g d	¢g d
¢g«       y )Nrù   rC   r@   r+   r,   )r   rC   r@   r   rC   r@   rš  ©rC   r@   )rC   r@   rC   r@   )r+   r,   r+   r,   ©r@   rC   )r   rG   r   r   ©r8   r   rö   s      r    r†  zTestTile.test_basicó  s¼   € Ü�H‰H’YÓˆØ�ˆV�a˜�VÐˆÜ”T˜!˜Q“ZÒ!3Ô4Ü”T˜!˜V“_Ò'9Ò;MÐ&NÔOÜ”T˜!˜V“_Ò'9Ð&:Ô;Ü”T˜!˜Q“Z¢,²Ð!=Ô>Ü”T˜!˜V“_¨¨1 v°°1¨v¸¸1°vÀÀ1¸vÐ&FÔGÜ”T˜!˜V“_¢|²\Ú'3²\ð'Cõ 	Dr"   c                 óŽ   — t        j                  d«      }t        |d«      }|dz  }t        |t        j                  d«      «       y )Nr-   rC   r@   )r   ro   r   r   r­  s      r    Ú(test_tile_one_repetition_on_array_gh4679z1TestTile.test_tile_one_repetition_on_array_gh4679þ  s5   € Ü�I‰I�a‹LˆÜ��A‹JˆØ	ˆQ‰ˆÜ�QœŸ	™	 !›Õ%r"   c                 óè   — t        j                  g gg«      }t        j                  g g g«      }t        |d«      j                  }t        |d«      j                  }t	        |d«       t	        |d«       y )Nr@   rY   )r@   r   )r+   r@   r   )r   rG   r   rQ   r   )r8   r   rö   r…  r~   s        r    rT   zTestTile.test_empty  s]   € Ü�H‰H�r�d�VÓˆÜ�H‰H�b˜"�XÓˆÜ��A‹J×ÑˆÜ��IÓ×$Ñ$ˆÜ�Q˜ÔÜ�Q˜	Õ"r"   c                 óÚ   — ddl m} g d¢}g d¢}|D ]X  } |dd|¬«      }|D ]F  }t        j                  ||j                  «      }t        ||«      }t        ||«      }	t        ||	«       ŒH ŒZ y )Nr   )Úrandint))r@   r«  r¬  rš  )r@   r+   r@   )r+   r@   ))r+   )r@   r+   )r+   r,   r+   )r+   r@   r+   )r,   r+   r@   r,   rš  r?   )Úsize)r.   r²  r   rD   rB   r   r   r   )
r8   r²  ÚrepsrQ   rõ   rö   Úrr   ÚlargeÚklarges
             r    Útest_kroncomparezTestTile.test_kroncompare  so   € Ý(â@ˆÚJˆØò 	,ˆAÙ˜˜2 AÔ&ˆAØò ,�Ü—G‘G˜A˜qŸw™wÓ'�Ü˜Q ›
�Ü˜a ›�Ü˜U FÕ+ñ	,ñ	,r"   N)r[   r\   r]   r†  r¯  rT   r¸  r^   r"   r    r©  r©  ò  s   „ ò	Dò&ò#ó,r"   r©  c                   ó   — e Zd Zd„ Zy)ÚTestMayShareMemoryc           
      óº  — t        j                  d«      }t        j                  d«      }t        t        j                  ||«      «       t        t        j                  ||d d d…   «      «       t        t        j                  ||d d d…   «      «       t        t        j                  ||dd …d d d…f   «      «       t        t        j                  |d d d…   |«       «       t        t        j                  |d d d…   |«       «       t        t        j                  |dd …d d d…f   |«       «       t        t        j                  |dd …d d d…f   |«      «       y )N)rh   rf   )rc   rf   r›   r½   r@   rC   )r   rD   r   Úmay_share_memory)r8   r~   Úd2s      r    r†  zTestMayShareMemory.test_basic  s  € Ü�G‰G�HÓˆÜ�W‰W�[Ó!ˆÜ”×#Ñ# A qÓ)Ô*Ü”×#Ñ# A q©¨2¨¡wÓ/Ô0Ü”×#Ñ# A q©¨1¨¡vÓ.Ô/Ü”×#Ñ# A q¨©©T¨r¨T¨¡{Ó3Ô4ä”B×'Ñ'¨©$¨B¨$©°Ó4Ð4Ô5Ü”B×'Ñ'¨©#¨A¨#©°Ó3Ð3Ô4Ü”B×'Ñ'¨¨!©"©d°¨d¨(©°RÓ8Ð8Ô9Ü”×#Ñ# B q¡r©4¨R¨4 x¡L°"Ó5Õ6r"   Nr‡  r^   r"   r    rº  rº    s   „ ó7r"   rº  c                 óH   — t        | |d¬«      D ]  \  }}t        ||«       Œ y)zCompare lists of arrays.F)ÚstrictN)Úzipr   )r   r  r·   Úys       r    r  r  *  s(   € ä�C˜¨Ô/ò !‰ˆˆ1Ü˜1˜aÕ ñ!r"   ).r#   Úsysr,  Únumpyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Únumpy.exceptionsr   Únumpy.testingr   r   r   r   Úmaxsizer/  r%   r'   r`   r{   rê   rñ   r	  r1  r7  rT  rd  rq  rz  rƒ  r‰  r©  rº  r  r^   r"   r    ú<module>rÇ     sû   ðÛ Û 
ã ã ÷÷ ÷ ÷ õ  'ß RÓ Rà�;‰;˜Ñ€ò÷3.ñ 3.÷l'8ñ '8÷Tc=ñ c=÷LCñ C÷%5ñ %5÷PC&ñ C&÷L/ñ /÷ 9ñ 9÷:"3ñ "3÷N&ñ &÷:&ñ &÷6&ñ &÷B,ñ ,÷&LGñ LG÷^%,ñ %,÷P7ñ 7ó !r"   