o
    GZh                     @   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   s6  t ddddt ddddksJ t ddddt ddddks J td} td|  d|   tdks4J 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srJ tt| |  dksJ qbt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sJ t dddddg dgksJ t ddddgksJ t dddg dksJ t dddg dksJ t dddg dksJ t dddg dksJ t dddg dksJ t dddg d ksJ t ddddggks*J t dddddggks8J t ddd!g d"ksEJ t d#d$dg d%ksRJ t d&d'g d(ks^J t d)d*g d+ksjJ t d,d-g d.ksvJ dLd/d0}|tt	g d1ksJ |tt
g d2ksJ tttd
d3g d4ksJ tttd5d3g d6ksJ ttg d7tjtddtd8dtd9d:gksJ ttdgtdgksJ ttg d1tjtdtddtddtd8dtdd8td;dgksJ ttddtdddgtjtddtddtddgks%J |tdggtjtdtddtddtd8dtdd8td;dgksKJ |tdddggtjtdtddtddtddtd<d=td9d>gkssJ d?d@ tdD }|t|tdtdtd8dtddtddtdAdtdBdCgksJ tg d7td9d:ksJ tdgtdksJ tg dDtdEdFksJ tdddddGd8ggtdd d   dksJ tg dHtdIdJksJ tdggtdd d   dksJ tdKdddggdtd ksJ d S )MN   
   r                     c                   S   s   t tdtd S Nr   r   cfr    r   r   Z/var/www/auris/lib/python3.10/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          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          c                   S   s   t dddS )Nr   r   r    r   r   r   r   r      r"   )r   r      r   r   r   )r   r   r   )r   r   r      )r   r   r         )r   r   r   r         )r   r   r   r          )r   r   r   r   r   1   )r   r   r$   i  ik  )r   r   r   r   r   i  i'  )r   r   r#   r   r&   i  i
  )r   r   r      r   i  i	
  )	r   r   r   r   r   r   r   r      c                 S   s   t t| |S r   )list	itertoolsislice)iteratornr   r   r   take0   s   z%test_continued_fraction.<locals>.take)r   r   r   r   r   r   r   )r   r      r   i$  r   r   r#   )r   r   r   r   i)r   r   r   r   )r   r$   r      r6   G   >      r,   r4   )   c                 s   s8    | ]}|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   6 z*test_continued_fraction.<locals>.<genexpr>W   j   '   )r   r   r   r   i      )r   r   	   7   .   )r   )r!   r   r   r   cf_rexpandr   
ValueErrorcf_iphir   r.   cf_cr   ZOner/   count)tr2   r3   Z	cf_iter_er   r   r   test_continued_fraction   sv      .* 
  6(@04.4*(rO   )r/   Z
sympy.corer   rK   Zsympy.core.numbersr   r   Zsympy.core.singletonr   Z(sympy.functions.elementary.miscellaneousr   Z sympy.ntheory.continued_fractionr   r!   r   rJ   r	   rL   r
   rG   r   r   Zsympy.testing.pytestr   rO   r   r   r   r   <module>   s    