ó
F™xTc           @   sq   d  d l  m Z d  d l m Z d  d l Z d  d l m Z d „  Z d „  Z d „  Z	 e
 d k rm e	 ƒ  n  d S(	   iÿÿÿÿ(   t   division(   t   crystalN(   t   flexc    
      C   sQ  t  j d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK g ƒ }  t } xüt d, ƒ D]î} | d- k r… |  j t  j d. |  j ƒ  ƒ ƒ }  n  t j j	 d/ |  ƒ } x d0 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 g f d2 d3 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 d1 g f d4 d5 d6 d7 d1 g f d8 d9 g f g D]\ } } t j
 d: | ƒ } | j d; | ƒ t j d< | ƒ j ƒ  } g  | j D] } | j ƒ  ^ qu| k s™t ‚ | d4 k r%xB | j D]7 } t | ƒ }	 |	 j ƒ  t | ƒ |	 k r¯t } q¯q¯W| j ƒ  xB | j D]4 } t | ƒ }	 |	 j ƒ  t | ƒ |	 k sþt ‚ qþWq%q%WqO W| sMt ‚ d  S(L   NgÅ °rh@g¶óýÔxi@gÉv¾Ÿ¯@g=
×£p½@gTã¥›Ä @gX9´Èv>!@gyé&1¬@gNbX9´@gHáz®G @g¾Ÿ/Ý¤@g!°rh‘m@g /Ý$$@g/Ý$�@g)\�Âõ(@gú~j¼t"@gºI+‡@gòÒMbX@g\�Âõ(Ü%@gq=
×£p@g+‡ÙÎ@gTã¥›Äà$@gmçû©ñÒ@gX9´Èv>@gÕxé&1ˆ@gP�—n!@g¦›Ä °ò@g“V­@gð§ÆK7I @g…ëQ¸"@gƒÀÊ¡E¶@gP�—n@g\�Âõ(\@g¨ÆK7‰Á@gÛù~j¼t@gP�—n@g{®Gáú@g     €@gòÒMbØ@g¬Zd»@gw¾Ÿ/Ý@gh‘í|?µ@gTã¥›Ä @g      @i
   i    t   sizet
   sites_cartg      ð?i   gš™™™™™ñ?i   g      ø?i   i   i   gš™™™™™ù?i   t   asu_mappingst   distance_cutofft   pair_asu_table(   gÅ °rh@g¶óýÔxi@gÉv¾Ÿ¯@(   g=
×£p½@gTã¥›Ä @gX9´Èv>!@(   gyé&1¬@gNbX9´@gHáz®G @(   g¾Ÿ/Ý¤@g!°rh‘m@g /Ý$$@(   g/Ý$�@g)\�Âõ(@gú~j¼t"@(   gºI+‡@gòÒMbX@g\�Âõ(Ü%@(   gq=
×£p@g+‡ÙÎ@gTã¥›Äà$@(   gmçû©ñÒ@gX9´Èv>@gÕxé&1ˆ@(   gP�—n!@g¦›Ä °ò@g“V­@(   gð§ÆK7I @g…ëQ¸"@gƒÀÊ¡E¶@(   gP�—n@g\�Âõ(\@g¨ÆK7‰Á@(   gÛù~j¼t@gP�—n@g{®Gáú@(   g     €@gòÒMbØ@g¬Zd»@(   gw¾Ÿ/Ý@gh‘í|?µ@gTã¥›Ä @(   g      @g      @g      @(   R   t   vec3_doublet   Falset   xranget   selectt   random_permutationR   R   t   direct_space_asut!   non_crystallographic_asu_mappingsR   t   add_all_pairst   asu_clusterst   sort_index_groups_by_sizet   index_groupst   AssertionErrort   listt   sortt   Truet   sort_indices_in_each_group(
   R   t   have_one_unsortedt   i_trialR   R   t   expected_cluster_sizesR   t   clusterst   clustert   sorted_indices(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_crystal_asu_clusters.pyt   exercise_non_crystallographic   s\    	6-	


'c    	      C   sP  t  j d d d d ƒ }  t j d d g ƒ } xË d	 d
 g D]½ } |  j ƒ  j d | d | ƒ } x– t t g D]ˆ } t  j d | d | ƒ j	 ƒ  } g  | j
 D] } | j ƒ  ^ q™ } | d	 k sÃ | rÞ | d	 d	 g k só t ‚ qk | d
 g k sk t ‚ qk Wq: Wt j d d d d  d! g ƒ } x0t d ƒ D]"} | d k r\| j t j d | j ƒ  ƒ ƒ } n  xé d d
 g D]Û } |  j d | ƒ j d | ƒ } t  j d | ƒ j d | ƒ } x– t t g D]ˆ } t  j d | d | ƒ j	 ƒ  } g  | j
 D] } | j ƒ  ^ qæ} | d k s| r+| d d
 g k s@t ‚ q¸| d g k s¸t ‚ q¸WqiWq&Wd  S("   Nt	   unit_celli
   iZ   t   space_group_symbols   P 1 1 2gš™™™™™¹?g        gÍÌÌÌÌÌì?i   i   R   t
   sites_fracR   t   strictly_in_asugš™™™™™É?g333333Ó?gš™™™™™é?i    R   g      ø?t   buffer_thicknesst   original_sitesR   i   i   (   i
   i
   i
   iZ   iZ   iZ   (   gš™™™™™¹?gš™™™™™¹?g        (   gÍÌÌÌÌÌì?gš™™™™™¹?g        (   gš™™™™™¹?gš™™™™™¹?g        (   gš™™™™™É?gš™™™™™É?g        (   gš™™™™™¹?g333333Ó?g        (   gÍÌÌÌÌÌì?gš™™™™™¹?g        (   gš™™™™™é?gš™™™™™É?g        (   R   t   symmetryR   R   t   special_position_settingsR   R   R	   R   R   R   R   R   R
   R   R   R   t   process_sites_fracR   (	   t   crystal_symmetryR!   R   R   R"   R   t   cluster_sizesR   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_crystal_asu_clusters.pyt   exercise_crystallographic6   sV    				"					"c           C   s   t  ƒ  t ƒ  d GHd  S(   Nt   OK(   R   R*   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_crystal_asu_clusters.pyt   exercisef   s    t   __main__(   t
   __future__R    t   cctbxR   t   cctbx.crystal.direct_space_asut   cctbx.array_familyR   R   R*   R,   t   __name__(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_crystal_asu_clusters.pyt   <module>   s   	0	0	