o
    jg
                     @   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   @   )/011001011011011010011110011111011101011100010100010101010111010110010010010011010001010000110000110001110011110010110110110111110101110100111100111101111111111110111010111011111001111000101000101001101011101010101110101111101101101100100100100101100111100110100010100011100001100000r   startrank000001000011r<      10010   r-   0      000110c                 S   s   g | ]	}t d |djqS )rH   r=   )r   r@   ).0s rL   _/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/combinatorics/tests/test_graycode.py
<listcomp>(   s    z!test_graycode.<locals>.<listcomp>)r      r	      rH   rD   r         	   
                  rY   000000000001000111100c                 s   s    | ]}|d v V  qdS ))r
   1NrL   )rJ   irL   rL   rM   	<genexpr>3   s    z test_graycode.<locals>.<genexpr>)abcd0011rb   rc   abcd1001r`   )r`   ra   rb   ra   c                   S      t dS )Nr   r   rL   rL   rL   rM   <lambda><       ztest_graycode.<locals>.<lambda>c                   S   rg   )Ng@rh   rL   rL   rL   rM   ri   =   rj   c                   S   s   t dg ddS )Nr	   )rO   rO   r   r=   rh   rL   rL   rL   rM   ri   >   s    c                   S   s   t dddS )Nr	   g      @r?   rh   rL   rL   rL   rM   ri   ?   s    c                   S   s   t g ddS )N)rb   r`   rb   1100)r   rL   rL   rL   rM   ri   @   s    c                   S   s   t tdjddS )NrP   1111r=   )listr   generate_grayrL   rL   rL   rM   ri   A   s    )r   rn   
startswithskipappendsplitcurrentr@   lenrm   nextr   r   typestrallr   r   r   
ValueError)ggotr^   r`   codesrL   rL   rM   test_graycode   sp   




r}   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0100011001010111)r~   r   )r   r   )bitsrL   rL   rM   test_live_issue_117D   s
   r   N)sympy.combinatorics.graycoder   r   r   r   r   r   sympy.testing.pytestr   r}   r   rL   rL   rL   rM   <module>   s     >