U
    L?h                     @   sp   d dl Z d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZ d dlmZ dd	 ZdS )
    N)GoldenRatio)Rationalpi)S)sqrt)continued_fraction_periodiccontinued_fraction_iteratorcontinued_fraction_convergentscontinued_fraction_reducecontinued_fraction)raisesc                  C   s  t ddddt ddddks tt ddddt ddddks@ttd} td|  d|   tdkshtddtddtddtd ddtd d  ddtd  d dtd d	td
 d f	D ]>}tt||  dksttt| |  dkstqttdd  ttdd  ttdd  ttdd  ttdd  ttdd  t dddddgksrtt dddddddddddggkstt ddddgkstt ddddddgkstt ddddddgkstt ddddddgkstt dddddddgks$tt dddddddgksBtt ddddddddgksbtt ddddggks|tt dddddggkstt ddddddgkstt ddddddddgkstt dddddddgkstt d d!dddd"dgkstt d#d$ddddddddd%g	ks6td=d&d'}|t	t
dddddddgksdt|t	tddd(dd)ddgksttt	td
dddddgksttt	td*dd+ddddgkstttdddd,gtjtddtd,dtd-d.gkstttdgtdgks*tttdddddddgtjtdtddtddtd,dtdd,td/dgkstttddtdddgtjtddtddtddgkst|tdggtjtdtddtddtd,dtdd,td/dgkst|tdddggtjtdtddtddtddtd"d(td-d0gks\td1d2 tdD }|t|tdtdtd,dtddtddtd3dtd4d5gksttdddd,gtd-d.ksttdgtdksttddddgtd6d7ksttddddd8d,ggtdd d   dksFttddd9gtd:d;ksdttdggtdd d   dksttd<dddggdtd kstd S )>N   
   r                     c                   S   s   t tdtd S Nr   r   cfr    r   r   ]/var/www/html/venv/lib/python3.8/site-packages/sympy/ntheory/tests/test_continued_fraction.py<lambda>       z)test_continued_fraction.<locals>.<lambda>c                   S   s   t tdtd S r   r   r   r   r   r   r      r   c                   S   s   t tS N)r   r   r   r   r   r   r      r   c                   S   s   t dS )Ng?)r   r   r   r   r   r      r   c                   S   s   t dddS )Nr   r   cf_pr   r   r   r   r      r   c                   S   s   t dddS )Nr   r   r   r   r   r   r   r      r                            1   i  ik  i  i'  i  i
     i  i	
     c                 S   s   t t| |S r   )list	itertoolsislice)iteratornr   r   r   take0   s    z%test_continued_fraction.<locals>.take   i$  i   G   >      )   c                 s   s6   | ].}|d krdn|d dkr*|d d nd V  qdS )r   r   r   r   Nr   ).0ir   r   r   	<genexpr>C   s     z*test_continued_fraction.<locals>.<genexpr>W   j   '   i      	   7   .   )r   )r    AssertionErrorr   r   r   cf_rexpandr   
ValueErrorcf_iphir   r,   cf_cr   ZOner-   count)tr0   r1   Z	cf_iter_er   r   r   test_continued_fraction   s       . 
  (  &
$$$&:2  @0 4 .   4*rN   )r-   Z
sympy.corer   rJ   Zsympy.core.numbersr   r   Zsympy.core.singletonr   Z(sympy.functions.elementary.miscellaneousr   Z sympy.ntheory.continued_fractionr   r    r   rI   r	   rK   r
   rF   r   r   Zsympy.testing.pytestr   rN   r   r   r   r   <module>   s   