o
    *ήc                     @   sp   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d Zd	d
 ZdS )    )ArrayComprehensionArrayComprehensionMap)ImmutableDenseNDimArray)ijkl)raiseswarns)SymPyDeprecationWarning)Matrixc               	      s  t tt tddftddf} t ttdtd f t tt t t 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 td f}|   g dg dg dgksYJ | jd	ks`J | jd
ksgJ |  g dg dg dgksxJ | 	 t
g dg dg dgksJ t| dksJ t  t sJ t|  tsJ  tdt ttddfksJ  jthksJ  jtd fksJ   dksJ  jdksJ jt ksJ jtt t t ksJ jtddftddftddftddffks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sgJ jttttgkssJ jttttgksJ |  tttttgksJ t|dksJ ttdd  ttdd  ttdd  ttdd  ttdd  tt fdd tt fdd ttfdd d S )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                   S   s    t tt tddftdg dfS )Nr   r   r   )r   r   r   r   r   r    r   r   X/tmp/pip-target-vg8gfxp4/lib/python/sympy/tensor/array/tests/test_array_comprehension.py<lambda>-        z*test_array_comprehension.<locals>.<lambda>c                   S   s   t tt tddftddfS Nr   r   r   r   r   r   r   r   r   .       c                   S   s    t tt tddftdtd fS r    r   r   r   r   r   r   /   r   c                   S   s$   t ttt tddftdtd fS Nr   r   r   r   )lenr   r   r   r   r   r   r   r   0   s   $ c                   S   s    t tt tdtd ftddfS )Nr   g      ?r   r   r   r   r   r   r   1   r   c                            S N)tolistr   br   r   r   2       c                      r$   r%   tomatrixr   r'   r   r   r   3   r)   c                      r$   r%   r*   r   )cr   r   r   4   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   )r(   r,   r   test_array_comprehension	   s^   4&" 0$ r>   c               	      s|  t dd tddf    g dksJ  jdksJ  js"J   g dks,J t dks4J t  ts=J t dd tdt	f} |  | ksOJ | 
t	dt d	d tddfksaJ | 
t	d tg d
ksqJ t dd tddftddftddftddf}|  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sJ t dd tddf  g dksJ t dd tddf  g dks
J ttdd  ttdd t dd tddf tt fdd W d    d S 1 s7w   Y  d S ) Nc                 S      | d S Nr   r   r   r   r   r   r   7   r)   z,test_arraycomprehensionmap.<locals>.<lambda>r   r   )r   r   r   r   r   )r   c                 S   r?   r@   r   rA   r   r   r   r   >   r)   r   c                 S   r?   r@   r   rA   r   r   r   r   @   r)   )r   r   r   r   c                 S   r?   r@   r   rA   r   r   r   r   B   r)   r   r   )r   r   r   r   r   )r   r   r   r      )r   r   r         )r   r            )r   rC   rF   !   )   )r   rE      %   .   )r   rF   rK   1   =   )rC   rH   rM   A   Q   )rE   rK   7   I   [   )rF   rM   rR   a   y   c                   S   s   dS )Nr   r   r   r   r   r   r   K   s    )r   r   r   r   r   c                 S   r?   r@   r   rA   r   r   r   r   L   r)   c                   S   s   t tt tddftddfS r"   )r   r   r   r   r   r   r   r   M   r!   F)test_stacklevelc                 S   s   | | S r%   r   )r   r   r   r   r   r   P   r)   c                      r$   r%   )r-   r   r;   r   r   r   Q   r)   )r   r   r-   r&   r.   r/   r#   r0   r   r   r1   r	   r:   r
   r   )exprr(   r   rW   r   test_arraycomprehensionmap6   s8   
$ ,$
(*$rY   N)&sympy.tensor.array.array_comprehensionr   r   sympy.tensor.arrayr   	sympy.abcr   r   r   r   sympy.testing.pytestr	   r
   sympy.utilities.exceptionsr   sympy.matricesr   r>   rY   r   r   r   r   <module>   s    -