ó
S™xTc           @   sr  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l Z	 d  d l
 m Z d  d l m Z m Z d  d l Z d  d l Z d  d l 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" e# d k rnd  d l$ Z$ e" d e$ j% d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   uctbx(   t   sgtbx(   t   miller(   t   flexN(   t   polar(   t   Exception_expectedt   approx_equalc          C   s  t  j d ƒ }  t j |  d ƒ } t | j ƒ  ƒ d k s? t ‚ | j ƒ  sQ t ‚ d } t j |  | ƒ } | j ƒ  } t | ƒ d k s� t ‚ | d j ƒ  | k s© t ‚ | d j	 ƒ  | k sÅ t ‚ | d j
 ƒ  d k sá t ‚ | d j ƒ  |  j ƒ  k st ‚ | d j ƒ  d k st ‚ | d j t ƒ d k s>t ‚ | d j t ƒ d k s]t ‚ | d j ƒ  stt ‚ | d j ƒ  } | j ƒ  t g  | D] } | ^ q—ƒ k s¶t ‚ | j ƒ  sÈt ‚ | d j d ƒ } | j ƒ  t g  | D] } | ^ qîƒ k st ‚ | j ƒ  st ‚ | d j d ƒ } | j ƒ  | k sJt ‚ | j ƒ  s]t ‚ x¬d D]¤} | d j | ƒ } | j
 ƒ  d k s•t ‚ | j ƒ  | d k k s³t ‚ t | j | j d ƒ ƒ d ƒ sÚt ‚ t | j | j d t ƒ t ƒ d ƒ st ‚ t | j | j d t ƒ t ƒ d ƒ s4t ‚ t | j d t j d	 ƒ | j d t ƒ t j d	 ƒ stt ‚ | j | j d ƒ ƒ } t | j d ƒ s¤t ‚ t | j d ƒ s¼t ‚ | j | j d ƒ ƒ } x1 t d ƒ D]# } t | | | d ƒ sát ‚ qáWqdW| j ƒ  }	 |	 j ƒ  s+t ‚ |	 j
 ƒ  d k  sCt ‚ | j ƒ  sVt ‚ | j  t ƒ d k sqt ‚ | j  t ƒ d k sŒt ‚ | j! t ƒ d k s§t ‚ | j! t ƒ d k sÂt ‚ | j" ƒ  d k sÚt ‚ x{ t | j  t ƒ ƒ D]d } | | j  t ƒ k  r<| | ƒ j ƒ  | j ƒ  | j ƒ  k sTt ‚ qð| | ƒ j ƒ  sðt ‚ qðW| j# d ƒ smt ‚ | j# d t ƒ s…t ‚ | j# d t ƒ s�t ‚ | j# d t d ƒ s¸t ‚ xA t t f D]3 }
 | j$ |
 ƒ } t | ƒ t | ƒ k sÅt ‚ qÅWt  j d ƒ }  d } t j |  | ƒ } | j ƒ  } | j ƒ  sAt ‚ | j  t ƒ d k s\t ‚ | j  t ƒ d k swt ‚ | j! t ƒ d k s’t ‚ | j! t ƒ d k s­t ‚ | j ƒ  }	 |	 j
 ƒ  d k sÑt ‚ | j$ t ƒ } t | ƒ t | ƒ d k st ‚ d  S(   Ns   P 31i    i   i   i   i   i   i   i´   y               @i   i   i
   gñhãˆµøä>s   P 41(   i    i    i    (   i   i   i   (   i    i   y      ð?       @(   i   i   i   i   (   i   i   i    (%   R   t   space_groupR   t   sym_equiv_indicest   lent   indicest   AssertionErrort
   is_centrict   ht   hrt   htt   t_dent   ht_anglet   Falset   Truet   friedel_flagt   matet   tupleR   t   phase_int   phase_eqt   matht   pit
   complex_int
   complex_eqt   realt   imagt   hendrickson_lattman_int   hendrickson_lattman_eqt   xranget   phase_restrictiont   sys_abs_was_testedt   multiplicityt   f_matest   epsilont   is_valid_phaset
   p1_listing(   t   st   eR   t   it   mt   xt   i_matet   ct   jt   rt   anomalous_flag(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_sym_equiv   s’    "22'--&%1"c         C   s  t  j |  ƒ } d } xï t t f D]á } t j | | | ƒ j ƒ  } t j ƒ  } t j ƒ  } t j	 ƒ  } xp t
 | j ƒ  ƒ D]\ } | j t j ƒ  ƒ | j t j ƒ  d ƒ | j g  t
 d ƒ D] }	 t j ƒ  ^ q½ ƒ qz Wt j | | ƒ }
 | | d t j g } q" Wt j ƒ  } t j ƒ  t j ƒ  g } t j	 ƒ  } t j ƒ  } xÙ t | ƒ D]Ë \ } } t j | j ƒ  | ƒ } t j | j | ƒ ƒ } | | ƒ } | j | j ƒ  ƒ x9 t t f D]+ } | | j | j | | | | ƒ ƒ q¸W| j | j |
 | ƒ ƒ | j | j | | ƒ ƒ qPW| j ƒ  } t j | | | ƒ x0 t | ƒ D]" \ } } | | | k sKt ‚ qKW| j ƒ  } t j | | | | ƒ x0 t | ƒ D]" \ } } | | | k s t ‚ q Wx: t |
 ƒ D], \ } } t | | | ƒ d k  sÓt ‚ qÓW| j ƒ  } | j ƒ  } t j | | | | ƒ x0 t | ƒ D]" \ } } | | | k s>t ‚ q>Wx0 t | ƒ D]" \ } } | | | k sqt ‚ qqWx½ t t f D]¯ } | j ƒ  } t j | | | | | | ƒ x0 t | ƒ D]" \ } } | | | k sàt ‚ qàWxJ t | | ƒ D]8 \ } } t  j j! | | | | | ƒ d k  st ‚ qWq¤W| j ƒ  } t j | | | | ƒ x0 t | ƒ D]" \ } } | | | k s†t ‚ q†WxY t | ƒ D]K \ } } x< t
 d ƒ D]. }	 t | |	 | | |	 ƒ d k  sÒt ‚ qÒWq¹Wd  S(   Ni   i   i´   g�íµ ÷Æ°>gñhãˆµøä>(   i   i   i   ("   R   t   space_group_typeR   R   R   t   index_generatort   to_arrayR   t   doublet   hendrickson_lattmanR"   t   sizet   appendt   randomR   R   R   t   miller_indext   complex_doublet	   enumerateR	   t   groupt	   randrangeR%   R   R   R   R!   t	   deep_copyt
   map_to_asuR   t   abst   scitbxt   phase_error(   t	   sg_symbolt   sg_typet   index_abs_rangeR3   R-   t   at   pR0   R,   R1   t   ft   m_randomt   p_randomt   c_randomt   f_randomt   h_asymt   h_eqt   i_eqt   h_it   degt   m_random_copyt   f_asymt   a_randomt   a_asymt   p_asymt   c_asym(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_map_to_asuY   sv    0)$4c          C   sH  t  j d ƒ }  t  j |  ƒ } t j d d f ƒ } xc| D][} t j |  j ƒ  | ƒ } x:t | j	 t
 ƒ ƒ D]#} | | ƒ } xt
 t f D] } t j |  j ƒ  | | j ƒ  ƒ } | j ƒ  | k sÌ t ‚ | j | ƒ }	 |	 j ƒ  d k só t ‚ | j | ƒ }
 |
 j ƒ  | k st ‚ |	 j ƒ  | k |
 j ƒ  d k k sDt ‚ | so|
 j ƒ  d k | j ƒ  k sot ‚ | s� |
 j ƒ  d k s� t ‚ q� Wqn Wq: Wt j |  t
 | ƒ t j d ƒ } t j |  t
 | | ƒ t j |  t
 | | t
 ƒ t j |  t
 | | t ƒ t j d ƒ } t j |  t
 | | ƒ t j d d f ƒ } t j |  t
 | | ƒ x d D] } t | ƒ qZWt  j d	 ƒ }  t j d d f ƒ } t j d |  d t
 d | ƒ s·t ‚ t j d |  d t d | ƒ sÛt ‚ t t j d |  d t
 d | ƒ ƒ d g k st ‚ t t j d |  d t d | ƒ ƒ d d g k sDt ‚ d  S(   Ns   P 41i   i   i   i   i    i   s   P 31 1 2s   P 2iÿÿÿÿiþÿÿÿiýÿÿÿR5   R3   t   miller_indices(   i   i   i   (   i   i   i    (   i    i    (   i    i    (   i   i   i   i   (   i   i   i   i   (   s   P 41s   P 31 1 2(   i   i   i   (   iÿÿÿÿiþÿÿÿiýÿÿÿ(   R   R5   t   reciprocal_space_asuR   R=   R   R	   R@   R"   R%   R   R   t
   asym_indexR   R   t
   one_columnt   i_columnt
   two_columnR   RC   R8   R>   R9   R\   t   is_unique_set_under_symmetryt   listt   unique_under_symmetry_selection(   RH   t   asuR]   R   RR   RS   RT   R3   RJ   t   ot   tt   dataRG   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_asu–   s\    !*+*		c          C   s�  t  j d: ƒ }  t j d ƒ } t } d } t j |  | | | ƒ j ƒ  } t j	 ƒ  } x- t
 | j ƒ  ƒ D] } | j t j ƒ  ƒ qg Wd } t j |  | d | ƒ } t j |  | d | d	 ƒ } t j |  | | ƒ } t j |  | | d ƒ } t j |  | | d | ƒ } t j |  | | d | d	 ƒ } | j ƒ  d
 k s;t ‚ t | j ƒ  | ƒ sVt ‚ | j d ƒ d; k sqt ‚ t | j d ƒ d< ƒ s�t ‚ t | j | j ƒ  d ƒ d= ƒ s·t ‚ d }	 | j | j |	 ƒ ƒ }
 d t j |	 ƒ } |
 d | k o|
 d k n st ‚ d> } | j | j | ƒ ƒ }
 |
 d |  j | ƒ k oX|
 d k n sct ‚ t |  j d? ƒ |  j d@ ƒ d d ƒs�t ‚ t j |  | | ƒ } | j ƒ  j |  ƒ sÀt ‚ | j ƒ  | k sØt ‚ | j ƒ  j ƒ  | d k sút ‚ | j ƒ  | d k st ‚ t j | ƒ } t j | ƒ } t  | j ƒ  ƒ d k sRt ‚ t | j ƒ  | j ƒ  ƒ sst ‚ t j! j" | | ƒ } | j# ƒ  j$ ƒ  | j$ ƒ  k s¬t ‚ | j% | j& ƒ  ƒ d k sÍt ‚ | j% | j' ƒ  ƒ d k sît ‚ | j( ƒ  } x[ | j) ƒ  D]M } | j% | ƒ | | k s,t ‚ | j* | ƒ j% t+ ƒ | | k st ‚ qWt, | j) ƒ  ƒ t- | j ƒ  ƒ k s‚t ‚ t, | j. ƒ  ƒ t- d | j ƒ  d ƒ k s³t ‚ t j |  | d | j/ d ƒ | j/ | ƒ ƒ } t j! j" | | ƒ } t0 | j( ƒ  ƒ d d
 !t0 | j( ƒ  ƒ k s't ‚ t j1 t- | j ƒ  ƒ ƒ } t j1 ƒ  } t j1 ƒ  } xI | j) ƒ  D]; } | j2 | j3 | j* | ƒ ƒ ƒ | j2 | j4 | ƒ ƒ qgW| j ƒ  | j ƒ  k sÄt ‚ | j ƒ  | j ƒ  k sât ‚ t0 | ƒ t0 | ƒ k s t ‚ t j! j" t j |  | | d | ƒ | ƒ } t | j5 d ƒ dA ƒ sHt ‚ t | j5 d ƒ dB ƒ sft ‚ t | j5 d ƒ dC ƒ s„t ‚ t j	 t
 | j ƒ  ƒ ƒ } | j6 | d ƒ } xC | j. ƒ  D]5 } | j3 | j* | ƒ ƒ j7 | | d ƒ s¾t ‚ q¾W|  j8 | ƒ } x‰ dD D]� } | j6 | | ƒ } t j9 | | d3 ƒ } t j: | | ƒ }
 |
 j; ƒ  s_t ‚ t |
 j< ƒ  dE | d d d7 d8 d  ƒst ‚ qWt j | ƒ } t j | ƒ } t  | j ƒ  ƒ d k sÎt ‚ t | j ƒ  | j ƒ  ƒ sït ‚ | j# ƒ  j7 | j# ƒ  ƒ st ‚ | j> ƒ  j7 | j> ƒ  ƒ s1t ‚ t j? d9 d ƒ } t j |  | ƒ } | j ƒ  j |  ƒ spt ‚ t | j ƒ  | ƒ s‹t ‚ d  S(F   Ni   i   iZ   ix   s   P 3 2 1i   i
   i    g�íµ ÷Æ°>iÿÿÿÿgv:ë®G<@g      à?i   i   i   g5^ºI@t   epsgü©ñÒMbP?i   s   (11, 11, 13, 90, 90, 120)g¥‘"tÈ´Í?gM¥~b�Èà?g„D=ñZä?gtèxõæ?g x„‰õ|è?gò¶Òk³1ê?g‡1
