
    sg                     n    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 Zy)	    N)GoldenRatio)Rationalpi)S)sqrt)continued_fraction_periodiccontinued_fraction_iteratorcontinued_fraction_convergentscontinued_fraction_reducecontinued_fraction)raisesc                     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| z   d| z
  z        t        d      k(  sJ ddt        dd      t        d      dt        d      z  ddt        d      z  dz  z   ddt        d      z  z
  dz  dt        d      z   d	t        d
      z   dz  f	D ]W  }t	        t        |            |z
  j                         dk(  sJ t	        t        |             |z   j                         dk(  rWJ  t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        ddd      ddgk(  sJ t        ddd      ddg dgk(  sJ t        ddd      dg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      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      g dk(  sJ t        ddd      dggk(  sJ t        ddd      ddggk(  sJ t        ddd       g d!k(  sJ t        d"d#d      g d$k(  sJ t        d%d&      g d'k(  sJ t        d(d)      g d*k(  sJ t        d+d,      g d-k(  sJ dId.} |t        t                    g d/k(  sJ  |t        t                    g d0k(  sJ t        t        t        d
d1                  g d2k(  sJ t        t        t        d3d1                  g d4k(  sJ t        t        g d5            t        j                  t        dd      t        d6d      t        d7d8      gk(  sJ t        t        dg            t        d      gk(  sJ t        t        g d/            t        j                  t        d      t        dd      t        dd      t        d6d      t        dd6      t        d9d      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        d6d      t        dd6      t        d9d      gk(  sJ  |t        dddgg            t        j                  t        d      t        dd      t        dd      t        dd      t        d:d;      t        d7d<      gk(  sJ d= t        j                   d      D        } |t        |            t        d      t        d      t        d6d      t        dd      t        dd      t        d>d      t        d?d@      gk(  sJ t	        g d5      t        d7d8      k(  sJ t	        dg      t        d      k(  sJ t	        g dA      t        dBdC      k(  sJ t	        dddddDd6gg      t        d      dz   dz  z
  j                         dk(  sJ t	        g dE      t        dFdG      k(  sJ t	        dgg      t        d      dz   dz  z
  j                         dk(  sJ t	        dHdddgg      dt        d      z
  k(  sJ y )JN   
   r                     c                  B    t        t        dt        d      z               S Nr   r   cfr        ^/var/www/html/venv/lib/python3.12/site-packages/sympy/ntheory/tests/test_continued_fraction.py<lambda>z)test_continued_fraction.<locals>.<lambda>   s    r$q47{"34 r   c                  B    t        t        d      t        d      z         S r   r   r   r   r   r    z)test_continued_fraction.<locals>.<lambda>   s    r$q'DG"34 r   c                       t        t              S N)r   r   r   r   r   r    z)test_continued_fraction.<locals>.<lambda>   s
    r"v r   c                      t        d      S )Ng?)r   r   r   r   r    z)test_continued_fraction.<locals>.<lambda>   s
    r"v r   c                      t        ddd      S )Nr   r   cf_pr   r   r   r    z)test_continued_fraction.<locals>.<lambda>   s    tAq!} r   c                      t        ddd      S )Nr   r   r&   r   r   r   r    z)test_continued_fraction.<locals>.<lambda>   s    tAq"~ 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                 @    t        t        j                  | |            S r#   )list	itertoolsislice)iteratorns     r   takez%test_continued_fraction.<locals>.take0   s    I$$Xq122r   )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      r=   G   >      r2   r;   )   c              3   N   K   | ]  }|d k(  rdn|dz  dk(  r|dz  dz  nd   yw)r   r   r   r   Nr   ).0is     r   	<genexpr>z*test_continued_fraction.<locals>.<genexpr>C   s/     ^aa1fA
!q&1*A^s   #%W   j   '   )r   r   r   r   i      )r   r   	   7   .   )r   )r'   r   r   r   cf_rexpandr   
ValueErrorcf_iphir   r5   cf_cr   Oner6   count)tr9   r:   	cf_iter_es       r   test_continued_fractionrY      s   1b!Q1a 00002r1b!R!4444QAq1uq1uo"R&(((HQNDGQtAwYAd1gIaK47]Aq47{R$r(]A,=? 0RUa'')Q...RVq ((*a///0 :45
:45
:~&
:~&
:,-
:-.1a=QF"""1a=Q#677771a=QC1a=I%%%1a=I%%%1a=I%%%B?l***B?l***B?o---1a=aSE!!!1a=QH$$$1b>Y&&&dA/111e 1111d////d;;;;3 S	?3333R>5555Xb"%&'<777Xc2&'(,<<<<\"#x1~x1~xXZ\^O_'````aS	?qtf$$$*+,!hq!nhWXZ[n19!Q"aRZ[]_aRb1d d d daHROQ/01aeeXa^XVWYZ^]efgij]k5llllqcU!hq!nhq!nhWXZ[n!)"a(2r2B!D D D Da!Q[!"quuadHQNHQPQNT\]_acTd$,R$4hr26F'H H H H _9??[\K]^IY QqT1Q4!Q"aRZ[]_`Ra%-b"%5xR7H%J J J J "b!11119!(3"3333!Q1r1g&'47Q;/9AACqHHH	?hr2....1#K47Q;/)113q888QA3 BaL000r   )r6   
sympy.corer   rS   sympy.core.numbersr   r   sympy.core.singletonr   (sympy.functions.elementary.miscellaneousr    sympy.ntheory.continued_fractionr   r'   r	   rR   r
   rT   r   rO   r   r   sympy.testing.pytestr   rY   r   r   r   <module>r`      s(     ) - " 9  (>1r   