U
    -e
                     @   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st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st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stt dd@d8jdAkstt dd@d8jd@kst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sttdYdZdTdWgkstt
tdTdUdVgg dVgdUdVgdUgdTdUgdTdUdVgdTdVgdTggkst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   h/var/www/html/Darija-Ai-Train/env/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    >