
    oVh                     \    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 d dlmZ d Zd Zy)	    )ArrayComprehensionArrayComprehensionMap)ImmutableDenseNDimArray)ijkl)raises)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        a/home/dcms/DCMS/lib/python3.12/site-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>/   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>0   s$    01q!QWo1ayQ r   c                  $     j                         S N)tolistbs   r   r    z*test_array_comprehension.<locals>.<lambda>1   s    qxxz r   c                  $     j                         S r)   tomatrixr+   s   r   r    z*test_array_comprehension.<locals>.<lambda>2       qzz| r   c                  $     j                         S r)   r.   )cs   r   r    z*test_array_comprehension.<locals>.<lambda>3   r0   r   )r   r   r   r   r	   doitr*   shapeis_shape_numericr/   r   r&   
isinstancer   subsfree_symbolsranksetfunctionlimits	variablesbound_symbolsr
   	TypeError
ValueError)ader,   r2   s      @@r   test_array_comprehensionrD      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            	         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        d t        ddf      t        t        fd       y )Nc                     | dz   S Nr   r   r   s    r   r    z,test_arraycomprehensionmap.<locals>.<lambda>6   
    ! r   r   r   )r   r   r   r   r   )r   c                     | dz   S rG   r   rH   s    r   r    z,test_arraycomprehensionmap.<locals>.<lambda>=   
    1Q3 r   r   c                     | dz   S rG   r   rH   s    r   r    z,test_arraycomprehensionmap.<locals>.<lambda>?   s
    ac r   )r   r   r   r   c                     | dz   S rG   r   rH   s    r   r    z,test_arraycomprehensionmap.<locals>.<lambda>A   rI   r   r   r   )r   r   r   r   r   )r   r   r   r      )r   r   r         )r   r            )r   rO   rR   !   )   )r   rQ      %   .   )r   rR   rW   1   =   )rO   rT   rY   A   Q   )rQ   rW   7   I   [   )rR   rY   r^   a   y   c                       y)Nr   r   r   r   r   r    z,test_arraycomprehensionmap.<locals>.<lambda>J   s    r   )r   r   r   r   r   c                     | dz   S rG   r   rH   s    r   r    z,test_arraycomprehensionmap.<locals>.<lambda>K   rK   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>L   s     4QqS1a)aAYO r   c                     | |z   S r)   r   )r   r   s     r   r    z,test_arraycomprehensionmap.<locals>.<lambda>M   rK   r   c                  $     j                         S r)   )r3   )rA   s   r   r    z,test_arraycomprehensionmap.<locals>.<lambda>N   s    qvvx r   )r   r   r3   r*   r4   r5   r&   r6   r   r   r7   r
   r@   )exprr,   rA   s     @r   test_arraycomprehensionmaprh   5   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.Aq	:A
:'(r   N)&sympy.tensor.array.array_comprehensionr   r   sympy.tensor.arrayr   	sympy.abcr   r   r   r	   sympy.testing.pytestr
   sympy.matricesr   rD   rh   r   r   r   <module>rn      s"    \ 6     ' !+-Z)r   