o
    FZh
                     @   s@   d dl mZmZmZmZmZmZ d dlmZ dd Z	dd Z
dS )    )GrayCodebin_to_grayrandom_bitstringget_subset_from_bitstringgraycode_subsetsgray_to_bin)raisesc               	   C   s  t d} g }|  D ]}|dr|   || q
|d ks#J t d}|jdks.J |jdks5J tt	| dksAJ g d}t	|jd	d
|ksQJ t	|jt dd	d
jd|ksbJ |
 jdkskJ |
djdksuJ |
djdksJ t ddd
}|jdksJ t ddd
}|jdksJ t dddjdksJ t dddjdksJ dd t d D g dksJ t ddd}|jdksJ tddksJ td}t|tu sJ t|dksJ tdd |D sJ tg d d!d"d#gksJ td$d%d&d#gksJ t	tg d'g d"gd(d"gd(gd&d(gg d'd&d"gd&ggks.J ttd)d*  ttd+d*  ttd,d*  ttd-d*  ttd.d*  ttd/d*  d S )0N   0z00 11 10   000000r   @   )/011001Z011011Z011010Z011110Z011111Z011101Z011100Z010100Z010101Z010111Z010110Z010010Z010011Z010001Z010000Z110000Z110001Z110011Z110010Z110110Z110111Z110101Z110100Z111100Z111101Z111111Z111110Z111010Z111011Z111001Z111000101000Z101001Z101011Z101010Z101110Z101111Z101101Z101100Z100100Z100101Z100111Z100110Z100010Z100011Z100001100000r   startrankZ000001Z000011r      Z10010   r   0      Z000110c                 S   s   g | ]	}t d |djqS )r   r   )r   r   ).0s r   V/var/www/auris/lib/python3.10/site-packages/sympy/combinatorics/tests/test_graycode.py
<listcomp>(   s    z!test_graycode.<locals>.<listcomp>)r      r	      r   r   r         	   
                  r)   Z000000000001000Z111100c                 s   s    | ]}|d v V  qdS ))r
   1Nr   )r   ir   r   r   	<genexpr>3   s    z test_graycode.<locals>.<genexpr>)abcdZ0011r0   r1   abcdZ1001r.   )r.   r/   r0   r/   c                   S      t dS )Nr   r   r   r   r   r   <lambda><       ztest_graycode.<locals>.<lambda>c                   S   r3   )Ng@r4   r   r   r   r   r5   =   r6   c                   S   s   t dg ddS )Nr	   )r   r   r   r   r4   r   r   r   r   r5   >   s    c                   S   s   t dddS )Nr	   g      @r   r4   r   r   r   r   r5   ?   s    c                   S   s   t g ddS )N)r0   r.   r0   Z1100)r   r   r   r   r   r5   @   s    c                   S   s   t tdjddS )Nr    Z1111r   )listr   generate_grayr   r   r   r   r5   A   s    )r   r8   
startswithskipappendsplitcurrentr   lenr7   nextr   r   typestrallr   r   r   
ValueError)ggotr,   r.   codesr   r   r   test_graycode   sp   




rG   c                  C   sB   t ddksJ t ddksJ dD ]} tt | | ksJ qd S )N0100Z01100101Z0111)rH   rI   )r   r   )bitsr   r   r   test_live_issue_117D   s
   rK   N)Zsympy.combinatorics.graycoder   r   r   r   r   r   Zsympy.testing.pytestr   rG   rK   r   r   r   r   <module>   s     >