a
    kh
                     @   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sFJ t d}|jdks\J |jdksjJ tt	| dksJ g d}t	|jd	d
|ksJ t	|jt dd	d
jd|ksJ |
 jdksJ |
djdksJ |
djdksJ t ddd
}|jdksJ t ddd
}|jdks6J t dddjdksNJ t dddjdksfJ 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s0J t	tg d'g d"gd(d"gd(gd&d(gg d'd&d"gd&ggkspJ 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   Z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   U/var/www/auris/lib/python3.9/site-packages/sympy/combinatorics/tests/test_graycode.py
<listcomp>(       z!test_graycode.<locals>.<listcomp>)r      r	      r   r   r         	   
                  r)   Z000000000001000Z111Z100c                 s   s   | ]}|d v V  qdS ))r
   1Nr   )r   ir   r   r   	<genexpr>3   r   z test_graycode.<locals>.<genexpr>)abcdZ0011r/   r0   ZabcdZ1001r-   )r-   r.   r/   r.   c                   S   s   t dS )Nr   r   r   r   r   r   <lambda><   r   ztest_graycode.<locals>.<lambda>c                   S   s   t dS )Ng@r1   r   r   r   r   r2   =   r   c                   S   s   t dg ddS )Nr	   )r   r   r   r   r1   r   r   r   r   r2   >   r   c                   S   s   t dddS )Nr	   g      @r   r1   r   r   r   r   r2   ?   r   c                   S   s   t g ddS )N)r/   r-   r/   Z1100)r   r   r   r   r   r2   @   r   c                   S   s   t tdjddS )Nr    Z1111r   )listr   generate_grayr   r   r   r   r2   A   r   )r   r4   
startswithskipappendsplitcurrentr   lenr3   nextr   r   typestrallr   r   r   
ValueError)ggotr+   r-   codesr   r   r   test_graycode   sp    





rC   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)rD   rE   )r   r   )bitsr   r   r   test_live_issue_117D   s    rG   N)Zsympy.combinatorics.graycoder   r   r   r   r   r   Zsympy.testing.pytestr   rC   rG   r   r   r   r   <module>   s    >