
    oVh                     D   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d  Z5y!)"    )defaultdict)Basic)DictTuple)Integer)
NumberKind)
MatrixKind)S)symbols)sympify)Matrix)	FiniteSet)tuple_wrapper	TupleKind)	unchanged)FunctionLambda)Eq)raises)is_sequenceiterable)xyc                  X   d} t        |  }t        t        |             t        |      k(  sJ t        |       t        |      k(  sJ t        t        | d d             t        |d d       k(  sJ t	        |d d  t               sJ |t        dddd      k(  sJ  |j
                  |j                   |k(  sJ t        d      \  }}}}||||f}t        | }|j                         t        |      k(  sJ ||j                  |d|d|d|di      k(  sJ t        d |j                  D              sJ t        |d      j                  |d      t        dd      k(  sJ t        |t        |d            j                  |d      t        dt        dd            k(  sJ t        |      t        t        |       k(  sJ t        j                  |      t        | k(  sJ t        j                  d	 t        d      D              t        dddd      k(  sJ |j                  |j                        |k(  sJ y )
N)            r   r   r   r   zp q r sc              3   <   K   | ]  }t        |t                y wN)
isinstancer   ).0args     P/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_containers.py	<genexpr>ztest_Tuple.<locals>.<genexpr>&   s     9#z#u%9s   r   c              3       K   | ]  }|  y wr     )r"   r   s     r$   r%   ztest_Tuple.<locals>.<genexpr>,   s     .!.s   )r   setr   lenr!   funcargsr   atomssubsallfromiterrange)tstpqrst2st2s           r$   
test_Tupler9      s
   A	Bwqz?c"g%%%q6SWwq!u~#b!f+---beU###q!Q""""277BGG"""#JAq!Q
Q1B
*C99;#b'!!!1aAq!Q2333399999A;Aq!U1a[000E!QK %%a+uQa/DDDD9eRj))))>>"+++>>.U1X..%1a2CCCC<<!S(((    c            
          t        d      t        d      }} | t        ddd| t        |            v sJ |t        ddd| t        |            vsJ y Nr   r   r   r   )t1r7   s     r$   test_Tuple_containsr?   0   sQ    1XuQxBq!QE"I....U1aBb	2222r:   c            	         t        dd      t        dd      z   t        dddd      k(  sJ dt        dd      z   t        dddd      k(  sJ t        dd      dz   t        dddd      k(  sJ t        t        d        t        t        d         G d	 d
