
    MZd                     f    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)	    )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 dBd.} |t              g d/k(  sJ  |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	        g d5      t        d7d8      k(  sJ t	        dg      t        d      k(  sJ t	        g d:      t        d;d<      k(  sJ t	        ddddd=d6gg      t        d      dz   dz  z
  j                         dk(  sJ t	        g d>      t        d?d@      k(  sJ t	        dgg      t        d      dz   dz  z
  j                         dk(  sJ t	        dAdddgg      dt        d      z
  k(  sJ y )CN   
   r                     c                  B    t        t        dt        d      z               S Nr   r   cfr        M/usr/lib/python3/dist-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    g }t        t        |             D ]  \  }}||k\  r |S |j                  |         |S r#   )	enumeratecf_iappend)iteratornresits        r   takez%test_continued_fraction.<locals>.take/   sF    d8n- 	DAqAv
 JJqM	 
r   )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   >      )r   r   r   r   i      )r   r   	   7   .   )r   )r'   r   r   r   cf_rexpandr   
ValueErrorphir   listr6   cf_cr   One)r<   r9   r=   s      r   test_continued_fractionrQ      sN   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;;;; 9----8////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"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   N)
sympy.corer   rM   sympy.core.numbersr   r   sympy.core.singletonr   (sympy.functions.elementary.miscellaneousr    sympy.ntheory.continued_fractionr   r'   r	   r6   r
   rO   r   rJ   r   r   sympy.testing.pytestr   rQ   r   r   r   <module>rX      s%    ) - " 9  (;1r   