ó
¡¼™\c           @   sÒ   d  d l  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 d  d l m Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   range(   t   SymmetricGroupt   DihedralGroupt   AlternatingGroup(   t   Permutation(   t   _check_cycles_alt_symt   _stript   _distribute_gens_by_baset   _strong_gens_from_distrt   _orbits_transversals_from_bsgst   _handle_precomputed_bsgst   _base_orderingt   _remove_gens(   t   _verify_bsgsc          C   sâ   t  d d d d d d d g d g d	 g d
 g g ƒ }  t  d d d d d d g d d d	 d
 g g ƒ } t  d d d d d g d d d d	 d
 g g ƒ } t |  ƒ t k s® t ‚ t | ƒ t k sÆ t ‚ t | ƒ t k sÞ t ‚ d  S(   Ni    i   i   i   i   i   i   i   i   i	   (   R   R   t   Truet   AssertionErrort   False(   t   perm1t   perm2t   perm3(    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_check_cycles_alt_sym   s    600c          C   s~  t  d ƒ }  |  j ƒ  t d d d d d g ƒ } t d d d d d g ƒ } t d d d d d g ƒ } t d d d d d g ƒ } t | |  j |  j |  j ƒ } t | |  j |  j |  j ƒ } t | |  j |  j |  j ƒ } | d | k sò t ‚ | d t |  j ƒ d k st ‚ | d | k s+t ‚ | d t |  j ƒ d k sNt ‚ | d | k sdt ‚ | d d k szt ‚ d  S(   Ni   i   i    i   i   i   (	   R   t   schreier_simsR   R   t   baset   basic_orbitst   basic_transversalsR   t   len(   t   Dt   membert   not_member1t   not_member2t   identityt   res1t   res2t   res3(    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt
   test_strip   s    
##c       	   C   sú   d d d g }  t  d d d d g ƒ t  d d d d g ƒ t  d d d d g ƒ t  d d d d g ƒ g } t |  | ƒ | t  d d d d g ƒ t  d d d d g ƒ t  d d d d g ƒ g t  d d d d g ƒ t  d d d d g ƒ g g k sö t ‚ d  S(   Ni    i   i   i   (   R   R   R   (   R   t   gens(    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_distribute_gens_by_base'   s    *0c          C   s¦   t  d d d g ƒ t  d d d g ƒ t  d d d g ƒ g t  d d d g ƒ g g }  t |  ƒ t  d d d g ƒ t  d d d g ƒ t  d d d g ƒ g k s¢ t ‚ d  S(   Ni    i   i   (   R   R   R   (   t   strong_gens_distr(    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_strong_gens_from_distr3   s    $0	c          C   sB  t  d ƒ }  |  j ƒ  |  j } |  j } t | | ƒ } t | | ƒ } | d } | d } t | ƒ } xŒ t | ƒ D]~ } xu | | D]i }	 | | |	 | | ƒ |	 k s® t ‚ x< t | ƒ D]. }
 | | |	 | |
 ƒ | |
 k s» t ‚ q» Wq„ Wqs Wd } x( t | ƒ D] } | t | | ƒ 9} qW|  j	 ƒ  | k s>t ‚ d  S(   Ni   i    i   (
   R   R   R   t   strong_gensR   R	   R   R    R   t   order(   t   SR   R'   R%   t   resultt   orbitst   transversalst   base_lent   it   elt   jR(   (    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt"   test_orbits_transversals_from_bsgs<   s$    
		

$4c          C   sX  t  d ƒ }  |  j ƒ  |  j } |  j } t | | ƒ } t | | ƒ } | | d k s\ t ‚ | d } | d } t | ƒ } xŒ t | ƒ D]~ } xu | | D]i }	 | | |	 | | ƒ |	 k sÄ t ‚ x< t | ƒ D]. }
 | | |	 | |
 ƒ | |
 k sÑ t ‚ qÑ Wqš Wq‰ Wd } x( t | ƒ D] } | t | | ƒ 9} qW|  j	 ƒ  | k sTt ‚ d  S(   Ni   i   i    i   (
   R   R   R   R'   R
   R   R   R   R    R(   (   t   AR   R'   R*   R%   R,   R+   R-   R.   R/   R0   R(   (    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_handle_precomputed_bsgsQ   s&    
		

$4c          C   sI   d d d g }  d } t  |  | ƒ d d d d d d d g k sE t ‚ d  S(	   Ni   i   i   i   i   i    i   i   (   R   R   (   R   t   degree(    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_base_orderingg   s    c          C   så   t  d ƒ }  |  j ƒ  \ } } t | | ƒ } t |  | | ƒ t k sK t ‚ t d ƒ } | j ƒ  \ } } t | | ƒ } t | | | ƒ t k s– t ‚ t d ƒ } | j ƒ  \ } } t | | ƒ } t | | | ƒ t k sá t ‚ d  S(   Ni
   i   i   (   R   t   schreier_sims_incrementalR   R   R   R   R   R   (   R)   R   R'   t   new_gensR2   R   (    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   test_remove_gensm   s    N(   t   sympy.core.compatibilityR    t    sympy.combinatorics.named_groupsR   R   R   t    sympy.combinatorics.permutationsR   t   sympy.combinatorics.utilR   R   R   R   R	   R
   R   R   t   sympy.combinatorics.testutilR   R   R"   R$   R&   R1   R3   R5   R8   (    (    (    sB   lib/python2.7/site-packages/sympy/combinatorics/tests/test_util.pyt   <module>   s   :									