t               } t        dd       | dd      z   t        dddddd      k(  sJ  | dd      t        dd      z   t        dddd      k(  sJ y )Nr   r   r   r   r   r   )r   r   c                       t        dd      dz   S r<   r=   r'   r:   r$   <lambda>z*test_Tuple_concatenation.<locals>.<lambda>:   s    eAqkAo r:   c                       dt        dd      z   S r<   r=   r'   r:   r$   rC   z*test_Tuple_concatenation.<locals>.<lambda>;   s    a%1+o r:   c                       e Zd Zd Zy)(test_Tuple_concatenation.<locals>.Tuple2c                 4    t        j                  | ||z         S r    )r   __radd__)selfothers     r$   rH   z1test_Tuple_concatenation.<locals>.Tuple2.__radd__?   s    >>$66r:   N)__name__
__module____qualname__rH   r'   r:   r$   Tuple2rF   >   s    	7r:   rN   )r   r   	TypeError)rN   s    r$   test_Tuple_concatenationrP   6   s    A;q!$aAq(9999E!QK5Aq!#4444A;5Aq!#4444
9-.
9-.7 7 A;1%q!Q1a)@@@@!Q<%1+%q!Q)::::r:   c                     t        t        dd      t              rJ t        dd      dk(  du sJ t        dd      dk7  du sJ t        dd      dk(  du sJ t        dd      dk7  du sJ t        dd      t        dd      k(  du sJ t        dd      t        dd      k7  du sJ t        dd      t        dd      k(  du sJ t        dd      t        dd      k7  du sJ y )Nr   r   rA   TF)r   r   r   )r!   r   tupler'   r:   r$   test_Tuple_equalityrS   E   s    %1+u---!QK6!d***!QK6!e+++!QK6!e+++!QK6!d***!QK5A;&4///!QK5A;&5000!QK5A;&5000!QK5A;&4///r:   c                     t        t               t                     t        j                  u sJ t        t        d      d      t        j                  u sJ t        t        dd      t        d            t        j                  u sJ t        t        d      t        d            t        j                  u sJ t        t        dd      t        dd            t        j                  u sJ t        t        dd      t        dd            t        j                  u sJ t        t         t        dt              t        dd            sJ t        t        dt              t        dd            j                  t        d      t        j                  u sJ t        t         t        dd      t              sJ t        d      } t        t         t        d       | t                    sJ t        t        d       | t                    j                  t        d      j                  | t        t        t        f            t        j                  u sJ y )Nr   r   r   f)r   r   r
   truefalser   r   r-   r   r   r   )rU   s    r$   test_Tuple_EqrX   Q   s   eguw166)))eAh?agg%%%eAqk58$///eAha!QVV+++eAqk5A;'177222eAqk5A;'166111Rq!eAqk222eAqk5A;',,Q2aff<<<Rq!a(((ARq1Q4(((eAh!""1a(--aA4AQVVKKKr:   c                  \   t        dd      t        dd      k\  t        j                  u sJ t        dd      t        dd      k  t        j                  u sJ t        dd      t        dd      k\  t        j                  u sJ t        dd      t        dd      k  t        j                  u sJ y )Nr   r   i   )r   r
   rV   rW   r'   r:   r$   test_Tuple_comparisionr[   `   s    !QK5b>)aff444!QK5b>)agg555!QK5A;&166111!QK5A;&166111r:   c            	          t        dddd      j                  d      dk(  sJ t        ddddd      j                  d      dk(  sJ t        dddddd      j                  d      dk(  sJ t        ddddddd      j                  d      dk(  sJ y Nr   r   r   r   r   )r   tuple_countr'   r:   r$   test_Tuple_tuple_countr_   g   s    Aq!((+q000Aq!Q++A.!333Aq!Q"..q1Q666Aq!Q1%11!4999r:   c                     t        ddddd      j                  d      dk(  sJ t        ddddd      j                  d      dk(  sJ t        ddddd      j                  d      dk(  sJ t        ddddd      j                  d      dk(  sJ t        ddddd      j                  d      dk(  sJ t        t        d        t        t        d        t        t        d        y )	Nr   r   r   r   r   c                  <    t        dddd      j                  d      S r]   r   indexr'   r:   r$   rC   z"test_Tuple_index.<locals>.<lambda>u   s    uQ1a066q9 r:   c                  @    t        ddddd      j                  dd      S )Nr   r   r   r   r   rb   r'   r:   r$   rC   z"test_Tuple_index.<locals>.<lambda>v   s     uQ1a399!Q? r:   c                  B    t        ddddd      j                  ddd      S r]   rb   r'   r:   r$   rC   z"test_Tuple_index.<locals>.<lambda>w   s"    uQ1a399!QB r:   )r   rc   r   
