U
    ZÊ¹jð
  ã                   @   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   sN  t dƒ} g }|  ¡ D ] }| d¡r*|  ¡  | |¡ q|d ¡ ksFt‚t dƒ}|jdks\t‚|jdksjt‚t	t
| ¡ ƒƒdks‚t‚dd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g/}t
|jdd7�ƒ|ksüt‚t
|jt ddd7�jd8�ƒ|k�s t‚| ¡ jd9k�s4t‚| d¡jd:k�sJt‚| d;¡jd6k�s`t‚t d<d=d7�}|jd>k�s|t‚t dd'd7�}|jd?k�s˜t‚t dd@d8�jdAk�s°t‚t dd@d8�jd@k�sÈt‚dBdC„ t d@ƒ ¡ D ƒddDddEd@d<ddFdGdHdIdJdKdLdMdNgk�st‚t dNdNd8�}|jdOk�s$t‚tdPƒdQk�s6t‚td<ƒ}t|ƒtk�sPt‚t	|ƒd<k�sbt‚tdRdS„ |D ƒƒ�szt‚tdTdUdVdWgdXƒdVdWgk�sšt‚tdYdZƒdTdWgk�s²t‚t
tdTdUdVgƒƒg dVgdUdVgdUgdTdUgdTdUdVgdTdVgdTggk�söt‚ttd[d\„ ƒ ttd]d\„ ƒ ttd^d\„ ƒ ttd_d\„ ƒ ttd`d\„ ƒ ttdad\„ ƒ d S )bNé   Ú0z00 11 10é   Ú000000r   é@   Z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111000Z101000Z101001Z101011Z101010Z101110Z101111Z101101Z101100Z100100Z100101Z100111Z100110Z100010Z100011Z100001Z100000©Ústart©ÚrankZ000001Z000011éÿÿÿÿé   Z10010é   é0   é   Z000110c                 S   s   g | ]}t d |d�j‘qS )r   r   )r   r   )Ú.0Ús© r   úf/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/combinatorics/tests/test_graycode.pyÚ
<listcomp>(   s     z!test_graycode.<locals>.<listcomp>é   é   é   é   é	   é
   é   é   é   é   é   Z000000000001000Z111Ú100c                 s   s   | ]}|d kV  qdS ))r
   Ú1Nr   )r   Úir   r   r   Ú	<genexpr>3   s     z test_graycode.<locals>.<genexpr>ÚaÚbÚcÚdZ0011ÚabcdZ1001c                   S   s   t dƒS )Nr   ©r   r   r   r   r   Ú<lambda><   ó    ztest_graycode.<locals>.<lambda>c                   S   s   t dƒS )Ngš™™™™™@r0   r   r   r   r   r1   =   r2   c                   S   s   t ddddgd�S )Nr	   r   r   r   r0   r   r   r   r   r1   >   r2   c                   S   s   t ddd�S )Nr	   g      @r   r0   r   r   r   r   r1   ?   r2   c                   S   s   t dddgdƒS )Nr-   r+   Z1100)r   r   r   r   r   r1   @   r2   c                   S   s   t tdƒjdd�ƒS )Nr   Z1111r   )Úlistr   Úgenerate_grayr   r   r   r   r1   A   r2   )r   r4   Ú
startswithÚskipÚappendÚsplitÚAssertionErrorÚcurrentr   Úlenr3   Únextr   r   ÚtypeÚstrÚallr   r   r   Ú
ValueError)ÚgÚgotr)   r+   Úcodesr   r   r   Útest_graycode   sÞ    
                                     ùÿÿ

ÿ      ÿÿ

 ÿÿ
 ÿÿ
rD   c                  C   sB   t dƒdkst‚t dƒdks t‚dD ]} tt | ƒƒ| ks$t‚q$d S )NÚ0100Z0110Ú0101Z0111)rE   rF   )r   r9   r   )Úbitsr   r   r   Útest_live_issue_117D   s    rH   N)Zsympy.combinatorics.graycoder   r   r   r   r   r   Zsympy.testing.pytestr   rD   rH   r   r   r   r   Ú<module>   s    >