
    oVh                         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 d dlmZ d dlmZ dZdZdZd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"y)    )	fuzzy_notLogicAndOrNot	fuzzy_andfuzzy_or_fuzzy_group_torf
fuzzy_nand	fuzzy_xor)raises)productTFNc                      t         t        t        g} t        | gdz   D ]9  }t	        |      t        d |D              rdnt        d |D              rdnd u r9J  y )N   c              3       K   | ]  }|  y wN .0js     K/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_logic.py	<genexpr>ztest_torf.<locals>.<genexpr>   s     ~a~   Tc              3   $   K   | ]  }|d u  
 yw)FNr   r   s     r   r   ztest_torf.<locals>.<genexpr>   s     )@!u*)@s   F)TFUr   r   all)vis     r   	test_torfr"      s`    	
Aq	Aqc!e_ MQxC~1~$5D&))@a)@&@UdM 	M MM    c                     t         t        t        g} t        | gdz   D ]l  }t	        |      d |v rd nt        d |D              rdndu sJ t	        |d      |j                  d      dkD  rd nd |v rd nt        d |D              rdndu rlJ  d t        d	      D        }t        |      J d
 t        d	      D        }t        |      J y )Nr   c              3       K   | ]  }|  y wr   r   r   s     r   r   z#test_fuzzy_group.<locals>.<genexpr>   s     ~a~r   TF)
quick_exit   c              3       K   | ]  }|  y wr   r   r   s     r   r   z#test_fuzzy_group.<locals>.<genexpr>   s     !r   c              3   .   K   | ]  }|d k(  rdnd  yw)r   TNr   r   r!   s     r   r   z#test_fuzzy_group.<locals>.<genexpr>        	716$
$	7      c              3   .   K   | ]  }|d k(  rdnd  yw)r'   TNr   r*   s     r   r   z#test_fuzzy_group.<locals>.<genexpr>   r+   r,   )	r   r   r   r   r
   r   countranger   )r    r!   its      r   test_fuzzy_groupr2      s    	
Aq	Aqc!e_ NA4194,/~1~,=D5K 	K KA$/ggenq(TaidcQ.?dUN 	N NN 
8eAh	7B9	7eAh	7B9r#   c                      t        t              t        k(  sJ t        t              t        k(  sJ t        t              t        k(  sJ y r   )r   r   r   r   r   r#   r   test_fuzzy_notr4   "   s8    Q<1Q<1Q<1r#   c                     t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        fD  cg c]  } t        | g       c} t        t        t        gk(  sJ t        t        t        t        g      t        k(  sJ t        g       t        k(  sJ t	        t
        d        y c c} w )Nc                      t               S r   )r   r   r#   r   <lambda>z test_fuzzy_and.<locals>.<lambda>2   s    ik r#   )r   r   r   r   r   	TypeErrorws    r   test_fuzzy_andr;   (   s    aV!!!aV!!!aV!!!aV!!!aV!!!aV!!!%&1I.qIqcN.1a);;;aAY1$$$R=A
9)* /   D;c                     t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        g      t        k(  sJ t        t        t        fD  cg c]  } t        | g       c} t        t        t        gk(  sJ t        t        t        t        g      t        k(  sJ t        g       t        k(  sJ t	        t
        d        y c c} w )Nc                      t               S r   )r	   r   r#   r   r7   ztest_fuzzy_or.<locals>.<lambda>?   s    hj r#   )r	   r   r   r   r   r8   r9   s    r   test_fuzzy_orr?   5   s    QFq   QFq   QFq   QFq   QFq   QFq   $%q!9-aHaSM-!Q:::Q1I!###B<1