ValueErrorr'   r:   r$   test_Tuple_indexrg   n   s    Aq!Q%%a(A---Aq!Q%%a(A---Aq!Q%%a(A---Aq!Q%%a(A---Aq!Q%%a(A---
:9:
:?@
:BCr:   c            	         t        ddd      dz  t        dddddd      k(  sJ dt        ddd      z  t        dddddd      k(  sJ t        ddd      t        d      z  t        dddddd      k(  sJ t        d      t        ddd      z  t        dddddd      k(  sJ t        t        d        t        t        d        y )Nr   r   r   c                  >    t        ddd      t        j                  z  S r<   )r   r
   Halfr'   r:   r$   rC   z test_Tuple_mul.<locals>.<lambda>   s    eAq!nQVV3 r:   c                  >    t         j                  t        ddd      z  S r<   )r
   rj   r   r'   r:   r$   rC   z test_Tuple_mul.<locals>.<lambda>   s    affU1a^3 r:   )r   r   r   rO   r'   r:   r$   test_Tuple_mulrl   z   s    Aq>!uQ1aA6666U1a^uQ1aA6666Aq>'!*$aAq!Q(????1:eAq!n$aAq!Q(????
934
934r:   c                      t         d        } t        d      } | |d      |dfk(  sJ  | |df      t        |d      fk(  sJ  | d|dfd      dt        |d      dfk(  sJ y )Nc                      | S r    r'   )r1   s    r$   wrap_tuples_and_returnz2test_tuple_wrapper.<locals>.wrap_tuples_and_return   s    r:   r3   r   r   r   )r   r   r   )ro   r3   s     r$   test_tuple_wrapperrp      s      	A!!Q'Aq6111!1a&)eAqk^;;;!!aVQ/AuQ{A3FFFFr:   c                  "   g dt               t        g g      g} t               g}i ddg}t        d | D              sJ t        d |D              sJ t        d | |z   D              sJ t        d |D              sJ t        d |D              sJ y )Nr'    c              3   2   K   | ]  }t        |        y wr    r   r"   is     r$   r%   z,test_iterable_is_sequence.<locals>.<genexpr>   s     /!{1~/   c              3   4   K   | ]  }t        |         y wr    rt   ru   s     r$   r%   z,test_iterable_is_sequence.<locals>.<genexpr>   s     5a;q>!5   c              3   2   K   | ]  }t        |        y wr    r   ru   s     r$   r%   z,test_iterable_is_sequence.<locals>.<genexpr>   s     8qx{8rw   c              3   4   K   | ]  }t        |         y wr    r{   ru   s     r$   r%   z,test_iterable_is_sequence.<locals>.<genexpr>   s     ;18A;;ry   c              3   6   K   | ]  }t        |d         y w)N)excluder{   ru   s     r$   r%   z,test_iterable_is_sequence.<locals>.<genexpr>   s     EQx4((Es   )r   r   r(   r.   )ordered	unorderednot_sympy_iterables      r$   test_iterable_is_sequencer      s    2uwt-GIb"/w////5955558Gi$78888;(:;;;;E2DEEEEr:   c                  >   t        t        t        t                    } t        dt	        ddg            j
                  | u sJ t        dd      j
                  t        t        t              u sJ t        dd      j
                  j                  t        t        fk(  sJ y )Nr   r   )r   r   r	   r   r   kindelement_kind)r   s    r$   test_TupleKindr      s|    ZJ!78DFAq6N#((D000A;yZ@@@@A;((Z,DDDDr:   c            	      *    t        d      \  t        dddi           dk(  sJ     dk(  sJ t        t         fd       t        t         fd       t	               dk(  sJ t         j                               hk(  sJ t         j                               t        j                  t        d      t        d      hk(  sJ  j                  dd      dk(  sJ  j                  d	d      dk(  sJ  v r v rd vrd	 vsJ  j                        r j                  d      sJ t        dddi      t        dfdfdf      k(  sJ t        t        fd
       t        t              5  d d<   d d d        t         j                               t        t        j                        t        t        d            t        t        d            hk(  sJ t               hk(  sJ t!               dk(  sJ  j#                         dk(  sJ t        dddi        t               k(  sJ t%        t&                   dk(  sJ     dk(  sJ     dk(  sJ t               sJ t                t	               dk(  sJ t         j                               hk(  sJ t         j                               t        j(                  t        j(                  t        j(                  hk(  sJ y # 1 sw Y   xY w)Nzx y zr   r   r   c                       d   S )Nr   r'   ds   r$   rC   ztest_Dict.<locals>.<lambda>   s    QqT r:   c                       d   S )N2r'   r   s   r$   rC   ztest_Dict.<locals>.<lambda>   s    QsV r:      default5c                  ,    t         dfdfdff      S r<   )r   )r   r   zs   r$   rC   ztest_Dict.<locals>.<lambda>   s    dQFQFQF#;< r:      z{x: 1, y: 2, z: 3}r   )r   r   r   KeyErrorr)   r(   keysvaluesr
   OnegethasrO   NotImplementedErroritemsr   str__repr__r   intZero)r   r   r   r   s   @@@@r$   	test_Dictr      s   gGAq!aAq!Q AQ4199Q4199
8\"
8^$q6Q;;qvvx=Q1I%%%qxxz?quuadAaD111155I)+++55i I---6a1f!1<<558a  
 !Q1a#$!Q!Q!Q() * ) 9<=	#	$ ! 		Qa1a1GH H Hq6aAYq6))))::<//// 	aAq!Q AQ<< 	CAQ4199Q4199Q41997N7QAq6Q;;qvvx=Q1I%%%qxxz?qvvqvvqvv6666- s    LLc                      ddg} t         t        t        fD ]]  }|t        k7  r ||   |t        |        k(  sJ  ||   |t        |        g}t	        |      t	        |      k(  sJ t         ||        r]J  y )NrA   )r   r   )r   r   r   reversedsortedr(   )r+   opairs      r$   test_issue_5788r      s    FDE9% :d8q(4.11114!Xd^,-d|vd|+++1d8}}r:   N)6collectionsr   sympy.core.basicr   sympy.core.containersr   r   sympy.core.numbersr   sympy.core.kindr   sympy.matrices.kindr	   sympy.core.singletonr
   sympy.core.symbolr   sympy.core.sympifyr   sympy.matrices.denser   sympy.sets.setsr   r   r   sympy.core.exprr   sympy.core.functionr   r   sympy.core.relationalr   sympy.testing.pytestr   sympy.utilities.iterablesr   r   	sympy.abcr   r   r9   r?   rP   rS   rX   r[   r_   rg   rl   rp   r   r   r   r   r'   r:   r$   <module>r      s    # " / & & * " % & ' % : % 0 $ ' ; )23;	0L2:	D5	GFE,7^r:   