ó
¡¼™\c           @  s‰  d  d l  m Z d  d l m Z d  d l m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< m= Z= m> Z> m? Z? m@ Z@ mA ZA mB ZB mC ZC d  d lD mE ZE mF ZF d  d lG mH ZH d  d	 lI mJ ZJ mK ZK d  d
 lL mM ZM e d ƒ \ ZN ZO ZP ZQ d „  ZR d „  ZS d „  ZT d „  ZU d „  ZV d „  ZW d „  ZX d „  ZY d „  ZZ d „  Z[ d „  Z\ d „  Z] d „  Z^ d „  Z_ d „  Z` d „  Za d „  Zb d „  Zc d „  Zd d „  Ze d  „  Zf d! „  Zg d" „  Zh d# „  Zi d$ „  Zj d% „  Zk d& „  Zl d' „  Zm d( „  Zn d) „  Zo d* „  Zp d+ „  Zq d, „  Zr d- „  Zs d. „  Zt d/ „  Zu d0 „  Zv d1 „  Zw d2 „  Zx d3 „  Zy d4 „  Zz d5 S(6   iÿÿÿÿ(   t   print_function(   t   dedent(	   t   symbolst   Integralt   Tuplet   Dummyt   Basict   default_sort_keyt   Matrixt	   factorialt   true(   t   RGS_enumt
   RGS_unrankt   Permutation(   t   range(/   t
   _partitiont   _set_partitionst   binary_partitionst	   braceletst   capturet   cartest   common_prefixt   common_suffixt   connected_componentst
   dict_merget   filter_symbolst   flattent   generate_bellt   generate_derangementst   generate_involutionst   generate_oriented_forestt   groupt   has_dupst   ibint   kbinst   minlext   multisett   multiset_combinationst   multiset_partitionst   multiset_permutationst	   necklacest   numbered_symbolst   orderedt
   partitionst   permutationst	   postfixest   postorder_traversalt   prefixest   reshapet   rotate_leftt   rotate_rightt   runst   siftt   strongly_connected_componentst   subsetst   taket   topological_sortt	   unflattent   uniqt
   variationst   ordered_partitionst	   rotations(   t   factoring_visitort   multiset_partitions_taocp(   t   S(   t	   Piecewiset   ExprCondPair(   t   raisess   w,x,y,zc          C  s+  t  t t t }  t  t t t t t t t t t t t t  g } t t |  d t ƒƒ | k si t ‚ t t |  d t ƒƒ | k s t ‚ t	 t t d k  f t d t f ƒ }  t d t t d k  t
 t t d k  ƒ d t t d t t
 t d t ƒ t	 t t d k  f t d t f ƒ g } t t |  d t ƒƒ | k sBt ‚ t t |  g d t ƒƒ | |  g g k sst ‚ t t t t d t d d f ƒ d t ƒƒ d t t d d d t t t d d ƒ t t d t t d d ƒ ƒ g k sît ‚ t t d d f ƒ ƒ d d d d	 d d
 f g k s't ‚ d  S(   Nt   keysi   i   i    t   abct   dt   ef(   RF   RG   (   RF   RG   (   RF   RG   (   t   zt   wt   xt   yt   listR.   R   t   AssertionErrort   TrueRA   RB   R
   R   R   (   t   exprt   expected(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_postorder_traversal   s"    3$$%$8$+"	%+c            sÑ  t  d d f ƒ d d g k s$ t ‚ t  t t f f ƒ t t g k sK t ‚ d d g d g g ‰  t  ˆ  d d ƒˆ  k s~ t ‚ t  ˆ  d d ƒd d d g k s¥ t ‚ t  ˆ  d d ƒd d d d d d g k sÕ t ‚ t  ˆ  d d ƒd d d d d d g k st ‚ t t ‡  f d †  ƒ d	 t f d
 „  ƒ  Y}  t  |  t t ƒ t g ƒ |  t t ƒ t g k sgt ‚ t  |  t t ƒ t g d |  ƒt t t g k st ‚ t  d d d h ƒ t d d d h ƒ k sÍt ‚ d  S(   Ni   iþÿÿÿiÿÿÿÿi   i    t   levelsi   c             s   t  ˆ  d d ƒS(   NRR   iÿÿÿÿ(   R   (    (   t   ls(    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   <lambda>B   t    t   MyOpc           B  s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRV   D   s   t   clsi   (   i   (   iþÿÿÿiÿÿÿÿ(   i   i   (   i    i    (   iþÿÿÿiÿÿÿÿ(   i   i   (   i    i    (	   R   RM   RJ   RC   t
   ValueErrorR   RK   RH   RL   (   RV   (    (   RS   sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_flatten7   s    $''0066c        	   C  s  t  g  ƒ g  k s t ‚ t  g  d t ƒg  k s6 t ‚ t  d g ƒ d g g k sW t ‚ t  d g d t ƒd g k s{ t ‚ t  d d g ƒ d d g g k s¢ t ‚ t  d d g d t ƒd g k sÉ t ‚ t  d d d g ƒ d d d g g k sö t ‚ t  d d d g d t ƒd g k s t ‚ t  d d d g ƒ d g d g d g g k sSt ‚ t  d d d g d t ƒd d	 d
 g k sƒt ‚ t  d d d d d d d d g ƒ d d g d d d g d g d d g g k s×t ‚ t  d d d d d d d d g d t ƒd d d d g k st ‚ d  S(   Nt   multiplei   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RM   t   False(    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt
   test_groupM   s    !$''-*30T*c          C  sQ  t  t d d d g d ƒ ƒ d g k s- t ‚ t  t d d d g d ƒ ƒ d	 d
 d g k s` t ‚ t  t d d d g d ƒ ƒ d d d g k s“ t ‚ t  t d d d g d ƒ ƒ d g k sÀ t ‚ t  t d ƒ ƒ }  t  t |  d d t ƒƒ d g k sü t ‚ t  t |  d d t ƒƒ d d d d g k s/t ‚ t  t |  d d t ƒƒ d d d d d d d d d d g
 k stt ‚ t  t |  d d t ƒƒ d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 g k s×t ‚ t t  t |  d d t ƒƒ ƒ d k st ‚ t  t |  d  d d t ƒƒ g  k s/t ‚ t  t |  d  d d t ƒƒ d3 d4 d5 d6 g k sft ‚ t  t d d g d t ƒƒ d7 d8 d9 d: d; d< g k s¢t ‚ t  t d d g d t ƒƒ d= d> d? d@ g k sØt ‚ t  t d d d g d ƒ ƒ dA dB dC g k st ‚ t  t d d d g d d t ƒƒ dD dE dF dG dH dI g k sMt ‚ d  S(J   Ni   i   i   i    i   t
   repetitioni#   (    (   i   (   i   (   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (    (   i    (   i   (   i   (   i   (   i    i    (   i    i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i    i    (   i    i    i   (   i    i    i   (   i    i    i   (   i    i   i   (   i    i   i   (   i    i   i   (   i    i   i   (   i    i   i   (   i    i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i    i    i    (   i    i    i   (   i    i   i   (   i   i   i   (    (   i   (   i   (   i   i   (   i   i   (   i   i   (    (   i   (   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   RL   R6   RM   R   RN   t   lenR]   (   t   l(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_subsetsb   sF    -33-*3!		-+!!c          C  s‰  t  t d ƒ ƒ }  t  t |  d d t ƒƒ f  g k s< t ‚ t  t |  d d t ƒƒ d f d f d f d f g k s{ t ‚ t  t |  d d t ƒƒ d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f g k st ‚ t  t |  d d t ƒƒ d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f g k sUt ‚ t  t |  d d t ƒƒ f  g k st ‚ t  t |  d d t ƒƒ d f d f d f d f g k s¾t ‚ t  t |  d d t ƒƒ d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f g k sut ‚ t t  t |  d d t ƒƒ ƒ d k s¢t ‚ t t  t |  d d t ƒƒ ƒ d k sÏt ‚ t  t |  d  d d t ƒƒ g  k sút ‚ t  t |  d  d d t ƒƒ d d d f d d d f d d d f d d d f d d d f d d d f d d d f d d d f g k s…t ‚ d  S(	   Ni   i    R_   i   i   i   i@   i   (   RL   R   R;   R]   RM   RN   R`   (   Ra   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_variationsŠ   s(    *?“ÿ H*?3--+0c           C  sÜ   t  t d d g d d d g ƒ ƒ d	 d
 d d d d g k sB t ‚ t  t ƒ  ƒ d g k s` t ‚ t  t d ƒ ƒ d g k s t ‚ t  t d d d ƒƒ d g k s¨ t ‚ t  t t  t d ƒ ƒ ƒ ƒ d d g k sØ t ‚ d  S(   Ni   i   i   i   i   t   at   repeati    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (    (   Rd   (   Rd   Rd   (   i    (   i   (   RL   R   RM   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_cartes¢   s    !!!'c          C  sI   t  ƒ  }  t |  t d ƒ ƒ } t | d ƒ t t d ƒ ƒ k sE t ‚ d  S(   Ns   x0 x2 x3i   s   x1 x4 x5(   R)   R   R   R7   RL   RM   (   t   st   filtered(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_filter_symbolsª   s    	c          C  sg   t  d t ƒ }  t t |  ƒ t ƒ s* t ‚ t t  d d d d t d ƒ g ƒƒ t d ƒ k sc t ‚ d  S(   NRY   t   Ct   starti   t   excludet   C1t   C2(   R)   R   t
   isinstancet   nextRM   R   (   Rg   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_numbered_symbols¯   s    $c           C  sE  t  t t d ƒ ƒ d „  ƒ i d d g d 6d d d g d 6k sG t ‚ t  t t g d „  ƒ i t g t 6t g t 6k s t ‚ t  t j	 g d	 „  ƒ i d g t 6k s­ t ‚ t  d d d d g d
 „  d t ƒd d g d d g f k sï t ‚ t  d d d d g d „  d t ƒd g d d d g f k s1t ‚ t
 t d „  ƒ d  S(   Ni   c         S  s   |  d S(   Ni   (    (   t   _(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ·   RU   i   i   i    i   i   c         S  s   |  j  t ƒ S(   N(   t   hasRJ   (   Rr   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ¸   RU   c         S  s   |  j  t ƒ S(   N(   Rs   RJ   (   Rr   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ¹   RU   c         S  s   |  d S(   Ni   (    (   RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   º   RU   t   binaryc         S  s   |  d d k S(   Ni   i   (    (   RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ¼   RU   c           S  s"   t  d d d d g d „  d t ƒS(   Ni    i   i   i   c         S  s   |  d S(   Ni   (    (   RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ¿   RU   Rt   (   R4   RN   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ¾   s    (   R4   RL   R   RM   RJ   RK   R]   RN   R@   t   OneRC   RZ   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt	   test_sift¶   s    G8.!!!!c          C  s”   t  ƒ  }  t |  d ƒ t t d ƒ ƒ k s0 t ‚ t |  d ƒ t t d ƒ ƒ k sW t ‚ t d d d d d g d ƒ d d d d d g k s t ‚ d  S(   Ni   s   x0:5s   x5:10i   i   i   i   (   R)   R7   RL   R   RM   (   t   X(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt	   test_takeÂ   s    	''c           C  s”  t  i  i t d 6t t 6ƒ i t d 6t t 6k s7 t ‚ t  i t d 6t t 6i  ƒ i t d 6t t 6k sn t ‚ t  i t d 6i t d 6t t 6ƒ i t d 6t d 6t t 6k s³ t ‚ t  i t d 6t t 6i t d 6ƒ i t d 6t d 6t t 6k sø t ‚ t  i t d 6t d 6i t d 6t t 6ƒ i t d 6t d 6t t 6k sDt ‚ t  i t d 6t t 6i t d 6t d 6ƒ i t d 6t d 6t t 6k st ‚ d  S(   Ni   i   (   R   RJ   RH   RK   RM   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_dict_mergeË   s    77EELc        
   C  så   t  t g  ƒ ƒ g  k s t ‚ t  t d g ƒ ƒ d g g k sE t ‚ t  t d d g ƒ ƒ d g d d g g k sx t ‚ t  t d d d d d g ƒ ƒ d g d d g d d d g d d d d g d d d d d g g k sá t ‚ d  S(   Ni   i   i   i   i   (   RL   R/   RM   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_prefixesÖ   s
    '3c        
   C  så   t  t g  ƒ ƒ g  k s t ‚ t  t d g ƒ ƒ d g g k sE t ‚ t  t d d g ƒ ƒ d g d d g g k sx t ‚ t  t d d d d d g ƒ ƒ d g d d g d d d g d d d d g d d d d d g g k sá t ‚ d  S(   Ni   i   i   i   i   (   RL   R-   RM   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_postfixesß   s
    '3c        
     sÑ   d d d d d d d d g ‰ d d d d d d d d d g	 ‰  t  ˆ ˆ  f ƒ d d d d d d d d g k su t ‚ t  ˆ ˆ  f d	 d
 „  ƒd d d d d d d d g k s´ t ‚ t t ‡  ‡ f d †  ƒ d  S(   Ni   i   i   i   i   i	   i
   i   t   keyc         S  s   |  S(   N(    (   t   v(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ï   RU   c             s   t  ˆ ˆ  d g f ƒ S(   Ni
   i   (   i
   i   (   R8   (    (   t   Et   V(    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ò   RU   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i
   (   i   i   (   i   i	   (   i   i
   (   i   i	   (   R8   RM   RC   RZ   (    (    (   R~   R   sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_topological_sortè   s    		6'c          C  sT  t  g  g  f ƒ g  k s t ‚ t  d d d g g  f ƒ d g d g d g g k sW t ‚ d d d g }  d d d d d	 g } t  |  | f ƒ d d d g g k s¥ t ‚ d d d d g }  d
 d d d g } t  |  | f ƒ d g d d g d g g k sü t ‚ d d d d g }  d d d d g } t  |  | f ƒ d d g d d g g k sPt ‚ d  S(   Ni   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R5   RM   (   R   R~   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt"   test_strongly_connected_componentsõ   s    9*3c          C  sH  t  g  g  f ƒ g  k s t ‚ t  d d d g g  f ƒ d g d g d g g k sW t ‚ d d d g }  d d d d d	 g } t  |  | f ƒ d d d g g k s¥ t ‚ d d d d g }  d
 d d d g } t  |  | f ƒ d d d d g g k sö t ‚ d d d d g }  d d g } t  |  | f ƒ d d g d d g g k sDt ‚ d  S(   Ni   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RM   (   R   R~   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_connected_components  s    9*-c          C  só   d d d d d g }  t  |  d ƒ d d d d d g k s? t ‚ t |  d ƒ d d d d d g k si t ‚ g  }  t |  d ƒ } | g  k s t ‚ | j d ƒ |  g  k s¯ t ‚ t  |  d ƒ } | g  k sÐ t ‚ | j d ƒ |  g  k sï t ‚ d  S(   Ni    i   i   i   i   (   R1   RM   R2   t   append(   t   At   B(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_rotate  s    **c       (   C  s¢  d d d d d g }  t  t |  d ƒ ƒ d g d g d g d g d g g g k sW t ‚ t t  t |  d ƒ ƒ ƒ d k s~ t ‚ t t  t |  d ƒ ƒ ƒ d k s¥ t ‚ t  t d d d d d g d ƒ ƒ d d d d g d g g d d d g d d g g d d d d g d g g d d d g d d g g d d g d d d g g g k sMt ‚ t  t d d d d g d ƒ ƒ d d d g d g g d d g d d g g d d d g d g g d d g d d g g g k sÎt ‚ t  t d d d d g d ƒ ƒ d d d g d g g d d d g d g g d d g d d g g d d d g d g g d d g d d g g d d g d d g g d g d d d g g g k sŽt ‚ t  t d d d g d ƒ ƒ d d g d g g d g d d g g g k sÜt ‚ t  t d ƒ ƒ d d d g g d d g d g g d d g d g g d g d d g g d g d g d g g g k sTt ‚ t  t d d ƒ ƒ d d g d g g d d g d g g d g d d g g g k s«t ‚ t  t d g d d ƒ ƒ d g d d g g g k såt ‚ t  t d g d ƒ ƒ d d d g g d g d d g g d g d g d g g g k s@t ‚ d d d g } t  t | ƒ ƒ t  t t | ƒ ƒ ƒ k st ‚ t  t | d ƒ ƒ g  k s t ‚ t  t | d ƒ ƒ d d d g g g k sÐt ‚ t  t | d g d ƒ ƒ g  k søt ‚ t  t | d g d ƒ ƒ d d d d g g g k s2t ‚ t  t d d ƒ ƒ g  k sSt ‚ t  t d d ƒ ƒ d d g g g k s€t ‚ t  t d	 ƒ ƒ d	 g g g k s§t ‚ t  t d	 d ƒ ƒ g  k sÈt ‚ t  t d
 ƒ ƒ d	 d g g d	 g d g g g k st ‚ t  t d
 d ƒ ƒ d	 d g g g k s.t ‚ t  t d d ƒ ƒ d g g k sUt ‚ t  t d d g d ƒ ƒ d d g g g k sˆt ‚ d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN g$ } t  d$ „  t d% ƒ Dƒ ƒ | k s"t ‚ d& g d' d g d( d g d d) g d d d g d) d d g d d d d g g } t  d* „  t d d g ƒ Dƒ ƒ | k sžt ‚ d  S(O   Ni    i   i   i   i   i   i
   i   Rd   t   abt   bt   aaat   mpsyyt   mpsyRK   t   mpst   yyt   mpyyRg   t   mpyt   syt   mpt   syyt   msyyt   pt   msyt   pyt   mst   pyyt   myyt   pst   myt   psyt   mt   psyyc         s  s%   |  ] } t  d  „  | Dƒ ƒ Vq d S(   c         s  s   |  ] } d  j  | ƒ Vq d S(   RU   N(   t   join(   t   .0t   part(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>a  s    N(   t   tuple(   R    R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>a  s   t   sympyi   i   i   i   c         s  s$   |  ] } t  | d  d g ƒ Vq d S(   i   i   N(   R>   (   R    R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>e  s   (   RŠ   (   R‹   RK   (   RŒ   R   (   RŒ   RK   RK   (   RŽ   Rg   (   R   R   (   R   Rg   RK   (   R‘   R’   (   R‘   R   RK   (   R‘   Rg   R   (   R‘   Rg   RK   RK   (   R“   R”   (   R•   R–   (   R•   R”   RK   (   R—   R˜   (   R—   R–   RK   (   R—   R”   R   (   R—   R”   RK   RK   (   R™   Rš   (   R™   R”   Rg   (   R›   Rœ   (   R›   Rš   RK   (   R›   R–   Rg   (   R›   R”   R   (   R›   R”   Rg   RK   (   R   Rž   (   R   Rœ   RK   (   R   Rš   R   (   R   Rš   RK   RK   (   R   R˜   Rg   (   R   R–   R   (   R   R–   Rg   RK   (   R   R”   R’   (   R   R”   R   RK   (   R   R”   Rg   R   (   R   R”   Rg   RK   RK   (   RL   R&   RM   R`   t   sortedR?   (   R„   Rd   t   anst
   factorings(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_multiset_partitions'  sr    B''!H??$??$3E$E:E!!0(:!-'!9-'3							-!	c          C  s·  d d d d d d d d d	 d
 d d d d d g }  g  t  t d d ƒ ƒ D] } d j | ƒ ^ qI |  k sp t ‚ t d ƒ } g  t  t | d ƒ ƒ D] } d j | ƒ ^ q’ |  k s¹ t ‚ g  t | d ƒ D] } d j | ƒ ^ qÉ g  k sð t ‚ t  t d g d d g g d ƒ ƒ d g d d g g g k s2t ‚ t t  t d d ƒ ƒ ƒ d k sYt ‚ t t  t d d ƒ ƒ ƒ d k s€t ‚ t  t d d ƒ ƒ d g d g d g g k s³t ‚ d  S(   Nt   iiit   iimt   iipt   iist   impt   imst   ippt   ipst   isst   mppRŒ   t   msst   ppst   psst   ssst   mississippii   RU   i   i   i   Rd   i    RE   Rˆ   t   c(   RL   R%   RŸ   RM   R$   R`   (   R¥   t   it   M(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_multiset_combinationsh  s    ::7B''c            s­  d d d d d d d d d	 d
 d d g }  g  t  d ƒ D] } d j | ƒ ^ q7 |  k s^ t ‚ g  t  t d ƒ ƒ D] } d j | ƒ ^ qq |  k s˜ t ‚ t t  d d d g d ƒ ƒ d d g g k sË t ‚ t t  d d d g d ƒ ƒ d d g d d g d d g d d g d d g d d g g k s+t ‚ t t t  d d ƒ ƒ ƒ d k sRt ‚ t t t  d d ƒ ƒ ƒ d k syt ‚ d „  ‰  t ‡  f d †  ƒ t d ƒ k s©t ‚ d  S(   Nt   abbyt   abybt   aybbt   babyt   baybt   bbayt   bbyat   byabt   bybat   yabbt   ybabt   ybbaRU   i    i   i   Rd   i   c          S  s[   xT t  d d ƒ D]C }  t |  ƒ x0 t d d d d d g |  ƒ D] } t | ƒ q? Wq Wd  S(   Ni   i   i    (   R   t   printR'   (   R¸   R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test‚  s    
%c             s   ˆ  ƒ  S(   N(    (    (   RÈ   (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ‡  RU   sÐ          1
        [0]
        [1]
        2
        [0, 0]
        [0, 1]
        [1, 0]
        [1, 1]
        3
        [0, 0, 0]
        [0, 0, 1]
        [0, 1, 0]
        [0, 1, 1]
        [1, 0, 0]
        [1, 0, 1]
        [1, 1, 0]
        4
        [0, 0, 0, 1]
        [0, 0, 1, 0]
        [0, 0, 1, 1]
        [0, 1, 0, 0]
        [0, 1, 0, 1]
        [0, 1, 1, 0]
        [1, 0, 0, 0]
        [1, 0, 0, 1]
        [1, 0, 1, 0]
        [1, 1, 0, 0]
        5
        [0, 0, 0, 1, 1]
        [0, 0, 1, 0, 1]
        [0, 0, 1, 1, 0]
        [0, 1, 0, 0, 1]
        [0, 1, 0, 1, 0]
        [0, 1, 1, 0, 0]
        [1, 0, 0, 0, 1]
        [1, 0, 0, 1, 0]
        [1, 0, 1, 0, 0]
        [1, 1, 0, 0, 0]
        6
(   R'   RŸ   RM   R$   RL   R`   R   R   (   R¥   R¸   (    (   RÈ   sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_multiset_permutationsw  s    4:3E''	'c       
   C  s¹  i  g d i  f g g }  xt  d ƒ D]} t t d d | ƒƒ |  | k sS t ‚ t t d d d | ƒƒ |  | k s~ t ‚ t t d d d d | ƒƒ |  | k s¬ t ‚ t t d d d  d | ƒƒ |  | k sÚ t ‚ t t d d  d d | ƒƒ |  | k st ‚ t t d d d d | ƒƒ |  | k s% t ‚ q% Wg  t d d d ƒD] } | j ƒ  ^ qMi d d 6i d d 6d d 6i d d 6d d 6i d d 6g k s§t ‚ g  t d d d ƒD] } | j ƒ  ^ qºi d d 6i d d 6d d 6d d 6i d d 6d d 6i d d 6i d d 6d d 6i d d 6d d 6i d d 6g k sGt ‚ g  t d	 d d d
 d ƒD] } | j ƒ  ^ q`i d d 6i d d 6d d 6d d 6i d d 6d d 6i d d 6d d 6g k o&g  t d	 d d d
 d ƒD]@ } t d „  | Dƒ ƒ rÝt | j ƒ  ƒ d k rÝ| j ƒ  ^ qÝk n s1t ‚ g  t t	 d ƒ d
 d ƒD] } | j ƒ  ^ qJi d d 6i d d 6d d 6g k s‰t ‚ g  t d d d ƒD] } | j ƒ  ^ qœi d d 6d d 6i d d 6i d d 6d d 6i d d 6g k o0g  t d ƒ D]( } t d „  | Dƒ ƒ rÿ| j ƒ  ^ qÿk n s;t ‚ xw t  d d ƒ D]f } d } x? t
 | ƒ D]1 \ } } | t | | ƒ k s‹t ‚ | d 7} qdW| t | ƒ k sKt ‚ qKWd  S(   Ni    i   t   sizei   i   t   ki   i   i   R   c         s  s   |  ] } | d  k Vq d S(   i   N(    (   R    RË   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>Ä  s    c         s  s   |  ] } | d  k Vq d S(   i   N(    (   R    RË   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>Ì  s    (   R   RL   R+   RM   t   Nonet   copyt   allt   sumt   valuesR@   R   R   R   (   R¥   R¸   R”   t   nR   t   q(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_partitions±  s8    (+...2(E(N*.O58.*(AIc          C  sy  g  t  d ƒ D] }  |  ^ q d d g d d d g d d d g d d d d g d d d d g d d d d d g d d d d d d g d d d d d d d g d d d d d g d d d d d d g d d d d d d d g d d d d d d d d g d d d d d d d d d g	 d d d d d d d d d d g
 g k sCt ‚ t g  t  d ƒ D] } | ^ qSƒ d k sut ‚ d  S(   Ni
   i   i   i   i   i   i$   (   R   RM   R`   (   R¸   t   j(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_binary_partitionsÛ  s    2<?HNc       	   C  s  g  t  d d ƒ D] }  t t t |  ƒ ƒ ƒ ^ q g  t  d d ƒ D] }  t |  ƒ ^ qA k sb t ‚ t t d ƒ ƒ d d	 d
 d d d g k s’ t ‚ xm t  d d ƒ D]\ } t t  | ƒ ƒ } t | ƒ } x5 | D]- } | t | j	 ƒ k sî t ‚ | j
 ƒ  } qÍ Wq¢ Wt t d „  ƒ d  S(   Ni   i   i   i    i   i   c           S  s   t  t d ƒ ƒ S(   Ni    (   RL   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ó  RU   (   i    i   i   (   i    i   i   (   i   i    i   (   i   i   i    (   i   i   i    (   i   i    i   (   R   R`   t   setR   R	   RM   RL   R   R¢   t
   array_formt   next_trotterjohnsonRC   RZ   (   R¸   RÑ   R”   Rˆ   t   bi(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_bell_permå  s    11!c          C  s‰   d d d d d d g }  xj t  |  ƒ D]\ \ } } t t | d ƒ ƒ } t | ƒ | k s_ t ‚ t d „  | Dƒ ƒ d k s% t ‚ q% Wd  S(   Ni   i   i   i
   i   iL   c         S  s    h  |  ] } t  | ƒ d  ’ q S(   i   (   R   (   R    RÔ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <setcomp>û  s   	 (   t	   enumerateRL   R   R`   RM   (   t   lengthsRÑ   t   NR¸   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_involutionsö  s
    c           C  sX  t  t t t t d ƒ ƒ ƒ ƒ ƒ d k s0 t ‚ d j d „  t d ƒ Dƒ ƒ d k s[ t ‚ t t d d d	 d
 g ƒ ƒ d d d
 d	 g d d	 d
 d g d d
 d d	 g d	 d d
 d g d	 d
 d d g d	 d
 d d g d
 d d d	 g d
 d	 d d g d
 d	 d d g g	 k st ‚ t t d d d	 d	 g ƒ ƒ d	 d	 d d g d	 d	 d d g g k sTt ‚ d  S(   Ni   i	  RU   c         s  s   |  ] } d  j  | ƒ Vq d S(   RU   N(   RŸ   (   R    R¸   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>   s    t   abcdetÜ   badecbaecdbcaedbcdeabceadbdaecbdeacbdecabeacdbedacbedcacabedcadebcaebdcdaebcdbeacdeabcdebaceabdcebadcedabcedbadabecdaebcdaecbdcaebdcbeadceabdcebadeabcdeacbdebacdebcaeabcdeadbceadcbecabdecbadecdabecdbaedabcedacbedbacedbcai    i   i   i   (   R`   RL   R   R   RM   RŸ   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_derangementsþ  s    0<Zc          C  sñ   d „  }  g  } xT t  d d ƒ D]C } | j | |  | d d ƒ |  | d d ƒ |  | d d ƒ f ƒ q Wt | ƒ t d d d d g d d d d g d d d d	 g d d d d
 g d d d d g d d d d g d d d d g g ƒ k sí t ‚ d  S(   Nc         S  s   t  t t |  | | ƒ ƒ ƒ S(   N(   R`   RL   R(   (   RÑ   RË   t   f(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   count  s    i   i   i   i    i   i   i   i
   i   i   i'   i   i   i\   i   i   i   iÆ   (   R   Rƒ   R   RM   (   Rã   R   R¸   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_necklaces  s    	;c          C  s8  g  t  d d ƒ D] }  |  ^ q } t | ƒ t d d g d d g d d g d d g d d g d d g d d g d d g d d g d d g g
 ƒ k sš t ‚ g  t  d d ƒ D] }  |  ^ qª } t | ƒ t d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g g ƒ k s4t ‚ d  S(   Ni   i   i    i   i   (   R   R   RM   (   R¸   t   bc(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_bracelets  s(    "									"c           C  s®  t  t d ƒ ƒ d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g g k s†t ‚ t t  t d ƒ ƒ ƒ d k sªt ‚ d  S(	   Ni   i    i   i   i   i   i
   i2  (   RL   R   RM   R`   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_generate_oriented_forest5  s    !HHHHEc          C  s¬   t  t d ƒ ƒ }  t |  ƒ t  t |  d  d  d … |  d d  d … ƒ ƒ k sS t ‚ t |  d ƒ t |  d  ƒ t |  d ƒ g k sˆ t ‚ t t d „  ƒ t t d „  ƒ d  S(   Ni
   i   i   i   c           S  s   t  t t d ƒ ƒ d ƒ S(   Ni
   i   (   R9   RL   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   C  RU   c           S  s   t  t t d ƒ ƒ d ƒ S(   Ni
   iþÿÿÿ(   R9   RL   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   D  RU   (   RL   R   R9   t   zipRM   R¢   RC   RZ   (   t   r(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_unflatten?  s
    A5c           C  s  t  g  d g ƒ g  k s t ‚ t  t t d ƒ ƒ ƒ d d d g k sK t ‚ t  t t d ƒ ƒ t t d ƒ ƒ ƒ d d d g k s‡ t ‚ t  d d d g d d d g ƒ d d g k sº t ‚ t  d d d g d d d g ƒ d g k sê t ‚ t g  d g ƒ g  k st ‚ t t t d ƒ ƒ ƒ d d d g k s5t ‚ t t t d ƒ ƒ t t d ƒ ƒ ƒ d d d g k sqt ‚ t t t d ƒ ƒ t t d ƒ ƒ ƒ g  k s¤t ‚ t d d d g d d d g ƒ d d g k s×t ‚ t d d d g d d d g ƒ d g k st ‚ d  S(	   Ni   i   i    i   i   i   i	   i   (   R   RM   RL   R   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_common_prefix_suffixG  s    -<30-<33c           C  s‹   t  d d d g ƒ d k s! t ‚ t  d ƒ d	 k s9 t ‚ t  d
 ƒ d k sQ t ‚ t  d d t ƒd k so t ‚ t  d ƒ d k s‡ t ‚ d  S(   Ni   i   i    t   directedt   abat   aab(   i    i   i   (   i   i   i    (   i    i   i   (   i   i    i   (   i    i   i   (   i   i    i   (   i    i   i   (   R#   RM   R]   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_minlexV  s
    !c             st  t  t t t f t d t ƒƒ t t g t t g g k s? t ‚ t  t t t f t d t ƒƒ t  t t t f t d t ƒƒ k s‡ t ‚ t  t t t f ƒ ƒ t t g k s± t ‚ d d d g d d d g d d d g d g d g g d „  d „  f ‰ ‰  t  t ˆ ˆ  d t d t ƒƒ d g d g d d d g d d d g d d d g g k sWt ‚ t t ‡  ‡ f d	 †  ƒ d  S(
   Nt   defaulti   i   i    i   c         S  s
   t  |  ƒ S(   N(   R`   (   RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   e  RU   c         S  s
   t  |  ƒ S(   N(   RÏ   (   RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   e  RU   t   warnc             s   t  t ˆ ˆ  d t d t ƒƒ S(   NRð   Rñ   (   RL   R*   R]   RN   (    (   RD   t   seq(    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   h  s    (	   RL   R*   RJ   RK   t   hashR]   RM   RC   RZ   (    (    (   RD   Rò   sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_ordered^  s    ?**3?c          C  s=  t  g  ƒ g  k s t ‚ t  d g ƒ d g g k s9 t ‚ t  d d g ƒ d g d g g k sc t ‚ t  d d d g ƒ d g d d g g k s“ t ‚ t  d d d g ƒ d d g d g g k sÃ t ‚ t  d d d g ƒ d g d g d g g k sö t ‚ d d l m }  t  d d d g |  ƒ d d g d g g k s9t ‚ d  S(   Ni   i   iÿÿÿÿ(   t   lt(   R3   RM   t   operatorRõ   (   Rõ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt	   test_runsl  s    !*003c       	   C  s—  t  t d d ƒ ƒ }  t |  d g ƒ d d d d g d d d d	 g g k sQ t ‚ t |  d ƒ d d g k sr t ‚ t |  d ƒ d d g k s“ t ‚ t |  d d g f ƒ d d d d g f d d d d	 g f g k sÛ t ‚ t |  d d g f ƒ d d d g f d d d	 g f g k st ‚ t |  d d g d f ƒ d d d g d f d d d g d	 f g k sht ‚ t t |  ƒ d g d d g f ƒ d g d d g f d g d d g f f k s¼t ‚ t t |  ƒ d g d d f ƒ d g d d f d g d d f f k st ‚ t t  t d
 ƒ ƒ d d g d h d d d f g ƒ d d d d d g d d h d d  d f g g k sst ‚ t t d „  ƒ t t d „  ƒ d  S(!   Ni   i	   i   i   i   i   i   i   i   i   i    i
   i   c           S  s   t  d d g d g ƒ S(   Ni    i   iÿÿÿÿ(   R0   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   ‹  RU   c           S  s   t  d d g d g ƒ S(   Ni    i   i   (   R0   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   Œ  RU   (   i   (   i   i   i   i   (   i   i   i   i   (   i   i   (   i   i   i   i   (   i   i   i   i   (   i   (   i   i   (   i   i   (   i   (   i   i   (   i   i   (   i   (   i   i   (   i   i   (   i   (   i   i	   i
   (   RL   R   R0   RM   R¢   RC   RZ   (   Rò   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_reshapew  s*    -3-3!3-39c           C  s÷  t  t d „  t d ƒ Dƒ ƒ ƒ i d d 6i d d 6d d 6i d d 6i d d 6d d 6i d d 6g k sn t ‚ t  t d „  t d ƒ Dƒ ƒ ƒ d d g k s¢ t ‚ t  t d	 ƒ ƒ d	 g k sÃ t ‚ t  t d
 ƒ ƒ t  d ƒ k sç t ‚ t  t d g d d g d g g ƒ ƒ d g d d g g k s)t ‚ t  t t d „  d g d d g Dƒ ƒ ƒ ƒ d g d d f d d g d f d d d g f g k st ‚ t  t d d d d d g d g d g d g d g g	 ƒ ƒ d d d d g d g d g g k sót ‚ d  S(   Nc         s  s   |  ] } | j  ƒ  Vq d  S(   N(   RÍ   (   R    R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>  s    i   i   i   i   c         s  s   |  ] } | d  Vq d S(   i   N(    (   R    RJ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>‘  s    i   i    Rd   t   ababcRE   c         s  s   |  ] } | Vq d  S(   N(    (   R    R¸   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>•  s    (   RL   R:   R+   RM   R   R,   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt	   test_uniqŽ  s    O4!$B+<9c             sE  t  t t d d d d ƒƒ ƒ d k s- t ‚ t  t t d d d d ƒƒ ƒ d k sZ t ‚ t  t t d d d d ƒƒ ƒ d k s‡ t ‚ t  t t d d d d	 ƒƒ ƒ d
 k s´ t ‚ t  t t d d d d  ƒƒ ƒ d k sá t ‚ d „  ‰  t ‡  f d †  ƒ t d ƒ k st ‚ d „  ‰  t ‡  f d †  ƒ t d ƒ k sAt ‚ d  S(   Nt   1123i   R*   i   i   i   i$   i
   i    i   i   c          S  sg   x` d  d d d d g D]I }  t d |  ƒ x3 t d d d g d d |  ƒD] } t d | ƒ qH Wq Wd  S(	   Ni    i   i
   i   s	   ordered =i   R*   s      (   RÌ   RÇ   R"   (   R*   R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRÈ   ¢  s    %c             s   ˆ  ƒ  S(   N(    (    (   RÈ   (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   §  RU   s#          ordered = None
            [[0], [0, 1]]
            [[0, 0], [1]]
        ordered = 0
            [[0, 0], [1]]
            [[0, 1], [0]]
        ordered = 1
            [[0], [0, 1]]
            [[0], [1, 0]]
            [[1], [0, 0]]
        ordered = 10
            [[0, 0], [1]]
            [[1], [0, 0]]
            [[0, 1], [0]]
            [[0], [0, 1]]
        ordered = 11
            [[0], [0, 1]]
            [[0, 0], [1]]
            [[0], [1, 0]]
            [[0, 1], [0]]
            [[1], [0, 0]]
            [[1, 0], [0]]
c          S  sj   xc d  d d d d g D]L }  t d |  ƒ x6 t t t d ƒ ƒ d d |  ƒD] } t d	 | ƒ qK Wq Wd  S(
   Ni    i   i
   i   s	   ordered =i   i   R*   s      (   RÌ   RÇ   R"   RL   R   (   R*   R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRÈ   ¿  s    (c             s   ˆ  ƒ  S(   N(    (    (   RÈ   (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyRT   Ä  RU   s[          ordered = None
            [[0], [1, 2]]
            [[0, 1], [2]]
        ordered = 0
            [[0, 1], [2]]
            [[0, 2], [1]]
            [[0], [1, 2]]
        ordered = 1
            [[0], [1, 2]]
            [[0], [2, 1]]
            [[1], [0, 2]]
            [[1], [2, 0]]
            [[2], [0, 1]]
            [[2], [1, 0]]
        ordered = 10
            [[0, 1], [2]]
            [[2], [0, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[0], [1, 2]]
            [[1, 2], [0]]
        ordered = 11
            [[0], [1, 2]]
            [[0, 1], [2]]
            [[0], [2, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[1, 0], [2]]
            [[1], [2, 0]]
            [[1, 2], [0]]
            [[2], [0, 1]]
            [[2, 0], [1]]
            [[2], [1, 0]]
            [[2, 1], [0]]
(   R`   RL   R"   RM   RÌ   R   R   (    (    (   RÈ   sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt
   test_kbins›  s    -----		"c           C  sd   t  t ƒ  ƒ t k s t ‚ t  t t d ƒ ƒ ƒ t k s? t ‚ t  d d d g ƒ t k s` t ‚ d  S(   Ni   i   i   (   R    RÖ   R]   RM   RL   R   RN   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_has_dupsé  s    $c          C  sÙ   t  d d d d d d g ƒ d d g d d g d	 g g k sB t ‚ t  d d d d d d g d
 ƒ d d g d d g d	 g g k s‡ t ‚ d
 d d d d d g f }  t  d |  Œ d d g d d g d	 g g k sÕ t ‚ d  S(   NRß   i   i    i   Rˆ   t   eRd   R·   RF   i   (   R   RM   (   t   output(    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test__partitionï  s    ''c       	   C  s  d d l  m }  t } t | d d ƒ ƒ g  g k s: t ‚ t | d d ƒ ƒ g  g k s^ t ‚ x¡ t d d ƒ D] } x‡ d  g t t d | ƒ ƒ D]i } t d „  | | | d ƒ Dƒ ƒ t d „  | | | d ƒ Dƒ ƒ k oï |  | | ƒ k n s‘ t ‚ q‘ Wqn Wd  S(   Niÿÿÿÿ(   t   nTi    i   i   c         s  s   |  ] } d  Vq d S(   i   N(    (   R    R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>   s    c         s  s   |  ] } d  Vq d S(   i   N(    (   R    R”   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pys	   <genexpr>  s    (   t%   sympy.functions.combinatorial.numbersR  R<   RL   RM   R   RÌ   RÏ   (   R  Râ   R¸   RÔ   (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_ordered_partitionsø  s    $$#'c           C  sÊ   t  t d ƒ ƒ d d g d d g g k s0 t ‚ t  t t d ƒ ƒ ƒ d d d g d d d g d d d g g k sx t ‚ t  t t d ƒ d d	 ƒƒ d d d g d d d g d d d g g k sÆ t ‚ d  S(
   NR‡   Rd   Rˆ   i   i    i   i   t   diriÿÿÿÿ(   RL   R=   RM   R   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   test_rotations  s    0Hc           C  så   t  d ƒ d d g k s t ‚ t  d d ƒ d d d g k sB t ‚ t  d d t ƒd k s` t ‚ t  d d d t ƒd k s t ‚ t t  d d ƒ ƒ d d d d g k s® t ‚ t t  d d d t ƒƒ d	 d
 d d g k sá t ‚ d  S(   Ni   i   i    t   strt   11t   011i   RÎ   t   00t   01t   10(   i    i    (   i    i   (   i   i    (   i   i   (   R!   RM   RN   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt	   test_ibin  s    $!-N({   t
   __future__R    t   textwrapR   R£   R   R   R   R   R   R   R   R	   R
   t   sympy.combinatoricsR   R   R   t   sympy.core.compatibilityR   t   sympy.utilities.iterablesR   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/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   t   sympy.utilities.enumerativeR>   R?   t   sympy.core.singletonR@   t$   sympy.functions.elementary.piecewiseRA   RB   t   sympy.utilities.pytestRC   RI   RJ   RK   RH   RQ   R[   R^   Rb   Rc   Rf   Ri   Rq   Rv   Rx   Ry   Rz   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  (    (    (    sC   lib/python2.7/site-packages/sympy/utilities/tests/test_iterables.pyt   <module>   sh   @ÿ %				(																	A		:	*	
						
								N					