ó
&9_[c           @  s:  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l Z d d l j Z	 y d d l
 m Z Wn! e k
 rŒ d d l m Z n Xd d l m Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d S(   s   Tests for IPython.utils.textiÿÿÿÿ(   t   print_functionN(   t   Path(   t   textc          C  s  d }  g  d D] } | |  ^ q } t  j | d d ƒ} t j | d ƒ t  j | d d ƒ} t j | d ƒ t  j | d d ƒ} t j | d ƒ t  j | d d	 ƒ} t j | d
 ƒ t  j | d t d d ƒ} t j | d ƒ t  j | d t d d ƒ} t j | d ƒ t  j | d t d d ƒ} t j | d ƒ t  j | d t d d	 ƒ} t j | d
 ƒ t  j | d d d t ƒ} t j | d ƒ t  j | d d d t ƒ} t j | d ƒ t  j | d d d t ƒ} t j | d ƒ t  j | d d	 d t ƒ} t j | d
 ƒ d S(   s   Basic columnize tests.i   t   abcdt   displaywidthiP   s   aaaaa  bbbbb  ccccc  ddddd
i   s   aaaaa  ccccc
bbbbb  ddddd
i   i
   s   aaaaa
bbbbb
ccccc
ddddd
t	   row_firsts   aaaaa  bbbbb
ccccc  ddddd
i(   t   spreads'   aaaaa      bbbbb      ccccc      ddddd
i   s*   aaaaa          ccccc
bbbbb          ddddd
N(   R   t	   columnizet   ntt   assert_equalt   True(   t   sizet   lt   itemst   out(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_columnize"   s4    c          C  ss  xlt  t g D]^}  xUg  t d d ƒ D] } t j d d ƒ ^ q& D]%} t j d d ƒ } g  t | ƒ D] } t j d | ƒ ^ qg } g  | D] } d | ^ qŒ } t j | d |  d | ƒ} t g  | j d ƒ D] } t	 | ƒ ^ qÐ ƒ }	 t | ƒ }
 |	 | k rB t
 d	 |	 ƒ t
 d
 |
 ƒ t
 d | ƒ t
 d | ƒ t
 d | ƒ t sgt d j |  ƒ ƒ ‚ qB qB Wq Wd S(   s3   Test with random input to hopfully catch edge case i   i   iF   iÈ   t   xR   R   s   
s;   Columnize displayed something lager than displaywidth : %s s   longer element : %s s   displaywidth : %s s   number of element : %s s   size of each element :
 %ss   row_first={0}N(   R
   t   Falset   ranget   randomt   randintR   R   t   maxt   splitt   lent   printt   AssertionErrort   format(   R   t   it   nitemsR   t   rand_lenR   R   R   R   t   longer_linet   longer_element(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_columnize_randomC   s    5+.c          C  s…   d }  g  d D] } | |  ^ q } x[ t  t g D]M } t j | d | d d ƒ} t j | d j | d g ƒ d j | ƒ ƒ q0 Wd	 S(
   s0   Test with inputs than shouldn't be wider than 80i(   t   abcR   R   iP   s   
t    s   row_first={0}N(   R
   R   R   R   R   R	   t   joinR   (   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_columnize_mediumU   s
    c          C  s‰   d }  g  d D] } | |  ^ q } x_ t  t g D]Q } t j | d | d |  d ƒ} t j | d j | d g ƒ d j | ƒ ƒ q0 Wd	 S(
   s9   Test columnize with inputs longer than the display windowi   R!   R   R   i   s   
R"   s   row_first={0}N(   R
   R   R   R   R   R	   R#   R   (   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_columnize_long]   s
    c         C  sf  t  d d d t j d d d t d d d	 d
 ƒ } |  j d |  } t j | d ƒ |  j d j g  t d d ƒ D] } d | ^ qn ƒ |  } t j | d ƒ |  j d |  } t j | d ƒ |  j d |  } t j | | d ƒ |  j d |  } t j | t	 | d ƒ ƒ |  j d |  } t j | | d ƒ |  j d |  } t j
 t |  j d |  d  S(   Nt   ni   t   pit   stuffs   hello theret   ost   uu   cafÃ©t   bs   cafÃ©s   {n} {n//4} {stuff.split()[0]}s
   12 3 hellot    i   i   s   {n//%i}s   12 6 4 3 2 2 1s   {[n//i for i in range(1,8)]}s   [12, 6, 4, 3, 2, 2, 1]s	   {stuff!s}s	   {stuff!r}s   {u}s   {b}s   {dne}(   t   dictt   mathR'   R)   R   R   R	   R#   R   t   reprt   assert_raisest	   NameError(   t   ft   nst   sR   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   eval_formatter_checke   s    0;c      	   C  s¸   t  d d d t j d d d t ƒ } |  j d |  } t j | d ƒ |  j d	 |  } t j | d
 ƒ |  j d |  } t j | | d d  d  d … ƒ t j t |  j d |  d  S(   NR&   i   R'   R(   s   hello thereR)   s    {stuff.split()[:]} s    ['hello', 'there'] s    {stuff.split()[::-1]} s    ['there', 'hello'] s   {stuff[::2]}i   s   {n:x}(	   R-   R.   R'   R)   R   R   R	   R0   t   SyntaxError(   R2   R3   R4   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   eval_formatter_slicing_checkz   s    $!c      	   C  s¿   t  d d d t j d d d t ƒ } |  j d |  } t j | d ƒ |  j d	 |  } t j | d
 ƒ t j d k r¥ |  j d d d d g ƒ} t j | d ƒ n t j	 t
 |  j d ƒ d  S(   NR&   i   R'   R(   s   hello thereR)   s   {n:x} {pi**2:+f}s   c +9.869604s   {stuff[slice(1,4)]}t   elli   i   s   {a[:]}t   ai   i   s   [1, 2](   i   i   (   R-   R.   R'   R)   R   R   R	   t   syst   version_infoR0   R6   (   R2   R3   R4   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   eval_formatter_no_slicing_check…   s    $c          C  s$   t  j ƒ  }  t |  ƒ t |  ƒ d  S(   N(   R   t   EvalFormatterR5   R<   (   R2   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_eval_formatter•   s    
c          C  s$   t  j ƒ  }  t |  ƒ t |  ƒ d  S(   N(   R   t   FullEvalFormatterR5   R7   (   R2   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_full_eval_formatterš   s    
c       	   C  sõ   t  j ƒ  }  t |  ƒ t |  ƒ t d d d t j d d d t ƒ } |  j d |  } t	 j
 | d ƒ |  j d	 |  } t	 j
 | d ƒ |  j d
 |  } t	 j
 | d ƒ |  j d |  } t	 j
 | d ƒ |  j d d d ƒ} t	 j
 | d ƒ d  S(   NR&   i   R'   R(   s   hello thereR)   s   $nt   12s   $n.reals   $n/{stuff[:5]}s   12/hellos	   $n $$HOMEs   12 $HOMEs   ${foo}t   foot   HOMEs   $HOME(   R   t   DollarFormatterR5   R7   R-   R.   R'   R)   R   R   R	   (   R2   R3   R4   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_dollar_formatterŸ   s    

$c          C  s&   d g }  t  j t j |  ƒ d ƒ d  S(   Nt   hi(   R   R	   R   t   long_substr(   t   data(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_long_substr±   s    	c          C  s/   d d d d g }  t  j t j |  ƒ d ƒ d  S(   NR!   t   abdt   abft   ab(   R   R	   R   RG   (   RH   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_long_substr2¶   s    c          C  s#   g  }  t  j t j |  ƒ d ƒ d  S(   NR"   (   R   R	   R   RG   (   RH   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_long_substr_emptyº   s    c          C  s)   d }  d } t  j t j |  ƒ | ƒ d  S(   Ns_           >> >>> def f(x):
        >> ...   return x+1
        >> ... 
        >> >>> zz = f(2.5)s3   >>> def f(x):
...   return x+1
... 
>>> zz = f(2.5)(   R   R	   R   t   strip_email_quotes(   t   srct   cln(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_strip_email¾   s    c          C  s)   d }  d } t  j t j |  ƒ | ƒ d  S(   Ns   > > > list()s   list()(   R   R	   R   RO   (   RP   RQ   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_strip_email2Ì   s    c          C  sk   t  j d ƒ }  t j |  j d d g ƒ t j |  j d ƒ t  j t j ƒ  ƒ }  t j |  j	 d t
 ƒ d  S(   Ns   abc
defR!   t   defs   abc defi    (   R   t   LSStringR   R	   R   R4   R)   t   getcwdt   assert_is_instancet   pR   (   t   lss(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   test_LSStringÑ   s
    c          C  sÌ   t  j d d d g ƒ }  t j |  j d ƒ t j |  j d ƒ t j |  j d „  ƒ t  j d d g ƒ ƒ t j |  j d ƒ t  j d d	 d g ƒ ƒ t j |  j d
 d d t	 ƒ t  j d d d g ƒ ƒ d  S(   Ns   a 11s   b 1s   a 2s   a 11
b 1
a 2s   a 11 b 1 a 2c         S  s   |  j  d ƒ S(   NR9   (   t
   startswith(   R   (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   <lambda>Ü   s    i    R9   R+   t   fieldi   t   nums(
   R   t   SListR   R	   R&   R4   t   grept   fieldst   sortR
   (   t   sl(    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt
   test_SListØ   s    ++(!   t   __doc__t
   __future__R    R)   R.   R   R:   t
   nose.toolst   toolsR   t   pathlibR   t   ImportErrort   pathlib2t   IPython.utilsR   R   R    R$   R%   R5   R7   R<   R>   R@   RE   RI   RM   RN   RR   RS   RZ   Rd   (    (    (    s<   lib/python2.7/site-packages/IPython/utils/tests/test_text.pyt   <module>   s8   	!															