þŽ³ë?gÔ§Mƒ?í?gûeæ¸	Mî?g.Ú¦rï?gmÝ“¨“»?gHmÆŠÖÑ?g†xâAÌHÙ?gKÏÓz¶ß?g¸rYùÃâ?g³1#z!vå?gŠ}ú¶ýþç?gv6®gê?g XÛ ´ì?gÑ·ýÙ,êî?gXØœ™©?g†	!53Ã?gÊš˜ Ð?gÐ°{ŸhfÖ?g×Æñ¦ÏÌÜ?goî3W›™á?grùîÚÎÌä?gvª^ è?gyeâ53ë?g} fifî?g       @g²Úü¿êHî?gŒ»A´V´ï?g      ð?g-Cëâ6?t
   multiplierR:   (   i   i   i   iZ   iZ   ix   (   iÿÿÿÿiÿÿÿÿ(   iÿÿÿÿgv:ë®G<@(   i   iÿÿÿÿ(   i   i   i   (   i   i   i   (   g5^ºI@i   i   (
   g¥‘"tÈ´Í?gM¥~b�Èà?g„D=ñZä?gtèxõæ?g x„‰õ|è?gò¶Òk³1ê?g‡1
þŽ³ë?gÔ§Mƒ?í?gûeæ¸	Mî?g.Ú¦rï?(
   gmÝ“¨“»?gHmÆŠÖÑ?g†xâAÌHÙ?gKÏÓz¶ß?g¸rYùÃâ?g³1#z!vå?gŠ}ú¶ýþç?gv6®gê?g XÛ ´ì?gÑ·ýÙ,êî?(
   gXØœ™©?g†	!53Ã?gÊš˜ Ð?gÐ°{ŸhfÖ?g×Æñ¦ÏÌÜ?goî3W›™á?grùîÚÎÌä?gvª^ è?gyeâ53ë?g} fifî?(   i   i   i   (   g²Úü¿êHî?gŒ»A´V´ï?g      ð?(@   R   t	   unit_cellR   R5   R   R   R6   R7   R   R8   R"   R:   R;   R<   t   binningt   d_maxR   R   t   d_mint   bin_d_ranget
   n_bins_allt	   get_i_binR   t   sqrtt   dt   d_fract   is_similar_tot   n_bins_usedt   limitst   picklet   dumpst   loadst   strt   extt   binnerR]   t   idt   countt   i_bin_d_too_larget   i_bin_d_too_smallt   countst	   range_allt	   selectionR   Rd   t   ranget
   range_usedt	   bin_d_minR   t   size_tt   extendt   selectt   array_indicest   bin_centerst   interpolatet   all_eqt	   d_star_sqt   powt   linear_correlationt   is_well_definedt   coefficientt   Nonet   bin_indicest   random_double(   t   ucRH   R3   Rp   R-   RL   R,   t   n_binst   bR‘   R2   Ru   R   t   binning1R*   t   lt   binner1R„   t   i_bint   binning2t   binner2R�   t   perm_array_indices1t   perm_array_indices2t   vt   dsst   d_star_powerR1   R.   Ry   t   bng(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_binsÇ   s¼     (*3-"!$!!,*11*   3!!!c          C   sG  t  j d ƒ }  t j d/ d0 f ƒ } t |  j | ƒ ƒ d1 k sE t ‚ t j d |  d t	 d | d	 t	 ƒ } d2 d3 d4 d5 d6 d7 f } t | j
 ƒ | k sœ t ‚ | j j ƒ  d k s· t ‚ t j d |  d t d | d	 t	 ƒ } t | j
 ƒ d8 d9 d: d; d< d= d> d? f k st ‚ t j d |  d t	 d | d	 t ƒ } t | j
 ƒ | k sMt ‚ t | j ƒ d@ k sht ‚ t j dA ƒ } t j dB ƒ } t j d |  d t	 d | d | d t ƒ } t t | j ƒ dC ƒ sÎt ‚ t j d |  d t d | d | d t ƒ } t t | j ƒ dD ƒ st ‚ t j g  | D] } | t j d ^ q#ƒ } g  | j D] } | t j d ^ qM} t j d |  d t d | d | d t	 ƒ } t t | j ƒ | ƒ s²t ‚ t j | | ƒ } t j d |  d t d | d | ƒ } t t t j | j ƒ ƒ dE ƒ st ‚ t t t j | j ƒ ƒ | ƒ s6t ‚ t j dF dG g ƒ }	 t j d |  d t d | d |	 ƒ } t | j 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 ƒ sÿt ‚ t j t t	 g ƒ }
 t j d |  d t d | d	 t ƒ } |
 j | j ƒ j t j t t t t t	 t	 t	 t	 g ƒ ƒ szt ‚ t j d+ d, g ƒ } t j d |  d t d | d	 t ƒ } | j | j ƒ j t j d+ d+ d+ d+ d, d, d, d, g ƒ ƒ sõt ‚ t t j |  t	 | | ƒ dH ƒ st ‚ t t j |  t | | ƒ dI ƒ sCt ‚ d  S(J   Ns   P 41 (1,-1,0)i   i   iþÿÿÿi    R   R3   R   t   build_iselectioniýÿÿÿiÿÿÿÿi   i
   iZ   Ri   RU   iöÿÿÿin   i   i’ÿÿÿiâÿÿÿi¦ÿÿÿi´   i   i   i   i   i   gÇ {¶ó?g^KÈ=Ûý¿gc Ž=ÛÀg´‚ð²p#ã?g%\È#¸‘@g;òÏRÀg^KÈ=Û$ÀgÙ>ä-W @iûÿÿÿiúÿÿÿg.äÜÈ@gìlÈ?3Hõ¿gˆdÈ±õl@g9î”Ö$Ài   i   g      @g       @(   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
   iZ   (   iöÿÿÿin   in   iöÿÿÿiZ   i   (   i
   i’ÿÿÿi’ÿÿÿi
   iZ   iâÿÿÿi¦ÿÿÿi   (   i   i   i   i   i   i   i   i   (   i   i   i   i   (   i   i   i   i   gUUUUUUõ?g      ø?(   R   R   R   R=   R   R   R   R   t   expand_to_p1_iselectionR   R   t
   iselectionR:   R   R8   t   expand_to_p1_phasesR   Ri   R   R   R   t   expand_to_p1_complexRD   t   argR9   t    expand_to_p1_hendrickson_lattmant   boolRŒ   R�   t   intt   statistical_mean(   t   sgR   t   p1t   p1_i0RJ   RK   R.   R¤   RL   t   hlR›   R,   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_expand*  st    !				!	!-'	!	''			0	B'c       	   C   s  t  j d ƒ }  t j d ƒ } xt t f D]ö } t j |  | | d ƒ } | j ƒ  j |  ƒ sd t	 ‚ | j ƒ  j
 ƒ  | j
 ƒ  k sˆ t	 ‚ | j ƒ  | k s  t	 ‚ | j ƒ  j ƒ  d k s¾ t	 ‚ | j ƒ  d k sÖ t	 ‚ | sý t | j ƒ  ƒ d k s!t	 ‚ q+ t | j ƒ  ƒ d d f k s+ t	 ‚ q+ Wt t j |  | t d ƒ ƒ d d f k sUt	 ‚ d } x³d D]«} t j | ƒ } x“t t f D]…} t j | | | ƒ } i  } x | D] } d | | <q¬W| j
 ƒ  }	 d d d g } x+t | d | d d	 ƒ D]| d <x t | d	 | d	 d	 ƒ D]â | d	 <xÕ t | d | d d	 ƒ D]· | d <|	 j | ƒ sF| d d d g k rzqFn  t j |	 | ƒ }
 d } xV t |
 j | ƒ ƒ D]? } |
 | ƒ j ƒ  } | | k r¨| d k sÞt	 ‚ d	 } q¨q¨W| d k sFt	 ‚ qFWqWqøWq„WqbWd  S(   Ni   i   iZ   ix   s   P 3 1 2i   s   h>=k and k>=0 and (k>0 or l>=0)i    i   iÿÿÿÿi   s   P 31 1 2s   P 31 2 1i   (   i   i   i   iZ   iZ   ix   (   i    i    i   (   i   i    i    (   (   i   i    i    (   i   i    i    (   iÿÿÿÿi    i    (   i    i    i   (   i   i    i    (   i   i   i   (   s   P 31 1 2s   P 31 2 1(   R   Rm   R   R5   R   R   R   R6   Rw   R   R@   R3   Rf   t   reference_as_stringt   nextR   R7   R‡   t   is_sys_absentR	   R"   R%   R   (   R™   RH   R3   t   migRI   RG   R]   t   miller_dictR   R³   RR   t   found_h_asuRS   RT   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_index_generatorg  sL    $!( '''$ c          C   sÔ   t  j d d f ƒ }  t j |  ƒ } | j ƒ  d k s< t ‚ | j ƒ  d k sT t ‚ | j ƒ  d k sl t ‚ | j ƒ  d k s„ t ‚ | j	 d ƒ s™ t ‚ | j	 d ƒ s¯ t ‚ t
 | j |  ƒ ƒ d k sÐ 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   i   i   (   iÿÿÿÿi   i   (   i    i   i    (   iƒ   i   (   R   R=   R   t
   index_spant   minR   t   maxt	   abs_ranget   map_gridt   is_in_domainR   t   pack(   R]   R*   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_index_spanŽ  s    c          C   s§  t  j d d d d d f ƒ }  t  j d ƒ } t j t j ƒ  |  ƒ } t j t j t j ƒ  ƒ |  ƒ } t j |  ƒ } t | j	 ƒ  ƒ d d f k s™ t
 ‚ t | j d ƒ ƒ d k sº t
 ‚ t | j d ƒ ƒ d k sÛ t
 ‚ | j ƒ  d
 k só t
 ‚ t | j d ƒ ƒ d k st
 ‚ t | j d ƒ ƒ d k s5t
 ‚ t | j d ƒ ƒ d k sVt
 ‚ t | j d ƒ ƒ d k swt
 ‚ t | j d ƒ ƒ d d f k sžt
 ‚ t | j d ƒ ƒ d d  f k sÅt
 ‚ t t | j | ƒ ƒ d! ƒ sét
 ‚ t t | j | ƒ ƒ g  d" d# f D]' \ } } t j | | | | ƒ ^ qƒ sAt
 ‚ t t | j | ƒ ƒ d$ d% f ƒ skt
 ‚ |  j d& ƒ y t j |  ƒ Wn t k
 rœn Xt ‚ d  S('   Ni   i   i   iÿÿÿÿiþÿÿÿiýÿÿÿi   iüÿÿÿi   i    t   +t   -g       @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   g      ø?g      @(   i   i   i   (   R   R=   R8   R   t   match_bijvoet_matesR   R5   R^   R   t   pairsR   t   singlest	   n_singlest   pairs_hemisphere_selectiont   singles_hemisphere_selectiont   miller_indices_in_hemisphereR   t   minust   additive_sigmasR   Rt   t   averageR;   t	   ExceptionR   (   t   h0t   d0t   bmR.   t   y(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_match_bijvoet_mates™  s<    				$!!!!!!''$C*  c          C   sÎ  t  j d& d' d( d) d* f ƒ }  t  j d+ ƒ } t  j d, d- d. d/ f ƒ } t  j d0 ƒ } t j |  |  ƒ } | j ƒ  d k s� t ‚ t | j ƒ  ƒ t	 t
 d	 ƒ t
 d	 ƒ ƒ k s´ t ‚ t j |  | ƒ } t | j d ƒ ƒ d1 k sç t ‚ t | j d ƒ ƒ d2 k st ‚ t | j ƒ  ƒ d3 d4 d5 d6 f k s2t ‚ t | j d ƒ ƒ d7 k sSt ‚ t | j d ƒ ƒ d8 k stt ‚ t | j d ƒ ƒ d9 k s•t ‚ t | j d ƒ ƒ d: k s¶t ‚ t | j d ƒ ƒ t |  j | j d ƒ ƒ ƒ k sït ‚ t | j d ƒ ƒ } t | j | j d ƒ ƒ ƒ } | j ƒ  | j ƒ  | | k sHt ‚ t t | j | | ƒ ƒ d; ƒ sot ‚ t t | j | | ƒ ƒ d< ƒ s–t ‚ t t | j | | ƒ ƒ d= ƒ s½t ‚ t t | j | | ƒ ƒ d> d? d@ dA f ƒ sðt ‚ t t | j | | ƒ ƒ g  dB dC dD dE f D]' \ } } t j | | | | ƒ ^ qƒ sQt ‚ t  j dF ƒ }	 |  j |	 ƒ } t t j | |  ƒ j ƒ  ƒ t |	 ƒ k sŸt ‚ t j |  | ƒ j ƒ  }
 t |
 ƒ dG k sÏt ‚ t | j |
 ƒ ƒ t |  ƒ k söt ‚ g  dH dI dJ dK dL f D] \ } } t | | ƒ ^ q} g  dM dN dO dP dQ f D] \ } } t | | ƒ ^ qC} t  j | ƒ } t  j | ƒ } t j |  |  ƒ } t t | j | | ƒ ƒ dR dS dT dU dV f ƒ sÊt ‚ d  S(W   Ni   i   i   iÿÿÿÿiþÿÿÿiýÿÿÿi   iüÿÿÿi   i
   i   i   i(   i    i   i   i+   i   iãÿÿÿiøÿÿÿiÛÿÿÿiðÿÿÿix   iP   g      >@g      $@g      D@g      4@g      @g      ø¿gš™™™™™@g      à?g      ø?y                y              ð?y              &@y        š™™™™™@(   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   ix   iP   g¡?gš™™™™™É?g333333³?gš™™™™™É?(   i   i   (   i   i
   (   i   i(   (   i   i   (   i   i   i    i   i   (   i   i   i   i    i   (   i   i   (   i   i    (   g      @g      ø¿(   i   iýÿÿÿ(   iøÿÿÿgš™™™™™@(   i   iÿÿÿÿ(   i   i   (   g      à?g      ø?(   iÿÿÿÿiøÿÿÿ(   i
   i    y       @        y      @      ð?y      @        y      @      &Ày       @š™™™™™@(   R   R=   R8   R   t   match_indicest   have_singlesR   Rd   RÊ   t   zipR‡   R   RË   t   pair_selectiont   single_selectiont   paired_miller_indicesRŒ   t   sortR   t   plusRÐ   t
   multipliest   dividesRÑ   R   Rt   RŠ   t   permutationt   complexR>   (   RÔ   RÕ   t   h1t   d1t   mit   l1t   l2R.   R×   t   qRK   RJ   R›   t   cd0t   cd1t   cd2t   cd3(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_match_indices·  sR    3!!*!!!!'

'''3I0'77c          C   sÎ  t  j d d d d d f ƒ }  t  j d ƒ } t  j d d d d f ƒ } t  j d ƒ } t j |  |  ƒ } | j ƒ  d k s� t ‚ t | j ƒ  ƒ t	 t
 d	 ƒ t
 d	 ƒ ƒ k s´ t ‚ t j |  | ƒ } t | j d ƒ ƒ d k sç t ‚ t | j d ƒ ƒ d k st ‚ t t | j ƒ  ƒ t d d d d g ƒ ƒ d k sBt ‚ t | j d ƒ ƒ d  k sct ‚ t | j d ƒ ƒ d! k s„t ‚ t | j d ƒ ƒ d" k s¥t ‚ t | j d ƒ ƒ d# k sÆt ‚ t | j d ƒ ƒ d$ k sçt ‚ t | j d ƒ ƒ d% k st ‚ t | j d ƒ ƒ t |  j | j d ƒ ƒ ƒ k sAt ‚ t | j d ƒ ƒ } t | j | j d ƒ ƒ ƒ } | j ƒ  | j ƒ  | | k sšt ‚ y t j | |  ƒ Wn t k
 rÃ} n Xt ‚ 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   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    (   R   R=   R8   R   t   match_multi_indicesRÚ   R   Rd   RÊ   RÛ   R‡   R   RË   R
   t   sett   number_of_matchesRÜ   RÝ   RÞ   RŒ   Rß   t   RuntimeErrorR   (   RÔ   RÕ   Rå   Ræ   Rç   Rè   Ré   R+   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_match_multi_indicesâ  s:    3!!:!!!!!!'

c       
   C   sŽ  t  j dD dE dF dG dH dI f ƒ }  t  j dJ ƒ } t j j |  | ƒ } t | j ƒ dK dL dM f k si t ‚ t	 | j
 dO ƒ s� t ‚ t | j ƒ dP k sœ t ‚ t	 | j dQ dR d f ƒ s½ t ‚ t	 | j dS ƒ sÕ t ‚ t	 | j dT dU ƒ sñ t ‚ t  j dV dW dX dY dZ d[ f ƒ } t j j |  | | d d ƒ} t | j ƒ d\ d] d^ f k sTt ‚ t	 | j
 d_ d` da db dd d f ƒ s�t ‚ t	 | j t j df ƒ d dg dh f ƒ s¯t ‚ | j d k sÄt ‚ t | j ƒ di k sßt ‚ t	 | j dk ƒ s÷t ‚ t	 | j dl ƒ st ‚ t	 | j t d dm ƒ t d dn ƒ t d do ƒ t d dp ƒ t d dq ƒ du ƒ smt ‚ t  j t d  d! ƒ t d" d# ƒ t d$ d% ƒ t d& d' ƒ t d( d) ƒ t d* d+ ƒ g ƒ } t j j |  | ƒ } t | j ƒ dv dw dx f k sýt ‚ t	 | j
 t d, d- ƒ t d. d/ ƒ t d* d+ ƒ g ƒ s9t ‚ t | j ƒ dy k sTt ‚ t  j dz d{ d| d} d~ d g ƒ } t j j |  | ƒ } t | j ƒ d€ d� d‚ f k s®t ‚ t	 | j
 dƒ d„ d… g ƒ sÏt ‚ t | j ƒ d† k sêt ‚ t  j t t t t t t f ƒ } t j j |  | ƒ } t | j ƒ d‡ dˆ d‰ f k sDt ‚ t | j
 ƒ t t t g k sht ‚ t | j ƒ dŠ k sƒt ‚ t  j t t t t t t f ƒ } y t j j |  | ƒ } Wn+ t k
 rê} t  | ƒ dB k sñt ‚ n Xt! ‚ t  j" d‹ ƒ } t j j# |  | ƒ } t | j
 ƒ d d dC g k s9t ‚ t  j dŒ d� dŽ f ƒ }  t  j d� ƒ } t j j |  | ƒ } | j d k sŠt ‚ d  S(�   Ni   i   i   i    i   i   i   g       @g      @g      @gš™™™™™¹?g{®Gáz¤?g      ð?g      (@g      @g      @t   sigma_dynamic_rangeg�íµ ÷ÆÀ>i   g      *@i   i$   i	   g      "@gêäÉm™çê?g      à?gG“‹1°ŽÆ?gª PGc½?g©J £pâ¤?ií   g     €N@gí~à»Mû¿g|E·^ÓÏ?gó:â�ñ?gQ¤û9yï¿g>zÃ}äÖÂ?glAï�! @gËóàî¬Ýí¿gØ¸þ]Ÿù@g!°rh‘íû?gZbe4òùå¿g´‘ë¦”×ã¿gi«’È>È @g°ÇDJ³yÓ¿ge9	¥/„×¿gY‡£«twÔ?gp˜h�‚§÷?gHk:!tú?gp[[x^JÀg-å}Àg§[vˆØÒ?giQŸäð?g–ëm3‚@gš[!¬ÆR @g”Þ7¾öÌ×?g1Óö¯¬TÀg¹ü‡ôÛÀg ª¸q‹¹?gö5Cª(Ñ?gNE*Œ-„×¿g¥½Á¦á¿gü�L‡Nïð¿g@pðà‚§÷?gnøÝtËÐ?g
²¯†ÕiÇ?sL   cctbx Error: merge_equivalents_exact: incompatible flags for hkl = (3, 0, 3)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   g      ø?(   g      ø?i   i   (   i   i   i   gUUUUUUÕ?gUUUUUUÅ?(   gš™™™™™¹?g{®Gáz¤?i    g      @g      .@gUUUUUUÕ?g      à?g      Ð?gUUUUUUÅ?gUUUUUUÕ?gš™™™™™É?(   i   i   i   (   i   i    i   (   i   i   i   gÅNìÄNìô?i0   i�   i-   i4   g     €N@g      à?g      Ð?gªLXèz¶û?gš™™™™™É?(   i   i   i   gUUUUUUÕ?(   gUUUUUUÕ?gG“‹1°ŽÆ?i    (   gª PGc½?g©J £pâ¤?i    gÅNìÄNìô?gÅNìÄNìô?g¬£Íû@g¬£Íû@g¬£Íû@i   i   i
   i   (   i   i   i   (   i   i    i   (   i   i   i   (   i   i   i   (   gí~à»Mû¿g|E·^ÓÏ?gHk:!tú?gp[[x^JÀ(   gó:â�ñ?gQ¤û9yï¿g-å}Àg§[vˆØÒ?(   g>zÃ}äÖÂ?glAï�! @giQŸäð?g–ëm3‚@(   gËóàî¬Ýí¿gØ¸þ]Ÿù@gš[!¬ÆR @g”Þ7¾öÌ×?(   g!°rh‘íû?gZbe4òùå¿g1Óö¯¬TÀg¹ü‡ôÛÀ(   g´‘ë¦”×ã¿gi«’È>È @g ª¸q‹¹?gö5Cª(Ñ?(   i   i   i   (   i   i    i   (   i   i   i   (   g°ÇDJ³yÓ¿gNE*Œ-„×¿g¥½Á¦á¿gü�L‡Nïð¿(   gY‡£«twÔ?g@pðà‚§÷?gnøÝtËÐ?g
²¯†ÕiÇ?(   g´‘ë¦”×ã¿gi«’È>È @g ª¸q‹¹?gö5Cª(Ñ?(   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   ($   R   R=   R8   R   R~   t   merge_equivalents_realR   R   R   R   Ri   t   redundanciest   r_lineart   r_squaret   r_intt   merge_equivalents_obst   sigmasR   Rt   Rõ   RD   R>   Rä   t   merge_equivalents_complexR9   t   merge_equivalents_hlR°   R   R   t   merge_equivalents_exact_boolRd   Ró   R}   R   R±   t   merge_equivalents_exact_int(   R,   Ru   R-   R*   R+   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_merge_equivalents  s†    !$!!$-.	E$	$	!$$! $c          C   s  t  j d ƒ j ƒ  }  t j d d g ƒ } t j d d g ƒ } t j d
 d ƒ } | j ƒ  d k si t	 ‚ t j ƒ  } | j ƒ  d k s� t	 ‚ t
 | |  j | d ƒ | d ƒ d ƒ s¼ t	 ‚ t
 | |  j | d ƒ | d ƒ d ƒ së t	 ‚ t
 | d |  d | d | ƒ d  d! g ƒ st	 ‚ d  S("   Ns
   P 21 21 21i   i   i   i    i   iþÿÿÿiüÿÿÿiûÿÿÿt   n_stepsi
   ih  i   gèº0@î9é?y        ÊßQŽ:ãÝ?g
ŽÞI¨�‘<y        |}×ï?R   R]   t    hendrickson_lattman_coefficientsg;Â0@î9é?y        ôÖQŽ:ãÝ?gñŒÞI¨�‘<y         }×ï?(   i   i   i   (   i   i    i   (   i   i   i   i   (   iþÿÿÿi   iüÿÿÿiûÿÿÿiH   yèº0@î9é?ÊßQŽ:ãÝ?y
ŽÞI¨�‘<|}×ï?y;Â0@î9é?ôÖQŽ:ãÝ?yñŒÞI¨�‘< }×ï?(   R   t   space_group_infoR@   R   R=   R9   R   t   phase_integratorR  R   R   R#   (   R³   R,   R¶   t
   integrator(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_phase_integralL  s      	c          C   s  t  j d ƒ j ƒ  }  t j d d f ƒ } t j d ƒ } t j d ƒ } t t t	 j
 |  | | | d	 ƒ ƒ d ƒ sx t ‚ t j d ƒ } y t	 j
 |  | | | ƒ WnJ t k
 rí } t | j ƒ j d ƒ d k  rô t d t | ƒ ƒ ‚ qô n Xt ‚ t j d ƒ } t j d ƒ } t	 j
 |  | | | t ƒ } t t t j | ƒ ƒ t j | ƒ ƒ sZt ‚ t t t j | t ƒ ƒ d ƒ s�t ‚ | t j d } t	 j
 |  | | | t ƒ } t t t j | ƒ ƒ t j | ƒ ƒ sÚt ‚ t t t j | t ƒ ƒ d  ƒ st ‚ d  S(!   Ns
   P 21 21 21i   i   i   i    gÍÌÌÌÌÌÀgffffff@y               @g»½×Ùß|Û=gÇ;Ñ¿nÂù¿y        5=ÍnÂ	@y                gÍÌÌÌÌÌ@s   Boost.Python.ArgumentErrors   Unexpected exception: %si
   i   iVÿÿÿiZ   i´   (   i   i   i   (   i   i    i   (   gÍÌÌÌÌÌÀgffffff@y      ð?       @(   y      ð?       @i    yÇ;Ñ¿nÂù¿5=ÍnÂ	À(   yÇ;Ñ¿nÂù¿5=ÍnÂ	Ày                (   gÍÌÌÌÌÌ@gffffff@(   gÍÌÌÌÌÌÀgffffff@(   i
   i   (   iVÿÿÿiZ   (   iVÿÿÿiZ   (   R   R  R@   R   R=   R8   R>   R   R   R   t   phase_transferR   RÓ   R}   t	   __class__t   findRó   R   R   RD   R®   R   R   R   (   R³   R,   RJ   RK   R+   Rh   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_phase_transfer]  s,    !-'-c          C   sF  t  j d d d d f ƒ }  t  j d d d d f ƒ } t j |  | d t ƒ} | d d k sd t ‚ | d d k sz t ‚ | d d k s� t ‚ | d d k s¦ t ‚ | d d k s¼ t ‚ t j |  | d t ƒ} | d d  k sê t ‚ | d! d" k s t ‚ | d# d$ k st ‚ | d% d& k s,t ‚ | d' d k sBt ‚ d  S((   Ni   i    iÿÿÿÿi   i   y              ð?y               @y              @i   y              @R3   iýÿÿÿiûÿÿÿ(   i   i   i    (   iÿÿÿÿiÿÿÿÿi    (   i   i   i   (   i   i   i   y      ð?      ð?y       @       @y      @      @y      @      @(   i   i   i    y      ð?      ð?(   iÿÿÿÿiÿÿÿÿi    y       @       @(   i   i   i   y      @      @(   i   i   i   y      @      @(   i   i   i   (   i   i   i    y       @       À(   iÿÿÿÿiÿÿÿÿi    y       @       @(   i   i   i   y      @      @(   i   i   i   y      @      @(   iÿÿÿÿiýÿÿÿiûÿÿÿ(   R   R=   R>   R   t
   f_calc_mapR   R   R   (   R,   RL   t   f_map(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_f_calc_mapw  s    c          C   sè   t  j ƒ  }  |  j ƒ  j ƒ  d k s* t ‚ |  j d t j d g ƒ ƒ t |  j ƒ  ƒ d g k sg t ‚ |  j d t j d g ƒ ƒ t |  j ƒ  ƒ d	 g k s¤ t ‚ |  j d t j d
 g ƒ ƒ t	 |  j ƒ  ƒ d d g k sä t ‚ d  S(   Ni    R   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   t   union_of_indices_registryt   as_arrayR:   R   t   updateR   R=   Rd   t   sorted(   t   u(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_union_of_indices‡  s    !!c       	   C   s©   t  j d d d d f ƒ }  t j d |  d d d d ƒ } t | ƒ t t t t g k s] t ‚ t j d |  d d d	 d d
 d ƒ } t | ƒ t t t t g k s¥ t ‚ d  S(   Ni   i   i   i    i   R   t
   slice_axist   slice_indext   slice_startt	   slice_end(   i   i   i   (   i   i    i   (   i   i   i   (   i    i   i   (	   R   R=   R   t   simple_sliceRd   R   R   R   t   multi_slice(   R,   R*   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   exercise_slices‘  s    		$		c         C   sŠ   t  |  ƒ d k s t ‚ t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t	 ƒ  t
 ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d GHd  S(   Ni    t   OK(   R
   R   R  R4   Rj   R¨   R·   R¾   RÆ   RØ   R  Rï   Rô   R  R  R  R  (   t   args(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   runŸ  s"    t   __main__R  i   (&   t
   __future__R    t   cctbxR   R   R   t   cctbx.array_familyR   t   scitbx.mathRE   t   libtbx.complex_mathR   t   libtbx.test_utilsR   R   Rz   R<   R   R4   R\   Rj   R¨   R·   R¾   RÆ   RØ   Rï   Rô   R  R  R  R  R  R  R  t   __name__t   syst   argv(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/miller/boost_python/tst_miller.pyt   <module>   s<   	L	=	1	c	=	'			+	 	J				
		