
    MZd                     l    d dl mZmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d Zd Zy	)
    )ArrayComprehensionArrayComprehensionMap)ImmutableDenseNDimArray)ijkl)raiseswarns)SymPyDeprecationWarning)Matrixc            	         t        t        t        z  t        ddft        ddf      } t        t        t        dt        dz   f      t        t        t        z   t        z   t        z   t        ddft        ddft        ddft        ddf      t        t        t        ddf      }t        t        t        t        dz   t        dz   f      }| j                         j                         g dg dg dgk(  sJ | j                  d	k(  sJ | j                  d
k(  sJ | j                         g dg dg dgk(  sJ | j                         t        g dg dg dg      k(  sJ t        |       dk(  sJ t        j                         t               sJ t        | j                         t              sJ j                  t        d      t        t        t        ddf      k(  sJ j                  t        hk(  sJ j                  t        dz   fk(  sJ j!                         dk(  sJ j                  dk(  sJ j                  t#               k(  sJ j$                  t        t        z   t        z   t        z   k(  sJ j&                  t        ddft        ddft        ddft        ddffk(  sJ j                         j                         g dg dg dg dgg dg dg dg dgg dg dg dg dggg dg dg dg dgg dg dg dg dgg dg dg dg dgggk(  sJ j                  t#               k(  sJ j(                  t        t        t        t        gk(  sJ j*                  t        t        t        t        gk(  sJ |j                         j                         t        t        t        t        t        gk(  sJ t        |      dk(  sJ t-        t.        d        t-        t0        d        t-        t0        d        t-        t0        d        t-        t.        d        t-        t0        fd       t-        t0        fd       t-        t0        fd       y )N               )r   r   r   )r         )r   	      )r   r   Tr   F)r   r   r      r   )r   r   r   r   r   )r   r   r   r   
   )r   r   r   r      )r   r   r   r   r   )r   r   r   r      )r   r   r   r      c                  R    t        t        t        z  t        ddft        dg df      S )Nr   r   r   )r   r   r   r   r   r        S/usr/lib/python3/dist-packages/sympy/tensor/array/tests/test_array_comprehension.py<lambda>z*test_array_comprehension.<locals>.<lambda>-   s!    01q!Qi!Q	ARS r    c                  N    t        t        t        z  t        ddft        ddf      S Nr   r   r   r   r   r    r!   r"   z*test_array_comprehension.<locals>.<lambda>.   s     1!A#1ay1a)L r    c                  \    t        t        t        z  t        ddft        dt        dz   f      S r$   r   r   r    r!   r"   z*test_array_comprehension.<locals>.<lambda>/   s$    1!A#1ay1a1+N r    c            
      n    t        t        t        t        z  t        ddft        dt        dz   f            S Nr   r   r   r   )lenr   r   r   r   r    r!   r"   z*test_array_comprehension.<locals>.<lambda>0   s)    s#5acAq!9q!QqSk#RS r    c                  \    t        t        t        z  t        dt        dz   ft        ddf      S )Nr   g      ?r   r   r   r    r!   r"   z*test_array_comprehension.<locals>.<lambda>1   s$    01q!QWo1ayQ r    c                  $     j                         S N)tolistbs   r!   r"   z*test_array_comprehension.<locals>.<lambda>2   s    qxxz r    c                  $     j                         S r+   tomatrixr-   s   r!   r"   z*test_array_comprehension.<locals>.<lambda>3       qzz| r    c                  $     j                         S r+   r0   )cs   r!   r"   z*test_array_comprehension.<locals>.<lambda>4   r2   r    )r   r   r   r   r	   doitr,   shapeis_shape_numericr1   r   r(   
isinstancer   subsfree_symbolsranksetfunctionlimits	variablesbound_symbolsr
   	TypeError
ValueError)ader.   r4   s      @@r!   test_array_comprehensionrF   	   s   1Q3Aq	Aq!95A1q!QqSk*A1Q3q57Q1I1ay1a)aAYOA1q!Qi(A1q!A#qsm,A668??Iz BBBB77f%%%88:)Y
;;;;::<6$$%#' ( ( ( ( q6Q;;affh 2333affh 788866!Q<-a!Q;;;;>>aS   77q1uh668q==&&&>>SU"""::QQ&&&88Aq	Aq!9q!Qi!QCCCC668???OEUWh"i#24DFWYk"l#35FHZ\o"p"r $34DFWYk"l#35FHZ\o"p#46HJ]_s"t"v!w w w w >>SU""";;1aA,&&&??q!Ql***668??Aq!Q///q6Q;;
9ST
:LM
:NO
:ST
9QR
:)*
:+,
:+,r    c            	      6   t        d t        ddf      j                         j                         g dk(  sJ j                  dk(  sJ j
                  sJ j                         g dk(  sJ t              dk(  sJ t        j                         t              sJ t        d t        dt        f      } | j                         | k(  sJ | j                  t        d      t        d t        ddf      k(  sJ | j                  t        d      j                         t        g d	      k(  sJ t        d
 t        ddft        ddft        ddft        ddf      }|j                         j                         g dg dg dg dgg dg dg dg dgg dg dg dg dggg dg dg dg dgg dg dg dg dgg dg dg dg dgggk(  sJ t        d t        ddf      j                         j                         g dk(  sJ t        d t        ddf      j                         j                         g dk(  sJ t        t        d        t        t        d      5  t        d t        ddf      t        t        fd       d d d        y # 1 sw Y   y xY w)Nc                     | dz   S Nr   r   r   s    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>7   
    ! r    r   r   )r   r   r   r   r   )r   c                     | dz   S rI   r   rJ   s    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>>   
    1Q3 r    r   c                     | dz   S rI   r   rJ   s    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>@   s
    ac r    )r   r   r   r   c                     | dz   S rI   r   rJ   s    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>B   rK   r    r   r   )r   r   r   r   r   )r   r   r   r      )r   r   r         )r   r            )r   rQ   rT   !   )   )r   rS      %   .   )r   rT   rY   1   =   )rQ   rV   r[   A   Q   )rS   rY   7   I   [   )rT   r[   r`   a   y   c                       y)Nr   r   r   r    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>K   s    r    )r   r   r   r   r   c                     | dz   S rI   r   rJ   s    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>L   rM   r    c                  N    t        t        t        z  t        ddft        ddf      S r'   )r   r   r   r   r    r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>M   s     4QqS1a)aAYO r    F)test_stacklevelc                     | |z   S r+   r   )r   r   s     r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>P   s
    qs r    c                  $     j                         S r+   )r5   )rC   s   r!   r"   z,test_arraycomprehensionmap.<locals>.<lambda>Q   s    1668 r    )r   r   r5   r,   r6   r7   r(   r8   r   r   r9   r
   rB   r   r   )exprr.   rC   s     @r!   test_arraycomprehensionmaprk   6   s]   maAY7A668??///77d??88:(((q6Q;;affh 7888 Aq	:D99;$99Q?3MAq!9MMMM99Q?!%<\%JJJJmaAYAq	Aq!9qRSUViXA668???4DFXZl"m#35GI\^q"r#57JL`bv"w"y $45GI\^q"r#57JL`bv"w#68LNbdy"z"|!} } } } !Q1I6;;=DDF/YYY Aq	:??AHHJo]]]
:OP	&	> -!"2Q1I>z+,- - -s   (JJN)&sympy.tensor.array.array_comprehensionr   r   sympy.tensor.arrayr   	sympy.abcr   r   r   r	   sympy.testing.pytestr
   r   sympy.utilities.exceptionsr   sympy.matricesr   rF   rk   r   r    r!   <module>rr      s%    \ 6     . > !+-Z-r    