
    g                     z    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y)    )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        | |      k7  sJ y )Nc                      t        g d      S )N)   r      r        ^/var/www/openai/venv/lib/python3.12/site-packages/sympy/combinatorics/tests/test_partitions.py<lambda>z,test_partition_constructor.<locals>.<lambda>   s	    y3r   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I>r   c                      t        ddd      S )Nr   r   r   r   r   r   r   r   z,test_partition_constructor.<locals>.<lambda>   s    yAq1r   c                  6    t        t        t        d             S Nr   )r   listranger   r   r   r   z,test_partition_constructor.<locals>.<lambda>   s    y$uQx.9r   r   r      >   r   r   r   r   r   r   )r   
ValueErrorr   r   abs     r   test_partition_constructorr&   
   s    
:34
:>?
:12
:9:YA'9aVY+GGGGYA'9YA+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}|j                  t               ||||gk(  sJ |j                  d	        ||||gk(  sJ ||k(  d
u sJ ||k  sJ ||kD  d
u sJ ||k7  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 y )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6M6Ee6M6q5L5E!Q!Q 0000EQC 0000E...EQC 0000E!Q!qc 222266Q;;66Q;;55L   55L   r   c                     t        t        d        t        t        d        t        dg d      } | j                         }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 | |kD  d	u sJ | |k7  sJ t        dd
      D ]  }t               }t               }t        |g      } t        |      D ch c]  }t        |       }}t        |      }	t        |	      D ]9  }
|j                  |        | j                         } t        || j                         ; t        |	      D ]9  }
|j                  |        | j                         } t        || j                         ; ||k(  sJ ||k(  rJ  t        g d      j                         dk(  sJ t        g d      j                  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 y c c}w )Nc                  <    t        t        t        d                  S r   r   r   r    r   r   r   r   z(test_integer_partition.<locals>.<lambda>;   s    /U1X?r   c            	      @    t        dt        t        dd                  S )Nd   r   r   r7   r   r   r   r   z(test_integer_partition.<locals>.<lambda>=   s    /T%1+5FGr      )r   r   r   r   r   )r   r   r   )r   r   r   r   F   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pansnjs              r   test_integer_partitionrR   9   s<   
:?@
:GHI&A	

A#AaA./A6M699		!!!;;,&&&Fu6M6Ee6M61b\uuaS!,6qM:Mq"M:HqAHHQK

AQ,  qAHHQK

AQ,  s{{s{{ " I&113|CCCI&11#6+EEE	*+{:::I&00I===
:;<#A&1#---#B-?  ! ! !) ;s   /Ic                  n   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 y )Nc                      t        dd      S )Nr>   r   r   r   r   r   r   ztest_rgs.<locals>.<lambda>g       z"a0r   c                      t        dd      S )Nr   r   rU   r   r   r   r   ztest_rgs.<locals>.<lambda>h   s    z!Q/r   c                      t        dd      S )Nr?   r   rU   r   r   r   r   ztest_rgs.<locals>.<lambda>i   rV   r   c                  v    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1$uQx.$uQx.Qr   c                  x    t        j                  t        t        dd            t        t        d                  S )Nr   r   r   rZ   r   r   r   r   ztest_rgs.<locals>.<lambda>l   s%    y11$uQ{2CT%PQ(^Tr   r>   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_rgsra   f   s    
:01
:/0
:01
:QR
:TUB<1A;!a...b"!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 y )Nr   r   r   r   r   )r   r   r   r   _infimum_keyr#   s     r   test_ordered_partition_9608rd   s   sC    )aS!A1a&1a&!A1s//0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   rR   ra   rd   r   r   r   <module>rj      s:    8F F ( 0 *0!@*!Z/2r   