ó
T™xTc           @   sL   d  d l  m Z d „  Z e d k rH d  d l Z e d e j d ƒ n  d S(   iÿÿÿÿ(   t   divisionc            s¨  t  |  ƒ d k s t ‚ d d l m ‰ d d  l } d d l m } d d l m } d d l m ‰ | j	 d% ƒ } | j
 d	 t d
 d ƒ } ˆ j j d | j ƒ  d | j d d ƒ j ƒ  d | j ƒ  j ƒ  ƒ ‰ ˆ j d d ƒ } ‡ ‡ ‡ f d †  ‰  ‡  ‡ f d †  } | ƒ  ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k s£t ‚ ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k s6t ‚ ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k sÉt ‚ d d l m } d d l m }	 |	 ƒ  }
 ˆ j d |
 d d ƒ ˆ k st ‚ | |
 j ƒ  d ƒ s2t ‚ ˆ j j d | j ƒ  d | j ƒ  d ˆ j ƒ ‰ | ƒ  |	 ƒ  }
 ˆ j d |
 ƒ ˆ k s�t ‚ | |
 j ƒ  d ƒ s¬t ‚ ˆ j d g g k sÇt ‚ ˆ j d g g k sât ‚ ˆ j d g g k sýt ‚ ˆ j j d | j ƒ  d | j d d ƒ j ƒ  d ˆ j ƒ ‰ | ƒ  |	 ƒ  }
 ˆ j d |
 ƒ ˆ k sgt ‚ | |
 j ƒ  d  ƒ sƒt ‚ ˆ j d d g d d g g k sªt ‚ ˆ j d d g d d g g k sÑt ‚ ˆ j d d g d d g g k søt ‚ d d  l } | j d& ƒ d! | j  } | j	 d d d | | | f ƒ } | j
 d	 t d
 d ƒ } ˆ j j d | j ƒ  d | j d d" ƒ j ƒ  d | j ƒ  j ƒ  ƒ ‰ | ƒ  |	 ƒ  }
 ˆ j d |
 ƒ ˆ k sÊt ‚ | |
 j ƒ  d# ƒ sæt ‚ ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k syt ‚ ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k st ‚ ˆ j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g k sŸt ‚ d$ GHd  S('   Ni    iÿÿÿÿ(   t   miller(   t   uctbx(   t   sgtbx(   t   flexi   iQ   t   anomalous_flagt   d_mini   t   lattice_groupt   intensity_groupt   symbols   P 1t   miller_indicest   seedc            sË   |  j  ˆ j ƒ } ˆ  j d ˆ j j ƒ  ƒ d  } |  j  ˆ j j | ƒ ƒ } ˆ j | ˆ j ƒ } | j ƒ  } | j d ƒ j ˆ  j	 | j ƒ  ƒ ƒ sš t
 ‚ | j d ƒ } | j | ƒ j | ƒ sÇ t
 ‚ d  S(   Nt   sizei   i    i   (   t   applyR
   t   random_permutationR   t   selectt   match_indicest   pairst   columnt   all_eqt   size_t_ranget   AssertionError(   t   cb_opt   permt   mi_cbt   miist   kt   matchesR   t   miis_cb(   R   R   t   ra(    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/tst_reindexing.pyt   check_cb_op_perm   s    -c             sS   xL t  ˆ j ˆ j ˆ j ƒ D]/ \ }  } } ˆ  |  | ƒ ˆ  |  j ƒ  | ƒ q Wd  S(   N(   t   zipt   cb_opst   permst	   inv_permst   inverse(   R   R   t   inv_perm(   R   R   (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/tst_reindexing.pyt   check_ra   s    +i   i   i   i   (   t	   show_diff(   t   StringIOt   outt   prefixs   : sD  : Lattice symmetry: R 3 2 :R (No. 155)
: Intensity symmetry: P 1 (No. 1)
:
: Indexing ambiguities:
:   k,l,h         3-fold    invariants:    4
:   l,h,k         3-fold    invariants:    4
:   -k,-h,-l      2-fold    invariants:    4
:   -l,-k,-h      2-fold    invariants:    4
:   -h,-l,-k      2-fold    invariants:    4
sd   Lattice symmetry: R 3 2 :R (No. 155)
Intensity symmetry: R 3 2 :R (No. 155)

No indexing ambiguity.
s   R 3 :RsŠ   Lattice symmetry: R 3 2 :R (No. 155)
Intensity symmetry: R 3 :R (No. 146)

Indexing ambiguity:
  -h,-l,-k      2-fold    invariants:    4
i´   s   I 4 (y+z,x+z,x+y)sO  Lattice symmetry: I 4 3 2 (y+z,x+z,x+y) (No. 211)
Intensity symmetry: I 4 (y+z,x+z,x+y) (No. 79)

Indexing ambiguities:
  k,l,h         3-fold    invariants:    2
  -l,-k,-h      2-fold    invariants:    4
  -h,-l,-k      2-fold    invariants:    4
  l,h,k         3-fold    invariants:    2
  -k,-h,-l      2-fold    invariants:    4
t   OK(   i   i   i   iQ   iQ   iQ   gUUUUUUÕ¿(!   t   lenR   t   cctbxR   t   cctbx.miller.reindexingR   R   t   cctbx.array_familyR   t	   unit_cellt)   complete_miller_set_with_lattice_symmetryt   Truet
   reindexingt	   assistantt   space_groupt   space_group_infot   groupt   expand_to_p1t   indicest   mersenne_twistert   i_j_multiplication_tablet   i_inv_j_multiplication_tablet   i_j_inv_multiplication_tablet   libtbx.test_utilsR&   t	   cStringIOR'   t   show_summaryt   getvalueR
   t   matht   acost   pi(   t   argsR,   R   R   t   uct   mst   mtR%   R&   R'   t   sioRA   t   ta(    (   R   R   R   R   sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/tst_reindexing.pyt   run   sÔ    			$$$	$
		'''!			
$$$t   __main__NRD   i   (   t
   __future__R    RJ   t   __name__t   syst   argv(    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/tst_reindexing.pyt   <module>   s   	–