
    g                     |    d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d Zd Zd Zd	 Zd
 ZdS )    )ordereddefault_sort_key)	PartitionIntegerPartitionRGS_enum
RGS_unrankRGS_rankrandom_integer_partition)raises)
partitions)Set	FiniteSetc                     t          t          d            t          t          d            t          t          d            t          t          d            t          g dddg          t          ddgg d          k    sJ t          h dddh          t          g dddg          k    sJ t          d	d
d          } t          dd          }t          | |          t          g dddg          k    sJ t          | |h          t          t          | |                    k    sJ t          | |h          t          | |          k    sJ d S )Nc                  $    t          g d          S )N)   r      r        e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/combinatorics/tests/test_partitions.py<lambda>z,test_partition_constructor.<locals>.<lambda>   s    y33 r   c                  *    t          g dg d          S )Nr   r      )r   r      r   r   r   r   r   z,test_partition_constructor.<locals>.<lambda>   s    yIII>> r   c                  $    t          ddd          S )Nr   r   r   r   r   r   r   r   z,test_partition_constructor.<locals>.<lambda>   s    yAq11 r   c                  H    t          t          t          d                     S Nr   )r   listranger   r   r   r   z,test_partition_constructor.<locals>.<lambda>   s    y$uQxx..9 r   r   r      >   r   r   r   r   r   r   )r   
ValueErrorr   r   abs     r   test_partition_constructorr&   
   s]   
:33444
:>>???
:11222
:99:::YYYA''9aVYYY+G+GGGGGYYYA''9YYYA+G+GGGGG!QA!QAQ??i			Aq6::::::aV	)Aq// : :::::aV	!Q//////r   c                     ddl m}  t          g ddg          }t          ddgddg          }t          | g          }|||g}|                    t                     ||||gk    sJ |                    d	            ||||gk    sJ ||k    d
u sJ ||k    sJ ||k    d
u sJ ||k    sJ ||k     sJ |dz   j        ddgddggk    sJ |dz
  j        g ddggk    sJ |dz
  j        g dgk    sJ |dz   j        g ddggk    sJ |dz   j        ddgdgdggk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nr   )xr   r   r   r   r   )keyc                 $    t          | d          S )Nzrev-lex)order)r   )ws    r   r   z test_partition.<locals>.<lambda>"   s    )!9=== r   F)r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )	sympy.abcr(   r   sortr   	partitionrankRGS)r(   r$   r%   cls        r   test_partitionr4      s   )))aS!!A1a&1a&!!A1#A	
Aq	AFFF   Aq	>>>>FF==F>>>Aq	>>>>Fu6666Ee6666q5555E!Q!Q 00000EQC 00000E....EQC 00000E!Q!qc 222226Q;;;;6Q;;;;5L    5L      r   c                  x   t          t          d            t          t          d            t          dg d          } |                                 }t          g d          }t          ddddd          }| |k    sJ | j        |j        k    sJ | j        g dk    sJ | |k    d	u sJ | |k    sJ | |k    d	u sJ | |k    sJ t          dd
          D ]}t                      }t                      }t          |g          } d t          |          D             }t          |          }t          |          D ]@}	|
                    |            |                                 } t          || j                   At          |          D ]@}	|
                    |            |                                 } t          || j                   A||k    sJ ||k    sJ 	t          g d                                          dk    sJ t          g d                              d          dk    sJ t          t          g d                    dk    sJ t          g d          j        g dk    sJ t          t          d            t          d          dgk    sJ t          dg d          g dk    sJ d S )Nc                  T    t          t          t          d                              S r   r   r   r    r   r   r   r   z(test_integer_partition.<locals>.<lambda>;   s    /U1XX?? r   c            	      X    t          dt          t          dd                              S )Nd   r   r   r7   r   r   r   r   z(test_integer_partition.<locals>.<lambda>=   s!    /T%1++5F5FGG r      )r   r   r   r   r   )r   r   r   )r   r   r   r   F   c                 ,    h | ]}t          |          S r   )r   ).0ps     r   	<setcomp>z)test_integer_partition.<locals>.<setcomp>N   s!    :::q"":::r   r   z###
##
#)r   r   r   ozooo
o
oz	[3, 1, 1])r   r   r   c                       t          d          S )N)r
   r   r   r   r   z(test_integer_partition.<locals>.<lambda>`   s    7;; r   
   )r   r   r   r   r!   r   )seed)r!   r   r   r   r   )r   r"   r   next_lexinteger	conjugater    setr   lenaddr/   prev_lex
as_ferrersstrr
   )
r$   r%   r2   dinextprevansnjs
             r   test_integer_partitionrU   9   s   
:??@@@
:GGHHHIII&&A	

A##AaA..//A66669	!!!!;,,,&&&&Fu6666Ee66661b\\  uuuuaS!!::JqMM:::HHq 	- 	-AHHQKKK

AQ,,,,q 	- 	-AHHQKKK

AQ,,,,s{{{{s{{{{{III&&1133|CCCCIII&&11#66+EEEE			**++{::::III&&0III====
:;;<<<#A&&1#----#B-?-?-?    ! ! ! ! ! !r   c                     t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          d          dk    sJ t          d          dk    sJ t          d	d
          g dk    sJ t          dd          g dk    sJ t	          t          dd                    dk    sJ d S )Nc                  "    t          dd          S )NrB   r   r   r   r   r   r   ztest_rgs.<locals>.<lambda>g       z"a00 r   c                  "    t          dd          S )Nr   r   rX   r   r   r   r   ztest_rgs.<locals>.<lambda>h   s    z!Q// r   c                  "    t          dd          S )NrC   r   rX   r   r   r   r   ztest_rgs.<locals>.<lambda>i   rY   r   c                      t          j        t          t          d                    t          t          d                              S )Nr   r   r   from_rgsr   r    r   r   r   r   ztest_rgs.<locals>.<lambda>k   s+    y1$uQxx..$uQxx..QQ r   c                      t          j        t          t          dd                    t          t          d                              S )Nr   r   r   r]   r   r   r   r   ztest_rgs.<locals>.<lambda>l   s0    y1$uQ{{2C2CT%PQ((^^TT r   rB   r   r      r!   )r   r   r   r   r         )r   r   r   r   r   r   r   r   r   r   r   r   r   r   (   r9   )r   r"   r   r   r	   r   r   r   test_rgsrd   f   s    
:00111
://000
:00111
:QQRRR
:TTUUUB<<1A;;!a....b"!K!K!KKKKKJr3''((B......r   c                      t          g ddg          } t          ddgddg          }t          t          | |gt          j                            sJ d S )Nr   r   r   r   r   )r   r   r   r   _infimum_keyr#   s     r   test_ordered_partition_9608rg   s   sY    )))aS!!A1a&1a&!!A1s/001111111r   N)sympy.core.sortingr   r   sympy.combinatorics.partitionsr   r   r   r   r	   r
   sympy.testing.pytestr   sympy.utilities.iterablesr   sympy.sets.setsr   r   r&   r4   rU   rd   rg   r   r   r   <module>rm      s   8 8 8 8 8 8 8 8F F F F F F F F F F F F F F F F ( ' ' ' ' ' 0 0 0 0 0 0 * * * * * * * *0 0 0! ! !@*! *! *!Z/ / /2 2 2 2 2r   