9() .r<   c                     t        dt        d            } t        dt        d            }t        |       t        |      k(  sJ | |k(  t        k(  sJ | |k7  t        k(  sJ t        ddd      t        ddd      k(  sJ t        ddd      t        ddd      k(  sJ t        ddd      t        ddd      k(  sJ t        d      t        d      k  sJ t        d      t        d      k  du sJ t        d      dk  du sJ y )NabcFr-   )r   r   hashr   r   )l1l2s     r   test_logic_cmprG   B   s    	S#c(	B	S#c(	B8tBx"H??"H??sCS#s!3333sCS#s!3333sCS#s!3333s8c#hHs3xE)))HqLU"""r#   c                  <   t               du sJ t               du sJ t        t              t        k(  sJ t        t              t        k(  sJ t        t              t        k(  sJ t        t              t        k(  sJ t        d      dk(  sJ t        d      dk(  sJ y )NTFrA   )r   r   r   r   r   r#   r   test_logic_oneargrI   S   s~    5D==45==q6Q;;q6Q;;a5A::a5A::s8s??c7c>>r#   c                  |    t        dt        d            t        k(  sJ t        dt        d            t        k(  sJ y NrA   )r   r   r   r   r   r   r#   r   test_logic_xnotxrL   `   s4    sCH"""c3s8!!!r#   c                     t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        t        t              t        k(  sJ t        dt              dk(  sJ t        dt              t        k(  sJ t        dt              t        k(  sJ t        dt              dk(  sJ y rK   )r   r   r   r   r   r#   r   test_logic_eval_TFrN   e   s    q!9>>q!9>>q!9>>q!9>>a8q==a8q==a8q==a8q==sA;#sA;!c1:??c1:r#   c                     t        ddd      t        dd      k(  sJ t        ddd      t        dd      k(  sJ t        t        dd      t        dd            t        dddd      k(  sJ t        t        dd      t        dd            t        dddd      k(  sJ t        dt        ddd      t        dd      t        ddd      dt        dd            t        dt        ddd      t        dd            k(  sJ y )	NrA   rB   rC   dtnpr)r   r   r   r#   r   test_logic_combine_argsrU   v   s    sCS#...c33,,,s3}c#sm,Cc30GGGGbclBsCL)RS#s-CCCCc3sC%s3}c#sC6H##sm "3Cc(:CSM JK K Kr#   c            
         t        t        dd      d      } | j                         t        t        dd      t        dd            k(  sJ t        t        dt        d            d      } | j                         t        dd      k(  sJ t        t        dd      t        dd            } | j                         t        t        dd      t        dd      t        dd      t        dd            k(  sJ y )NrA   rB   rC   rP   )r   r   expandr   )rQ   s    r   test_logic_expandrX      s    BsCL#A88:CSM3sC=9999BsCHs#A88:S#&&&BsCL"S#,'A88:
3sC=#c3-S#CFG G Gr#   c                  N    t         j                     d      dk(  sJ   d      t        d      k(  sJ   d      t        dd      k(  sJ   d      t	        dd      k(  sJ   d      t        t	        dd      d      k(  sJ   d      t	        t        dd      d      k(  sJ   d	      t        ddd      k(  sJ   d
      t	        ddd      k(  sJ t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )NrA   !aza & brB   za | bz	a | b & crC   z	a & b | cz	a & b & cz	a | b | cc                        d      S )Nz| ar   Ss   r   r7   z'test_logic_fromstring.<locals>.<lambda>       qx r#   c                        d      S )Nz& ar   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   r^   r#   c                        d      S )Nza | | br   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>       q| r#   c                        d      S )Nza | & br   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   ra   r#   c                        d      S )Nza & & br   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   ra   r#   c                        d      S )Nza |r   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   r^   r#   c                        d      S Nza|br   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   r^   r#   c                        d      S )N!r   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   s    qv r#   c                        d      S Nz! ar   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   r^   r#   c                        d      S )Nz!(a + 1)r   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   s    q} r#   c                        d      S )N r   r\   s   r   r7   z'test_logic_fromstring.<locals>.<lambda>   s    qu r#   )r   
fromstringr   r   r   r   
ValueErrorr\   s   @r   test_logic_fromstringrp      sO   AS6S==T7c#hW:S#&&&W:C%%%[>SCs3333[>RCs3333[>Sc3////[>RS#....
:'(
:'(
:+,
:+,
:+,
:'(
:'(
:~&
:'(
:,-
:}%r#   c                  ~   t        d      dk7  sJ t        d      dk7  sJ t        d      dk(  sJ t        d      dk(  sJ t        t        dd            t        t        d      t        d            k(  sJ t        t        dd            t        t        d      t        d            k(  sJ t        t        d        y )NrA   rZ   TFrB   c                      t        d      S )Nr'   )r   r   r#   r   r7   z test_logic_not.<locals>.<lambda>   s
    s1v r#   )r   r   r   r   ro   r   r#   r   test_logic_notrs      s    s8tt9t9u: s3}CHc#h!7777r#s|CHc#h 7777
:~&r#   c                       t         j                   t        t         fd       t        t         fd       t        t         fd       y )Nc                        d      S )Nza&br   r\   s   r   r7   z!test_formatting.<locals>.<lambda>   r^   r#   c                        d      S rf   r   r\   s   r   r7   z!test_formatting.<locals>.<lambda>   r^   r#   c                        d      S rj   r   r\   s   r   r7   z!test_formatting.<locals>.<lambda>   r^   r#   )r   rn   r   ro   r\   s   @r   test_formattingrx      s/    A
:'(
:'(
:'(r#   c                      t        d      J t        d      J t        d      J t        d      du sJ t        d      du sJ t        d      du sJ t        d	      du sJ y )
Nr   )NT)NF)TFT)TTF)TTF)TTFT)r   r   r#   r   test_fuzzy_xorrz      s    W%%%\"***]#+++]#t+++\"e+++()U222./4777r#   c                  V    dD ]$  } t        |       t        t        |             k(  r$J  y )N))r'   r   )r'   r'   )r   r   )r   r   r   )argss    r   test_fuzzy_nandr}      s-    ( >$9Yt_#====>r#   )#sympy.core.logicr   r   r   r   r   r   r	   r
   r   r   r   sympy.testing.pytestr   	itertoolsr   r   r   r   r"   r2   r4   r;   r?   rG   rI   rL   rN   rU   rX   rp   rs   rx   rz   r}   r   r#   r   <module>r      s   : : : : ' 	M
+
*#"
"
"K	G&2')8>r#   