ó
‡™xTc           @   so  d  d l  m Z d  d l Z e j j d ƒ rA d  d l m Z n e Z 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 m Z m Z d  d
 l m Z d  d l m Z d  d l Z d  d l Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d „  Z! e" d „ Z# d d „ Z$ d „  Z% d „  Z& e' d k rke& ƒ  n  d S(   iÿÿÿÿ(   t   divisionNt   ccp4io(   t   mtz(   t   option_parser(   t   sgtbx(   t   uctbx(   t   flex(   t   Exception_expectedt   approx_equalt	   show_diff(   t   count(   t   StringIOc          C   s    x™ t  d ƒ D]‹ }  t d d ƒ } |  d k rF | j d d |  ƒ n  | j ƒ  y t j d d ƒ Wn+ t k
 r‘ } t | ƒ d k s˜ t ‚ q Xt	 ‚ q Wd  S(	   Ni   s   tmp_iotbx_mtz_ext.mtzt   wbi    t    i(   t	   file_names7   cctbx Error: MTZ file read error: tmp_iotbx_mtz_ext.mtz(
   t   xranget   opent   writet   closeR   t   objectt   RuntimeErrort   strt   AssertionErrorR   (   t   i_trialt   ft   e(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   exercise_read_corrupt   s    
 c          C   sZ   t  j ƒ  }  |  j ƒ  d k s$ t ‚ |  j d ƒ |  j d ƒ |  j ƒ  d k sV t ‚ d  S(   Ni    i
   (   R   R   t   n_reflectionsR   t   adjust_column_array_sizest   set_n_reflections(   t   m(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   exercise_setting_nref_etc   s
    c          C   sÀ  t  j d ƒ d k s t ‚ t  j d ƒ d k s6 t ‚ t  j d ƒ d k sQ t ‚ t  j d ƒ d k sl t ‚ t  j d ƒ d k s‡ t ‚ t  j ƒ  }  |  j ƒ  d k s« t ‚ |  j ƒ  j ƒ  d k sÉ t ‚ |  j ƒ  d k sá t ‚ |  j ƒ  d k sù t ‚ |  j	 ƒ  d k st ‚ |  j
 ƒ  d k s)t ‚ |  j ƒ  j ƒ  d k sGt ‚ |  j ƒ  d k s_t ‚ |  j ƒ  d k swt ‚ |  j ƒ  d k s�t ‚ |  j ƒ  j ƒ  d k s­t ‚ |  j ƒ  d k sÅt ‚ |  j ƒ  d‚ k sÝt ‚ |  j ƒ  d k sõt ‚ |  j ƒ  d k st ‚ t j j d d d t j j ƒ } | d  k rBd	 GHnzt  j d
 | ƒ }  |  j ƒ  d k slt ‚ |  j ƒ  j ƒ  d k sŠt ‚ |  j ƒ  d k s¢t ‚ |  j ƒ  d k sºt ‚ |  j ƒ  d k sÒt ‚ |  j ƒ  d k sêt ‚ |  j	 ƒ  d k st ‚ |  j ƒ  j ƒ  j ƒ  d k s&t ‚ |  j ƒ  d k s>t ‚ |  j ƒ  j ƒ  d k s\t ‚ |  j ƒ  d k stt ‚ t |  j ƒ  dƒ ƒ s�t ‚ |  j ƒ  d k s§t ‚ |  j ƒ  d k s¿t ‚ |  j d ƒ sÔt ‚ |  j d ƒ sêt ‚ |  j  d ƒ sÿt ‚ |  j  d ƒ st ‚ t  j! d |  d d ƒ } | j" ƒ  j ƒ  d k sKt ‚ | j# ƒ  d k sct ‚ |  j$ ƒ  j ƒ  |  j ƒ  k s‡t ‚ | j% ƒ  d k sŸt ‚ | j& ƒ  d k s·t ‚ | j' d d ƒ | k sÕt ‚ | j& ƒ  d k sít ‚ | j' d ƒ | k st ‚ | j& ƒ  d k s t ‚ y | j' d ƒ Wn+ t( k
 r^} t) | ƒ d k set ‚ n Xt* ‚ | j& ƒ  d k s}t ‚ | j' d ƒ | k s˜t ‚ | j& ƒ  d k s°t ‚ | j+ ƒ  d k sÈt ‚ | j, d  d ƒ | k sæt ‚ | j+ ƒ  d k sþt ‚ | j, d  d ƒ | k st ‚ | j+ ƒ  d k s4t ‚ t | j- ƒ  d„ ƒ sOt ‚ t | j. ƒ  j/ ƒ  d… ƒ spt ‚ | j0 ƒ  d k sˆt ‚ t  j1 d% | d& d ƒ } | j2 ƒ  j# ƒ  d k s¾t ‚ | j3 ƒ  d k sÖt ‚ | j" ƒ  j ƒ  |  j ƒ  k sút ‚ | j% ƒ  d k st ‚ | j& ƒ  d' k s*t ‚ | j' d d ƒ | k sHt ‚ | j& ƒ  d k s`t ‚ | j' d d ƒ | k s~t ‚ | j& ƒ  d k s–t ‚ | j' d' ƒ | k s±t ‚ | j& ƒ  d' k sÉt ‚ | j4 ƒ  d k sát ‚ | j5 d( d) ƒ | k sÿt ‚ t | j4 ƒ  d) ƒ st ‚ | j5 d ƒ | k s5t ‚ | j4 ƒ  d k sMt ‚ t  j6 d* | d+ d ƒ } | j7 ƒ  j2 ƒ  j# ƒ  d k s‰t ‚ | j8 ƒ  d k s¡t ‚ | j2 ƒ  j# ƒ  d k s¿t ‚ | j" ƒ  j ƒ  d k sÝt ‚ | j9 ƒ  d k sõt ‚ | j: d, d- ƒ | k s	t ‚ | j9 ƒ  d- k s+	t ‚ y | j: d. ƒ Wn+ t( k
 ri	} t) | ƒ d/ k sp	t ‚ n Xt* ‚ | j9 ƒ  d- k sˆ	t ‚ | j: d, d- ƒ | k s¦	t ‚ | j9 ƒ  d- k s¾	t ‚ y | j: d, d0 ƒ Wn+ t( k
 rÿ	} t) | ƒ d1 k s
t ‚ n Xt* ‚ | j: d ƒ | k s!
t ‚ | j9 ƒ  d k s9
t ‚ | j ƒ  d k sQ
t ‚ | j; d2 d3 ƒ | k so
t ‚ | j ƒ  d3 k s‡
t ‚ | j; d ƒ | k s¢
t ‚ | j ƒ  d k sº
t ‚ | j< ƒ  sÌ
t ‚ | j= ƒ  d  k r)| j> ƒ  d  k sö
t ‚ | j? ƒ  d  k st ‚ | j@ ƒ  d k s9t ‚ n| j= ƒ  d k sAt ‚ | jA d4 d5 ƒ | k s_t ‚ | j= ƒ  d5 k swt ‚ | jA d4 d ƒ | k s•t ‚ | j= ƒ  d k s­t ‚ | j> ƒ  d k sÅt ‚ | jB d6 d7 ƒ | k sãt ‚ | j> ƒ  d7 k sût ‚ | jB d6 d ƒ | k st ‚ | j> ƒ  d k s1t ‚ | j? ƒ  d k sIt ‚ | jC d8 d9 ƒ | k sgt ‚ | j? ƒ  d9 k st ‚ | jC d8 d ƒ | k s�t ‚ | j? ƒ  d k sµt ‚ | j@ ƒ  d k sÍt ‚ | jD d: d; ƒ | k sët ‚ | j@ ƒ  d; k st ‚ | jD d: d ƒ | k s!t ‚ | j@ ƒ  d k s9t ‚ | jE ƒ  d k sQt ‚ | jF ƒ  d< k sit ‚ | j ƒ  d= k s�t ‚ | jG d ƒ j8 ƒ  d k s¢t ‚ | jG d0 ƒ j8 ƒ  d k sÃt ‚ | jG d> ƒ j8 ƒ  d k sät ‚ | jH ƒ  d k süt ‚ | jI ƒ  } | j ƒ  d k s t ‚ t tJ jK | ƒ d ƒ s>t ‚ t tJ jL | ƒ d? ƒ s\t ‚ t tJ jM | ƒ d@ ƒ szt ‚ | jN ƒ  jO tP ƒ d k s›t ‚ t tJ jM | jQ ƒ  ƒ d@ ƒ s¿t ‚ t tJ jM | jQ dA dB ƒ ƒ d@ ƒ sét ‚ |  jR dC ƒ } | j9 ƒ  dD k st ‚ | jH ƒ  dE k s(t ‚ | jI ƒ  } | j ƒ  dE k sLt ‚ t tJ jK | ƒ dF ƒ sjt ‚ t tJ jL | ƒ dG ƒ sˆt ‚ t tJ jM | ƒ dH ƒ s¦t ‚ | jN ƒ  jO tP ƒ dE k sÇt ‚ t tJ jM | jQ ƒ  ƒ d‡ ƒ sët ‚ t tJ jM | jQ dI ƒ ƒ dˆ d‰ d ƒ st ‚ | jS dA dJ ƒ jT ƒ  \ } } | j ƒ  d k sPt ‚ | jO tP ƒ dE k skt ‚ t | jU | ƒ dJ g d ƒ s‘t ‚ tV tW d ƒ ƒ }	 tV dK d' dL dM g ƒ }
 tV d dN d? d? g ƒ } tV d d0 d> dD dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ g ƒ } tV d] ƒ } xdtX |  j$ ƒ  ƒ D]P\ } } | j" ƒ  j ƒ  d k s^t ‚ | j# ƒ  | k svt ‚ | j0 ƒ  d k sŽt ‚ xótX | jY ƒ  ƒ D]ß\ } } | j2 ƒ  j# ƒ  | k sËt ‚ | j3 ƒ  | k sãt ‚ | j% ƒ  |	 jZ ƒ  k st ‚ | j& ƒ  |
 jZ ƒ  k st ‚ | j4 ƒ  d k s7t ‚ | j[ ƒ  | jZ ƒ  k sUt ‚ x(tX | j\ ƒ  ƒ D]\ } } | j7 ƒ  j3 ƒ  | k s’t ‚ | j8 ƒ  | k sªt ‚ | j9 ƒ  | jZ ƒ  k sÈt ‚ | j ƒ  | jZ ƒ  k sæt ‚ | j< ƒ  søt ‚ | jE ƒ  d k st ‚ | jF ƒ  d< k s(t ‚ | j ƒ  j] | j9 ƒ  ƒ sIt ‚ |  jR | j9 ƒ  ƒ } | j9 ƒ  | j9 ƒ  k sht ‚ qhWq¡Wq4W|  j^ d^ d\ ƒ } | j_ sªt ‚ | j` j ƒ  d k sÅt ‚ | ja j ƒ  | j` j ƒ  k sét ‚ | jb j ƒ  | j` j ƒ  k st ‚ |  j^ d_ | j` d^ d\ ƒ } | jc | jb ƒ s@t ‚ |  jd d` d\ da d\ ƒ } | j_ sgt ‚ | j` j ƒ  db k s‚t ‚ | ja j ƒ  | j` j ƒ  k s¦t ‚ | jb j ƒ  | j` j ƒ  k sÊt ‚ |  je d^ dD ƒ } | j_ sìt ‚ | j` j ƒ  dE k st ‚ | ja j ƒ  | j` j ƒ  k s+t ‚ | jb j ƒ  | j` j ƒ  k sOt ‚ |  je d_ | j` d^ dD ƒ } | jc | jb ƒ s‚t ‚ |  jf d` dD da dP ƒ } | j_ s©t ‚ | j` j ƒ  dc k sÄt ‚ | ja j ƒ  | j` j ƒ  k sèt ‚ | jb j ƒ  | j` j ƒ  k st ‚ |  jg dd dD de dP df dD dg dP ƒ } | j_ s@t ‚ | j` j ƒ  dE k s[t ‚ | ja j ƒ  | j` j ƒ  k st ‚ | jb j ƒ  | j` j ƒ  k s£t ‚ |  jh dd dD de dP ƒ } | j_ sËt ‚ | j` j ƒ  dE k sæt ‚ | ja j ƒ  | j` j ƒ  k s
t ‚ | jb j ƒ  | j` j ƒ  k s.t ‚ |  ji dh dD di dP dj dD dk dP dl dD dm dP dn dD do dP ƒ } | j_ syt ‚ | j` j ƒ  dc k s”t ‚ | ja j ƒ  | j` j ƒ  k s¸t ‚ | jb j ƒ  | j` j ƒ  k sÜt ‚ |  jj dh dD di dP dl dD dm dP ƒ } | j_ st ‚ | j` j ƒ  dc k s*t ‚ | ja j ƒ  | j` j ƒ  k sNt ‚ | jb j ƒ  | j` j ƒ  k srt ‚ |  jk dp dD dq dO ƒ } | j_ sšt ‚ | j` j ƒ  dE k sµt ‚ | ja j ƒ  | j` j ƒ  k sÙt ‚ | jb j ƒ  | j` j ƒ  k sýt ‚ | jl j ƒ  | ja j ƒ  k s!t ‚ |  jm dr dD ds dO dt dP du dQ ƒ } | j_ sTt ‚ | j` j ƒ  dv k sot ‚ | ja j ƒ  | j` j ƒ  k s“t ‚ | jb j ƒ  | j` j ƒ  k s·t ‚ | jl j ƒ  | ja j ƒ  k sÛt ‚ |  jn dw dD dx dO dy dP dz dQ d{ dR ƒ } | j_ st ‚ | j` j ƒ  dv k s/t ‚ | ja j ƒ  | j` j ƒ  k sSt ‚ | jb j ƒ  | j` j ƒ  k swt ‚ | jl j ƒ  | ja j ƒ  k s›t ‚ |  jo d| dD d} dO ƒ } | j_ sÃt ‚ | j` j ƒ  dE k sÞt ‚ | ja j ƒ  | j` j ƒ  k st ‚ | jb j ƒ  | j` j ƒ  k s&t ‚ |  jp d~ dD d dO d€ dP d� dQ ƒ } | j_ sYt ‚ | j` j ƒ  dc k stt ‚ | ja j ƒ  | j` j ƒ  k s˜t ‚ | jb j ƒ  | j` j ƒ  k s¼t ‚ d  S(Š   Niÿÿÿÿi    i   t    R   t   relative_paths+   phenix_regression/reflection_files/dano.mtzt   tests0   Skipping dano.mtz test: input file not availableR   s   ......i   t   P212121i   t   PG222t   Pi   s
   P 21 21 21i¥   g9a ·¶Þ3@g<ßX@Ê .@i   t   unknownt   abct   Ht
   mtz_objectt	   i_crystali   t   new_namet   unknown3sZ   mtz::crystal::set_name(new_name="unknown3"): new_name is used already for another crystal.t   new_project_namegbX9´ U@gÁÊ¡E¶Z@gžï§ÆKÃe@iZ   t   mtz_crystalt	   i_datasets   unknown230103:23:14:49t   new_wavelengthg¸…ëQ¸¾?t   mtz_datasett   i_columnt	   new_labelt   News   a,b,csM   mtz::column::set_label(new_label="a,b,c"): new_label must not include commas.t   KsT   mtz::column::set_label(new_label="K"): new_label is used already for another column.t   new_typet   Nwt
   new_sourcet   NsRct   new_group_namet   NgNt   new_group_typet   NgTt   new_group_positioni   iÈ   s!   /unknown/unknown230103:23:14:49/Ht   Li   g~ ÀoX@t   not_a_number_substitutei
   s   F*t   Fremi£   glýÿMA@@g^ à¯/¥@g„  |8ƒ@i   iŸÿÿÿt   HKL_bases   unknown230103:23:14:21s   unknown230103:23:13:49i   t   SIGFremt   DANOremt
   SIGDANOremt   ISYMremt   Finft   SIGFinft   DANOinft
   SIGDANOinft   ISYMinft   Fabst   SIGFabst   DANOabst
   SIGDANOabst   ISYMabst   HHHFQDQYFQDQYFQDQYt   column_labelt   mtz_reflection_indicest   column_label_plust   column_label_minusiJ  iF  t   column_label_at   column_label_bt   column_label_ct   column_label_dt   column_label_a_plust   column_label_b_plust   column_label_c_plust   column_label_d_plust   column_label_a_minust   column_label_b_minust   column_label_c_minust   column_label_d_minust   column_label_datat   column_label_sigmast   column_label_data_plust   column_label_sigmas_plust   column_label_data_minust   column_label_sigmas_minusi  t   column_label_f_datat   column_label_f_sigmast   column_label_d_datat   column_label_d_sigmast   column_label_isymt   column_label_amplt   column_label_phit   column_label_ampl_plust   column_label_phi_plust   column_label_ampl_minust   column_label_phi_minus(   iÿÿÿÿiÿÿÿÿ(   g9a ·¶Þ3@g<ßX@Ê .@(   gbX9´ U@gÁÊ¡E¶Z@gžï§ÆKÃe@iZ   iZ   iZ   (   gbX9´ U@gÁÊ¡E¶Z@gžï§ÆKÃe@iZ   iZ   iZ   g’	À³îyø@g¶ÄŽ4Øü‚@g’	À³îyø@i   (q   R   t   ccp4_liberr_verbosityR   R   t   titlet   historyt   sizet   space_group_namet   space_group_numbert   n_symmetry_matricest   space_group_confidencet   space_groupt   order_zt   point_group_namet   lattice_centring_typet	   n_batchest   batchesR   t   max_min_resolutiont
   n_crystalst   n_active_crystalst   libtbxt   envt   find_in_repositoriest   ost   patht   isfilet   Nonet   typet   lookup_symbolR   t   has_crystalt
   has_columnt   crystalR)   R*   t   crystalst   idt   namet   set_nameR   R   R   t   project_namet   set_project_namet   unit_cell_parameterst	   unit_cellt
   parameterst
   n_datasetst   datasetR.   R/   t
   wavelengtht   set_wavelengtht   columnR1   R2   t   labelt	   set_labelt   set_typet	   is_activet   sourcet
   group_namet
   group_typet   group_positiont
   set_sourcet   set_group_namet   set_group_typet   set_group_positiont
   array_sizet   array_capacityt	   get_othert   n_valid_valuest   extract_valid_valuesR   t   mint   maxt   meant   selection_validR
   t   Truet   extract_valuest
   get_columnt"   extract_values_and_selection_validt   as_tuplet   selectt   itert   ranget	   enumeratet   datasetst   nextt	   n_columnst   columnst   endswitht   extract_integerst   anomalous_flagRS   t   indicest   datat   all_eqt   extract_integers_anomaloust   extract_realst   extract_reals_anomaloust   extract_hendrickson_lattmant#   extract_hendrickson_lattman_ab_onlyt%   extract_hendrickson_lattman_anomaloust-   extract_hendrickson_lattman_anomalous_ab_onlyt   extract_observationst   sigmast   extract_observations_anomaloust   extract_delta_anomaloust   extract_complext   extract_complex_anomalous(   R)   R   R�   R   Rš   R�   t   valid_valuest   vt   st   expected_dataset_idst   expected_dataset_namest   expected_n_columnst   expected_column_labelst   expected_column_typesR*   R/   R2   Rµ   t   groupRÄ   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   exercise_basic"   s”   $$ $$  !!!!$!	&	!*		$$					$$		$$					$$		$$		$$		$$		$$		$$$		$$$		$$$		$$		$t	   QuickStopc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyRÝ   p  s    t   exercise_extract_anyc           B   s/   e  Z e d  „ Z d „  Z d „  Z d „  Z RS(   c         C   sU   | |  _  i	 d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d	 6d d
 6|  _ d  S(   Ni    RÁ   RÇ   RÈ   RÉ   RÍ   RÏ   RÐ   RÑ   RÒ   (   t   fullt   counters(   t   selfRá   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   __init__t  s    	c         C   s   t  |  j j ƒ  ƒ d k S(   Ni    (   R¯   Râ   t   values(   Rã   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   all_tests_ran_at_least_once�  s    c         C   s&   |  j  r d  S|  j ƒ  r" t ‚ n  d  S(   N(   Rá   Ræ   RÝ   (   Rã   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt$   raise_if_all_tests_ran_at_least_once„  s    	  c   
      C   sC  t  j d | ƒ } | j d | ƒ d j | j ƒ  ƒ } x‘ d d d d g D]} } | j | ƒ } | d k rJ | j ƒ  | } | j d	 | ƒ } | j j	 ƒ  | j
 j	 ƒ  k s± t ‚ |  j d
 c d 7<qJ qJ Wxd d g D]} | j | ƒ } | d k rØ | j ƒ  | | d !}	 | j d	 |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k sJt ‚ |  j d c d 7<| j d |	 d d |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k s¡t ‚ | j j	 ƒ  | j
 j	 ƒ  k sÅt ‚ |  j d c d 7<qØ qØ WxØ d d g D]Ê } | j | ƒ } | d k rì| j ƒ  | | d !}	 | j d |	 d d |	 d d |	 d d |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k s|t ‚ | j j	 ƒ  | j
 j	 ƒ  k s t ‚ |  j d c d 7<qìqìW| j d ƒ } | d k rv| j ƒ  | | d !}	 | j d |	 d d |	 d d |	 d d  |	 d d! | j d" | d d# t ƒ ƒ } | j j	 ƒ  | j
 j	 ƒ  k s`t ‚ |  j d$ c d 7<n  | j d% ƒ } | d k r| j ƒ  | | d !}	 | j d& |	 d d' |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k sìt ‚ |  j d( c d 7<n  xšd) d* g D]Œ} | j | ƒ } | d k r| j ƒ  | | d !}	 | j d+ |	 d d, |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k s‹t ‚ |  j d- c d 7<| j d |	 d d |	 d d |	 d d |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k söt ‚ | j j	 ƒ  | j
 j	 ƒ  k st ‚ |  j d c d 7<| j d. |	 d d/ |	 d d0 |	 d d1 |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k s…t ‚ |  j d2 c d 7<qqW| j d3 ƒ } | d k r?| j ƒ  | | d !}	 | j d4 |	 d d5 |	 d d6 |	 d d7 |	 d ƒ } | j j	 ƒ  | j
 j	 ƒ  k s)t ‚ |  j d8 c d 7<n  d  S(9   NR   t   outR    t   BR(   t   It   Yi    RR   RÁ   i   t   FQt   JQi   RÇ   Rb   Rc   RÍ   t   FQFQt   JQJQi   Rd   Re   Rf   Rg   i   RÏ   t   FQDQRh   Ri   Rj   Rk   Rl   R2   t   return_labelRÐ   t   FPRm   Rn   RÑ   t   GLGLt   KMKMRT   RU   RÈ   Ro   Rp   Rq   Rr   RÒ   t   AAAARV   RW   RX   RY   RÉ   (   R   R   t   show_summaryt   joint   column_typest   findt   column_labelsRÁ   RÄ   Rv   RÃ   R   Râ   RÇ   RÍ   RÎ   RÏ   RÐ   t   next_isym_column_starting_atR³   RÑ   RÈ   RÒ   RÉ   (
   Rã   R   Rè   R)   t   typest
   type_groupt   iRž   RÛ   t   labels(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   __call__ˆ  s¶    		$	$	
$$	


$$	



	$	
$	
$	


$$	


$	


$(   RÞ   Rß   R³   Rä   Ræ   Rç   R   (    (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyRà   r  s   		c         C   sŠ   |  \ } } xw | D]o } | j  ƒ  j d ƒ s4 q n  t j j t j j | | ƒ ƒ } | d I| IJ| d | d | ƒ | j ƒ  q Wd  S(   Ns   .mtzs   Processing:R   Rè   (   t   lowerRÀ   R‡   Rˆ   t   normpathR÷   Rç   (   t   argt   topt   namest   exercise_functionRè   R’   R   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   walk_callbackæ  s     !c         C   s|   | r t  j } n	 t ƒ  } t d | ƒ } y) t j j d |  d t d | | f ƒ Wn t k
 rf n X| rx | j	 GHn  d  S(   NRá   R  t   funcR  (
   t   syst   stdoutR   Rà   R‡   Rˆ   t   walkR  RÝ   Râ   (   t   root_dirRá   t   verboseRè   R  (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   exercise_walkï  s    	i    c   )      C   s„*  |  r t  j } n  t j ƒ  } | j d d ƒ | j ƒ  d k sF t ‚ | j d d d t ƒ | j ƒ  d k st t ‚ | j d d d d d t ƒ | j ƒ  d¢ d d	 k s² t ‚ | j d d
 ƒ | j ƒ  d d k sß t ‚ | j d d ƒ | j ƒ  d k st ‚ | j d d d t ƒ | j ƒ  d k s5t ‚ | j d d d t ƒ | j ƒ  d k sct ‚ | j d d ƒ | j ƒ  d k s‹t ‚ | j d d d t ƒ | j ƒ  d k s¹t ‚ | j d d d ƒ | j d d d t ƒ | j ƒ  d k sût ‚ | j d d d ƒ | j d d d t ƒ | j ƒ  d d k sAt ‚ | j d d d ƒ | j d d d t ƒ | j ƒ  d d k s‡t ‚ | j d d d ƒ | j d d d t ƒ | j ƒ  d d d k sÑt ‚ | j d d d ƒ | j d d d t ƒ | j ƒ  d d d k st ‚ | j d t	 j
 d d g ƒ ƒ t | j ƒ  ƒ d d g k s^t ‚ | j d t	 j
 d d g ƒ ƒ t | j ƒ  ƒ d d d d g k s§t ‚ | j d  d! ƒ t | j ƒ  ƒ d! d d d d g k sät ‚ | j d" d# d
 ƒ | j ƒ  d$ k st ‚ | j d% d& ƒ | j ƒ  d& k s8t ‚ | j d" d' d
 ƒ | j ƒ  d( k sdt ‚ | j d) d* ƒ | j ƒ  d* k sŒt ‚ xf t j ƒ  D]X } t j | ƒ } | j | ƒ | j ƒ  | k sÓt ‚ | j ƒ  | j ƒ  k s™t ‚ q™W| j ƒ  d  k st ‚ | j ƒ  d  k s%t ‚ | j ƒ  d+ k s=t ‚ t j ƒ  j d d, ƒ j d t	 j
 d- g ƒ ƒ j d  d. ƒ j d# ƒ j d/ ƒ j d' ƒ j t j d% d/ ƒ j  ƒ  ƒ } | j ƒ  d, k sÇt ‚ t | j ƒ  ƒ d. d- g k sët ‚ x_d+ d0 g D]Q} xHt! d1 ƒ D]:} | d+ k r´| d d+ k rl| j" d" d2 | d3 d4 | d5 d | d6 d6 d7 d7 d8 f ƒ } qÄ| j" d" d2 | d3 d4 | d9 t# j$ d | d6 d6 d7 d7 d8 f ƒ ƒ } n | j% ƒ  | } | j& ƒ  | k sÜt ‚ | j' ƒ  d2 | k søt ‚ | j( ƒ  d4 | k st ‚ t) | j* ƒ  d | d6 d6 d7 d7 d8 f ƒ st ‚ qWqøW|  s_t+ ƒ  } n  | j, d: | ƒ | k s}t ‚ |  s¢t- | j. ƒ  d; ƒ s¢t ‚ n  | j% ƒ  d0 j/ d< d= d> d? d@ dA g ƒ t) | j% ƒ  d0 j* ƒ  d< d= d> d? d@ dA g ƒ st ‚ | j% ƒ  d0 j/ dB d6 d6 d7 d7 d8 g ƒ t) | j% ƒ  d0 j* ƒ  dB d6 d6 d7 d7 d8 g ƒ sbt ‚ xd+ d0 g D]õ } xì t0 | j% ƒ  ƒ D]Ø \ } } xÉ t! d	 | ƒ D]· } | d+ k r	dC | }	 | j1 d" |	 ƒ sÚt ‚ | j2 d" |	 dD d | ƒ }
 | j1 d" |	 ƒ s!	t ‚ n | j3 ƒ  | }
 |
 j' ƒ  dC | k s=	t ‚ t) |
 j4 ƒ  d | ƒ s¥t ‚ q¥WqˆWqoW|  sz	t+ ƒ  } n  | j, d: | ƒ |  s¯	t- | j. ƒ  dE ƒ s¯	t ‚ n  | j% ƒ  d+ j3 ƒ  d+ } | j' ƒ  dF k sá	t ‚ | j5 dG dH ƒ | k sÿ	t ‚ | j' ƒ  dH k s
t ‚ | j5 dG dF ƒ | k s5
t ‚ | j' ƒ  dF k sM
t ‚ y | j5 dG dI ƒ Wn+ t6 k
 rŽ
} t7 | ƒ dJ k s•
t ‚ n Xt8 ‚ | j' ƒ  dF k s­
t ‚ xd+ d0 g D]} t9 ƒ  } xù t0 | j% ƒ  ƒ D]å \ } } xÖ t0 | j3 ƒ  ƒ D]Â \ } }
 x³ t! | | d1 d0 ƒ D]™ } | j: ƒ  } dK | } dL | | | d1 } | d+ k ry|
 j; dM | dN | ƒ } n |
 j< ƒ  | } | j= ƒ  | k s¡t ‚ | j> ƒ  | k s t ‚ q Wqû
WqÜ
Wqº
W|  sÛt+ ƒ  } n  | j, d: | ƒ |  st- | j. ƒ  dO ƒ st ‚ n  xD | j< ƒ  D]6 } | j? ƒ  dP k s;t ‚ | j@ ƒ  dQ k st ‚ qW| jA dR ƒ xD | j< ƒ  D]6 } | j? ƒ  dP k s�t ‚ | j@ ƒ  dR k sqt ‚ qqW| jA d
 ƒ xD | j< ƒ  D]6 } | j? ƒ  dP k sãt ‚ | j@ ƒ  dR k sÅt ‚ qÅWt j ƒ  j d d, ƒ j d# ƒ j d/ ƒ j d' ƒ j d' ƒ j t j d% d/ ƒ j  ƒ  ƒ } t# j$ d£ ƒ } | jB d9 | ƒ | j" d" dS d3 dS d9 | ƒ j2 d" dS dD d+ ƒ }
 y |
 j; dM dT dN dU ƒ Wn+ t6 k
 rì} t7 | ƒ dV k sót ‚ n Xt8 ‚ x$ dW D] } |
 j; dM | dN dU ƒ qúW|
 j; dM dX dN dX ƒ } | jC dY t	 jD d¤ d¥ d¦ g ƒ d[ t	 jE d d6 d\ g ƒ ƒ } t | ƒ d+ d0 d g k s�t ‚ |
 j; dM d] dN d^ ƒ } | jC d_ | d[ t	 jE d0 d d1 g ƒ ƒ | jF d` dX da d] ƒ } t | jG ƒ d§ d¨ d© g k st ‚ t) | jH d d6 d\ g ƒ s,t ‚ t) | jI d0 d d1 g ƒ sMt ‚ |
 j; dM db dN dX ƒ } | jC dY t	 jD dª d« d¬ g ƒ d[ t	 jE dB d= dc g ƒ ƒ } t | ƒ d1 d+ d g k sÂt ‚ |
 j; dM dd dN d^ ƒ } | jC d_ | d[ t	 jE dZ d	 de g ƒ ƒ | jF d` db da dd ƒ } t | jG ƒ d­ d® d¯ g k s>t ‚ t) | jH d= dc dB g ƒ s_t ‚ t) | jI d	 de dZ g ƒ s€t ‚ |  s’t+ ƒ  } n  | j, d: | ƒ |  sÇt- | j. ƒ  df ƒ sÇt ‚ n  |  sÙt+ ƒ  } n  | jJ d: | ƒ | k s÷t ‚ |  st- | j. ƒ  dg ƒ st ‚ n  | jK dh di ƒ |  s>t+ ƒ  } n  t j dh di ƒ j, d: | ƒ |  st- | j. ƒ  dj ƒ st ‚ n  | jL ƒ  } t | ƒ d° d± d² d³ g k s¯t ‚ t	 jD d´ dµ d¶ d· g ƒ } | jL ƒ  jM | ƒ sæt ‚ | jN dY | ƒ | jL ƒ  jM | ƒ st ‚ | jN dY | ƒ | jL ƒ  jM | ƒ s=t ‚ | jL ƒ  jM | ƒ sXt ‚ | jO dM dX ƒ } | jP ƒ  } | jQ do dk ƒ } t | ƒ t t t tR g k s¬t ‚ t) | dp dq dr ds g ƒ sÍt ‚ | jS dt t	 jT d	 du d1 d g ƒ dv d  ƒ | jQ do dk ƒ } t) | dw dx dy dz g ƒ s+t ‚ | jS dt t	 jT d d{ d d+ g ƒ ƒ | jQ do dk ƒ } t) | dz d| d} d~ g ƒ sƒt ‚ | jS dt t	 jT d	 du d1 d g ƒ dv t	 jU tR g dZ ƒ ƒ | jQ do dk ƒ } t) | dk g dZ ƒ sìt ‚ xt! d ƒ D]} t	 jV d dZ d€ d� ƒ } t	 jT t t	 jW d dZ ƒ d d	 ƒ ƒ } | jS dt | dv | ƒ | jP ƒ  } | jQ do d‚ ƒ } t | ƒ t | ƒ k s’t ‚ | jX | ƒ jM | jX | ƒ ƒ s¹t ‚ | jX | ƒ jY | jX | ƒ ƒ sât ‚ | jX | ƒ jM d‚ ƒ sùt ‚ qùWt9 ƒ  } t9 ƒ  }  xKt! d ƒ D]=}! | jZ ƒ  }" |" j[ ƒ  |! d0 k sRt ‚ |" j\ dƒ | j: ƒ  ƒ |" k svt ‚ |" j[ ƒ  |  j: ƒ  k s”t ‚ |" j\ dƒ |! d0 ƒ |" k s¶t ‚ |" j ƒ  d k sÎt ‚ |" j d„ ƒ |" k sét ‚ |" j ƒ  d„ k st ‚ |" j d„ d ƒ |" k s t ‚ t] |" j ƒ  ƒ d k s>t ‚ t |" j^ ƒ  ƒ d d d g k set ‚ |" j_ t	 j
 d… d† d‡ g ƒ ƒ |" k s’t ‚ t |" j^ ƒ  ƒ d… d† dˆ g k s¹t ‚ |" j` ƒ  d+ k sÑt ‚ |" ja dƒ | j: ƒ  ƒ |" k sõt ‚ |" j` ƒ  |  j: ƒ  k st ‚ t |" jb ƒ  ƒ d+ d+ d+ d+ d+ d+ g k sCt ‚ |" jc t	 jd te d1 du ƒ ƒ ƒ |" k spt ‚ t |" jb ƒ  ƒ te d1 du ƒ k s—t ‚ |" jf ƒ  d+ k s¯t ‚ |" jg dƒ | j: ƒ  ƒ |" k sÓt ‚ |" jf ƒ  |  j: ƒ  k sñt ‚ |" jh ƒ  d+ k s	t ‚ |" ji dƒ | j: ƒ  ƒ |" k s-t ‚ |" jh ƒ  |  j: ƒ  k sKt ‚ |" jj ƒ  d+ k sct ‚ |" jk dƒ | j: ƒ  ƒ |" k s‡t ‚ |" jj ƒ  |  j: ƒ  k s¥t ‚ |" jl ƒ  d+ k s½t ‚ |" jm dƒ | j: ƒ  ƒ |" k sát ‚ |" jl ƒ  |  j: ƒ  k sÿt ‚ |" jn ƒ  d+ k st ‚ |" jo dƒ | j: ƒ  ƒ |" k s;t ‚ |" jn ƒ  |  j: ƒ  k sYt ‚ |" jp ƒ  d+ k sqt ‚ |" jq dƒ | j: ƒ  ƒ |" k s•t ‚ |" jp ƒ  |  j: ƒ  k s³t ‚ |" jr ƒ  d+ k sËt ‚ |" js dƒ | j: ƒ  ƒ |" k sït ‚ |" jr ƒ  |  j: ƒ  k st ‚ |" jt ƒ  d+ k s%t ‚ |" ju dƒ | j: ƒ  ƒ |" k sIt ‚ |" jt ƒ  |  j: ƒ  k sgt ‚ |" jv ƒ  d+ k st ‚ |" jw dƒ | j: ƒ  ƒ |" k s£t ‚ |" jv ƒ  |  j: ƒ  k sÁt ‚ |" jx ƒ  d+ k sÙt ‚ |" jy dƒ | j: ƒ  d1 ƒ |" k st ‚ |" jx ƒ  |  j: ƒ  d1 k s#t ‚ |" jz ƒ  d+ k s;t ‚ |" j{ dƒ | j: ƒ  ƒ |" k s_t ‚ |" jz ƒ  |  j: ƒ  k s}t ‚ t |" j| ƒ  ƒ d+ g de k s¢t ‚ |" j} t	 jT te d‰ dŠ ƒ ƒ ƒ |" k sÏt ‚ t |" j| ƒ  ƒ te d‰ dŠ ƒ k söt ‚ t |" j~ ƒ  ƒ d+ g du k st ‚ |" j t	 jT te d‹ dŒ ƒ ƒ ƒ |" k sHt ‚ t |" j~ ƒ  ƒ te d‹ dŒ ƒ k sot ‚ t |" j€ ƒ  ƒ d+ g de k s”t ‚ |" j� t	 jT te d� dŽ ƒ ƒ ƒ |" k sÁt ‚ t |" j€ ƒ  ƒ te d� dŽ ƒ k sèt ‚ t |" j‚ ƒ  ƒ d+ g d& k st ‚ |" jƒ t	 jT te d� d� ƒ ƒ ƒ |" k s:t ‚ t |" j‚ ƒ  ƒ te d� d� ƒ k sat ‚ t |" j„ ƒ  ƒ d+ g d1 k s†t ‚ |" j… t	 jT te d� d‘ ƒ ƒ ƒ |" k s³t ‚ t |" j„ ƒ  ƒ te d� d‘ ƒ k sÚt ‚ |" j† ƒ  d+ k sòt ‚ |" j‡ dƒ | j: ƒ  ƒ |" k st ‚ |" j† ƒ  |  j: ƒ  k s4t ‚ |" jˆ ƒ  d+ k sLt ‚ |" j‰ dƒ | j: ƒ  ƒ |" k spt ‚ |" jˆ ƒ  |  j: ƒ  k sŽt ‚ t |" jŠ ƒ  ƒ d+ g d1 k s³t ‚ |" j‹ t	 jT te d’ d“ ƒ ƒ ƒ |" k sàt ‚ t |" jŠ ƒ  ƒ te d’ d“ ƒ k st ‚ |" jŒ ƒ  d+ k st ‚ |" j� dƒ | j: ƒ  ƒ |" k sCt ‚ |" jŒ ƒ  |  j: ƒ  k sat ‚ |" jŽ ƒ  d+ k syt ‚ |" j� dƒ | j: ƒ  ƒ |" k s�t ‚ |" jŽ ƒ  |  j: ƒ  k s»t ‚ |" j� ƒ  d+ k sÓt ‚ |" j‘ dƒ | j: ƒ  ƒ |" k s÷t ‚ |" j� ƒ  |  j: ƒ  k s t ‚ |" j’ ƒ  d+ k s- t ‚ |" j“ dƒ | j: ƒ  ƒ |" k sQ t ‚ |" j’ ƒ  |  j: ƒ  k so t ‚ |" j” ƒ  d+ k s‡ t ‚ |" j• dƒ | j: ƒ  ƒ |" k s« t ‚ |" j” ƒ  |  j: ƒ  k sÉ t ‚ |" j– ƒ  d+ k sá t ‚ |" j— dƒ | j: ƒ  ƒ |" k s!t ‚ |" j– ƒ  |  j: ƒ  k s#!t ‚ |" j˜ ƒ  d+ k s;!t ‚ |" j™ dƒ | j: ƒ  ƒ |" k s_!t ‚ |" j˜ ƒ  |  j: ƒ  k s}!t ‚ t |" jš ƒ  ƒ d+ g d1 k s¢!t ‚ |" j› t	 jT te d” d• ƒ ƒ ƒ |" k sÏ!t ‚ t |" jš ƒ  ƒ te d” d• ƒ k sö!t ‚ t |" jœ ƒ  ƒ d+ g d1 k s"t ‚ |" j� t	 jT te d– d— ƒ ƒ ƒ |" k sH"t ‚ t |" jœ ƒ  ƒ te d– d— ƒ k so"t ‚ t |" jž ƒ  ƒ d+ g d1 k s”"t ‚ |" jŸ t	 jT te d˜ d™ ƒ ƒ ƒ |" k sÁ"t ‚ t |" jž ƒ  ƒ te d˜ d™ ƒ k sè"t ‚ t |" j  ƒ  ƒ d+ g d1 k s#t ‚ |" j¡ t	 jT te d• dš ƒ ƒ ƒ |" k s:#t ‚ t |" j  ƒ  ƒ te d• dš ƒ k sa#t ‚ t |" j¢ ƒ  ƒ d+ g d1 k s†#t ‚ |" j£ t	 jT te d— d› ƒ ƒ ƒ |" k s³#t ‚ t |" j¢ ƒ  ƒ te d— d› ƒ k sÚ#t ‚ |" j¤ ƒ  d+ k sò#t ‚ |" j¥ dƒ | j: ƒ  ƒ |" k s$t ‚ |" j¤ ƒ  |  j: ƒ  k s4$t ‚ |" j¦ ƒ  d+ k sL$t ‚ |" j§ dƒ | j: ƒ  ƒ |" k sp$t ‚ |" j¦ ƒ  |  j: ƒ  k sŽ$t ‚ |" j¨ ƒ  d+ k s¦$t ‚ |" j© dƒ | j: ƒ  ƒ |" k sÊ$t ‚ |" j¨ ƒ  |  j: ƒ  k sè$t ‚ |" jª ƒ  d+ k s %t ‚ |" j« dƒ | j: ƒ  ƒ |" k s$%t ‚ |" jª ƒ  |  j: ƒ  k sB%t ‚ |" j¬ ƒ  d+ k sZ%t ‚ |" j­ dƒ | j: ƒ  ƒ |" k s~%t ‚ |" j¬ ƒ  |  j: ƒ  k sœ%t ‚ t |" j® ƒ  ƒ d+ g d k sÁ%t ‚ |" j¯ t	 jT te dœ d� ƒ ƒ ƒ |" k sî%t ‚ t |" j® ƒ  ƒ te dœ d� ƒ k s&t ‚ t |" j° ƒ  ƒ d+ g d k s:&t ‚ |" j± t	 jT te dž dŸ ƒ ƒ ƒ |" k sg&t ‚ t |" j° ƒ  ƒ te dž dŸ ƒ k sŽ&t ‚ t |" j² ƒ  ƒ d+ g d{ k s³&t ‚ |" j³ t	 jT te d� d  ƒ ƒ ƒ |" k sà&t ‚ t |" j² ƒ  ƒ te d� d  ƒ k s't ‚ |  s't+ ƒ  } n  |" j´ d: | ƒ |  r$|! d1 k r$| }# t- | j. ƒ  d¡ ƒ sa't ‚ q$q$W| jK dh di ƒ t j dh di ƒ }$ |$ jµ ƒ  d k sŸ't ‚ |  s±'t+ ƒ  } n  |$ j¶ ƒ  d1 j´ d: | ƒ |  sò'| j. ƒ  |# j. ƒ  k sò't ‚ n  x¹ t! d ƒ D]« } t	 j· d d ƒ }% x7 t¸ | j¶ ƒ  |% ƒ D]  \ }" }& |" j\ dƒ |& d0 ƒ q-(W| j¹ ƒ  g  | j¶ ƒ  D] }" |" j[ ƒ  ^ qh(d0 d d1 dZ d	 de d d{ du d g
 k sÿ't ‚ qÿ'WxQ t¸ | j¶ ƒ  d+ d+ d0 d+ d0 d0 d0 d+ d0 d0 g
 ƒ D] \ }" }' |" j{ dƒ |' ƒ qâ(Wx| j% ƒ  D]} xÿ | j3 ƒ  D]ñ }
 |
 jº ƒ  d¸ k s@)t ‚ |
 jµ ƒ  dZ de g |
 jº ƒ  k sh)t ‚ |
 j¶ ƒ  j» ƒ  |
 jµ ƒ  k sŒ)t ‚ x2 |
 j¶ ƒ  D]$ }" |" jz ƒ  |
 jº ƒ  k s™)t ‚ q™)W|
 jZ ƒ  }" |" jz ƒ  |
 jº ƒ  k së)t ‚ |
 jµ ƒ  d	 d g |
 jº ƒ  k s")t ‚ q")Wq)W| j¼ ƒ  d1 k s3*t ‚ | jL ƒ  d0 }( |( | jL ƒ  k s[*t ‚ | j½ d0 ƒ |( | jL ƒ  k s€*t ‚ d  S(¹   NRt   t	   012345678t   appends   012345678 012345678t
   0123456789i
   s
   012345678 i   i   id   i   R    R'   t   defs   abc deft   at   bcs   a bct    iF   t   ziE   iD   s    aiC   s    abt   linest   a1t   a2t   b1t   b2t   linet   c1R’   t   sgt   sgsgsgsgsgsgsgsgsgsgt   numberi   t   pgt
   pgpgpgpgpgt   symbolt   Ci    t   exerciset   h2t   h1i{   i   i   s
   crystal_%dR”   s
   project_%dR–   i   iZ   ix   R—   Rè   sS  Title: exercise
Space group symbol from file: sg
Space group number from file: 123
Space group from matrices: P 4/m m m (No. 123)
Point group symbol from file: pg
Number of crystals: 3
Number of Miller indices: 0
History:
  h1
  h2
Crystal 1:
  Name: crystal_0
  Project: project_0
  Id: 1
  Unit cell: (10, 20, 20, 90, 90, 120)
  Number of datasets: 0
Crystal 2:
  Name: crystal_1
  Project: project_1
  Id: 2
  Unit cell: (11, 20, 20, 90, 90, 120)
  Number of datasets: 0
Crystal 3:
  Name: crystal_2
  Project: project_2
  Id: 3
  Unit cell: (12, 20, 20, 90, 90, 120)
  Number of datasets: 0
i   i   i   iQ   iR   iS   i   s
   dataset_%dR›   sa  Title: exercise
Space group symbol from file: sg
Space group number from file: 123
Space group from matrices: P 4/m m m (No. 123)
Point group symbol from file: pg
Number of crystals: 3
Number of Miller indices: 0
History:
  h1
  h2
Crystal 1:
  Name: crystal_0
  Project: project_0
  Id: 1
  Unit cell: (10, 20, 20, 90, 90, 120)
  Number of datasets: 5
  Dataset 1:
    Name: dataset_0
    Id: 1
    Wavelength: 10
    Number of columns: 0
  Dataset 2:
    Name: dataset_1
    Id: 2
    Wavelength: 9
    Number of columns: 0
  Dataset 3:
    Name: dataset_2
    Id: 3
    Wavelength: 8
    Number of columns: 0
  Dataset 4:
    Name: dataset_3
    Id: 4
    Wavelength: 7
    Number of columns: 0
  Dataset 5:
    Name: dataset_4
    Id: 5
    Wavelength: 6
    Number of columns: 0
Crystal 2:
  Name: crystal_1
  Project: project_1
  Id: 2
  Unit cell: (11, 20, 20, 90, 90, 120)
  Number of datasets: 4
  Dataset 1:
    Name: dataset_0
    Id: 6
    Wavelength: 10
    Number of columns: 0
  Dataset 2:
    Name: dataset_1
    Id: 7
    Wavelength: 9
    Number of columns: 0
  Dataset 3:
    Name: dataset_2
    Id: 8
    Wavelength: 8
    Number of columns: 0
  Dataset 4:
    Name: dataset_3
    Id: 9
    Wavelength: 7
    Number of columns: 0
Crystal 3:
  Name: crystal_2
  Project: project_2
  Id: 3
  Unit cell: (12, 20, 20, 90, 90, 120)
  Number of datasets: 3
  Dataset 1:
    Name: dataset_0
    Id: 10
    Wavelength: 10
    Number of columns: 0
  Dataset 2:
    Name: dataset_1
    Id: 11
    Wavelength: 9
    Number of columns: 0
  Dataset 3:
    Name: dataset_2
    Id: 12
    Wavelength: 8
    Number of columns: 0
t	   dataset_0R+   t	   dataset_xt	   dataset_1s[   mtz::dataset::set_name(new_name="dataset_1"): new_name is used already for another dataset.s	   column_%ds   FB?Rž   R‹   s¡  Title: exercise
Space group symbol from file: sg
Space group number from file: 123
Space group from matrices: P 4/m m m (No. 123)
Point group symbol from file: pg
Number of crystals: 3
Number of Miller indices: 0
History:
  h1
  h2
Crystal 1:
  Name: crystal_0
  Project: project_0
  Id: 1
  Unit cell: (10, 20, 20, 90, 90, 120)
  Number of datasets: 5
  Dataset 1:
    Name: dataset_0
    Id: 1
    Wavelength: 10
    Number of columns: 1
    label    #valid %valid  min  max type
    column_0      0  0.00% None None F: amplitude
  Dataset 2:
    Name: dataset_1
    Id: 2
    Wavelength: 9
    Number of columns: 2
    label    #valid %valid  min  max type
    column_1      0  0.00% None None ?: *** UNDEFINED column type ***
    column_2      0  0.00% None None F: amplitude
  Dataset 3:
    Name: dataset_2
    Id: 3
    Wavelength: 8
    Number of columns: 3
    label    #valid %valid  min  max type
    column_3      0  0.00% None None B: BATCH number
    column_4      0  0.00% None None ?: *** UNDEFINED column type ***
    column_5      0  0.00% None None F: amplitude
  Dataset 4:
    Name: dataset_3
    Id: 4
    Wavelength: 7
    Number of columns: 1
    label    #valid %valid  min  max type
    column_6      0  0.00% None None F: amplitude
  Dataset 5:
    Name: dataset_4
    Id: 5
    Wavelength: 6
    Number of columns: 2
    label    #valid %valid  min  max type
    column_7      0  0.00% None None ?: *** UNDEFINED column type ***
    column_8      0  0.00% None None F: amplitude
Crystal 2:
  Name: crystal_1
  Project: project_1
  Id: 2
  Unit cell: (11, 20, 20, 90, 90, 120)
  Number of datasets: 4
  Dataset 1:
    Name: dataset_0
    Id: 6
    Wavelength: 10
    Number of columns: 2
    label     #valid %valid  min  max type
    column_9       0  0.00% None None B: BATCH number
    column_10      0  0.00% None None ?: *** UNDEFINED column type ***
  Dataset 2:
    Name: dataset_1
    Id: 7
    Wavelength: 9
    Number of columns: 3
    label     #valid %valid  min  max type
    column_11      0  0.00% None None F: amplitude
    column_12      0  0.00% None None B: BATCH number
    column_13      0  0.00% None None ?: *** UNDEFINED column type ***
  Dataset 3:
    Name: dataset_2
    Id: 8
    Wavelength: 8
    Number of columns: 1
    label     #valid %valid  min  max type
    column_14      0  0.00% None None ?: *** UNDEFINED column type ***
  Dataset 4:
    Name: dataset_3
    Id: 9
    Wavelength: 7
    Number of columns: 2
    label     #valid %valid  min  max type
    column_15      0  0.00% None None B: BATCH number
    column_16      0  0.00% None None ?: *** UNDEFINED column type ***
Crystal 3:
  Name: crystal_2
  Project: project_2
  Id: 3
  Unit cell: (12, 20, 20, 90, 90, 120)
  Number of datasets: 3
  Dataset 1:
    Name: dataset_0
    Id: 10
    Wavelength: 10
    Number of columns: 3
    label     #valid %valid  min  max type
    column_17      0  0.00% None None ?: *** UNDEFINED column type ***
    column_18      0  0.00% None None F: amplitude
    column_19      0  0.00% None None B: BATCH number
  Dataset 2:
    Name: dataset_1
    Id: 11
    Wavelength: 9
    Number of columns: 1
    label     #valid %valid  min  max type
    column_20      0  0.00% None None B: BATCH number
  Dataset 3:
    Name: dataset_2
    Id: 12
    Wavelength: 8
    Number of columns: 2
    label     #valid %valid  min  max type
    column_21      0  0.00% None None F: amplitude
    column_22      0  0.00% None None B: BATCH number
iÐ  ib	  iˆ  t	   crystal_1s   a,b,cR(   sL   mtz::dataset::add_column(label="a,b,c", ...): label must not include commas.t   HKLt   Ft   miller_indicesi   RÄ   i   t   SigFt   QRS   Rb   Rc   Rê   i   t   SigIi   s9  Title: exercise
Space group symbol from file: sg
Space group number from file: 123
Space group from matrices: P 4/m m m (No. 123)
Point group symbol from file: pg
Number of crystals: 2
Number of Miller indices: 4
Resolution range: 2.67261 1.41421
History:
Crystal 1:
  Name: HKL_base
  Project: HKL_base
  Id: 0
  Unit cell: (10, 10, 10, 90, 90, 90)
  Number of datasets: 1
  Dataset 1:
    Name: HKL_base
    Id: 0
    Wavelength: 0
    Number of columns: 0
Crystal 2:
  Name: crystal_1
  Project: crystal_1
  Id: 1
  Unit cell: (10, 10, 10, 90, 90, 90)
  Number of datasets: 1
  Dataset 1:
    Name: crystal_1
    Id: 1
    Wavelength: 0
    Number of columns: 7
    label #valid  %valid   min   max type
    H          4 100.00%  1.00  3.00 H: index h,k,l
    K          4 100.00%  2.00  4.00 H: index h,k,l
    L          4 100.00%  3.00  5.00 H: index h,k,l
    F          3  75.00% 10.00 30.00 F: amplitude
    SigF       3  75.00%  1.00  3.00 Q: standard deviation
    I          3  75.00% 11.00 31.00 F: amplitude
    SigI       3  75.00%  4.00  6.00 Q: standard deviation
s  Column data:
-------------------------------------------------------------------------------
                       F            SigF               I            SigI

 1  2  3              10               1              21               5
 2  3  4              20               2            None            None
 3  4  5              30               3              31               6
 2  3  5            None            None              11               4
-------------------------------------------------------------------------------
R   s   tmp_iotbx_mtz_ext.mtzs9  Title: exercise
Space group symbol from file: sg
Space group number from file: 123
Space group from matrices: P 4/m m m (No. 123)
Point group symbol from file: pg
Number of crystals: 2
Number of Miller indices: 4
Resolution range: 2.67261 1.41421
History:
Crystal 1:
  Name: HKL_base
  Project: HKL_base
  Id: 0
  Unit cell: (10, 10, 10, 90, 90, 90)
  Number of datasets: 1
  Dataset 1:
    Name: HKL_base
    Id: 0
    Wavelength: 0
    Number of columns: 0
Crystal 2:
  Name: crystal_1
  Project: crystal_1
  Id: 2
  Unit cell: (10, 10, 10, 90, 90, 90)
  Number of datasets: 1
  Dataset 1:
    Name: crystal_1
    Id: 1
    Wavelength: 0
    Number of columns: 7
    label #valid  %valid   min   max type
    H          4 100.00%  1.00  3.00 H: index h,k,l
    K          4 100.00%  2.00  4.00 H: index h,k,l
    L          4 100.00%  3.00  5.00 H: index h,k,l
    F          3  75.00% 10.00 30.00 F: amplitude
    SigF       3  75.00%  1.00  3.00 Q: standard deviation
    I          3  75.00% 11.00 31.00 F: amplitude
    SigI       3  75.00%  4.00  6.00 Q: standard deviation
iÿÿÿÿiüÿÿÿiýÿÿÿiûÿÿÿR@   g      $@g      4@g      >@g      ð¿Rå   i	   R²   g      @g      "@g      @g      @i   g       @g       @g        Rv   t	   thresholdg      à?ic   t   values	   Hello MTZt   whatt   evers   this_is.....t   this_isi   i   i   i   i   i"   i   i&   i   i>   iA   iG   iJ   iH   iK   iI   iL   iM   iN   iT   iV   iU   iW   i^   sr  batch number: 4
batch title: Hello MTZHello MTZHello MTZHello MTZHello MTZHello MTZHello MTZHello M
names of the three axes: ['what', 'ever', 'this_is']
type of orientation block: 82
refinement flags for cell: [3, 4, 5, 6, 7, 8]
number of phixyz used (0, 1, or 2): 83
reciprocal axis closest to rotation axis: 84
crystal number: 85
mosaicity model: 0 = isotropic, 1 = anisotropic: 86
type of data: 2D (1), 3D (2), or Laue (3): 87
goniostat scan axis number: 88
number of batch scales & Bfactors (0 if unset): 89
number of goniostat axes: 90
flag for type of beam info: 91
  0: for alambd, delamb; 1: also delcor, divhd, divvd
number of detectors (current maximum 2): 2
dataset id: 93
cell dimensions: [18.0, 19.0, 20.0, 21.0, 22.0, 23.0]
orientation matrix U: [16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0]
  in Fortranic order, i.e. U(1,1), U(2,1) ...
missetting angles at beginning and end of oscillation: [28.0, 29.0, 30.0, 31.0, 32.0, 33.0]
mosaicity: [26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0]
datum values of goniostat axes: [26.0, 27.0, 28.0]
start of phi relative to datum: 94.0
end of phi relative to datum: 95.0
rotation axis in lab frame: [62.0, 63.0, 64.0]
start time: 96.0
stop time: 97.0
batch scale: 98.0
batch temperature factor: 99.0
sd bscale: 100.0
sd bbfac: 101.0
phi range: 102.0
vectors ("Cambridge" laboratory axes) defining ngonax goniostat axes:
  vector 1: [71.0, 72.0, 73.0]
  vector 2: [72.0, 73.0, 74.0]
  vector 3: [73.0, 74.0, 75.0]
idealised source vector: [74.0, 75.0, 76.0]
source vector: [75.0, 76.0, 77.0]
wavelength (A): 103.0
dispersion (deltalambda / lambda): 104.0
correlated component: 105.0
horizontal beam divergence: 106.0
vertical beam divergence: 107.0
xtal to detector distance: [84.0, 85.0]
detector tilt angle: [85.0, 86.0]
min & max values of detector coords (pixels): [86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0]
s   012345678 012345678 (   i
   i
   i
   iZ   iZ   iZ   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   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   R   t	   set_titleRt   R   R³   t   add_historyR   t
   std_stringt   listRu   t   set_space_group_nameRw   t   set_space_group_numberRx   t   set_point_group_nameR}   t   set_lattice_centring_typeR~   R   t   space_group_symbol_iteratorR{   t   set_space_groupRy   R|   t   xmlRŠ   t   unknown_headerst   number_of_unknown_headerst   space_group_infoRÛ   R   t   add_crystalR   R—   R�   R*   R’   R”   R   R–   R   Rö   R	   t   getvaluet   set_unit_cell_parametersR»   t   has_datasett   add_datasetR¼   R›   R“   R   R   R   R
   R½   t
   add_columnR¿   Rž   R‹   Rª   R«   t   reservet   set_hkl_baset	   set_realst   miller_indext   doubleRÍ   RÃ   RÄ   RÎ   t   show_column_dataR   t   extract_miller_indicesRÅ   t   replace_miller_indicesRµ   R²   R´   t   Falset
   set_valuest   floatt   boolt   random_boolt   random_doubleR¸   t   all_net	   add_batcht   numt   set_numt   lent   gonlabt
   set_gonlabt   iortypt
   set_iortypt   lbcellt
   set_lbcellt   intRº   t   misflgt
   set_misflgt   jumpaxt
   set_jumpaxt   ncrystt
   set_ncrystt   lcrflgt
   set_lcrflgt   ldtypet
   set_ldtypet   jsaxst	   set_jsaxst   nbscalt
   set_nbscalt   ngonaxt
   set_ngonaxt   lbmflgt
   set_lbmflgt   ndett   set_ndett   nbsetidt   set_nbsetidt   cellt   set_cellt   umatt   set_umatt   phixyzt
   set_phixyzt   crydatt
   set_crydatt   datumt	   set_datumt   phisttt
   set_phisttt   phiendt
   set_phiendt   scanaxt
   set_scanaxt   time1t	   set_time1t   time2t	   set_time2t   bscalet
   set_bscalet   bbfact	   set_bbfact   sdbscalet   set_sdbscalet   sdbfact
   set_sdbfact   phiranget   set_phiranget   e1t   set_e1t   e2t   set_e2t   e3t   set_e3R¢   R¦   t   sot   set_sot   alambdt
   set_alambdt   delambt
   set_delambt   delcort
   set_delcort   divhdt	   set_divhdt   divvdt	   set_divvdt   dxt   set_dxt   thetat	   set_thetat   detlmt	   set_detlmt   showR   R€   t   random_permutationt   zipt   sort_batchesR‘   Rv   R   t   delete_reflection()   R  Rè   R)   t   space_group_symbolsR{   t   stageR*   R�   R/   R+   Rš   t   dataset_0_0R   t
   i_seq_iterR2   t   i_seqt	   col_labelt   col_typeR�   R—   Rž   RS   RÛ   t   original_miller_indicest   new_miller_indicest   cRÕ   RÔ   R   t   sxt   vxt	   values_int
   values_outt   i_batcht   batcht   batch_3_showt   restoredt   permt   new_numRy  t   mx(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   exercise_modifiersý  sx      $*-"				$	

"	

+- )!)!
+ Y 	
( |							 	!			$!!	!			$!! ( 
 (	$!+!%!	)')#		$"'''$0-'$$$$$$$$$("$%-'%-'%-'%-'%-'$$%-'$$$$$$$%-'%-'%-'%-'%-'$$$$$%-'%-'%-' 0 !"
"1@($"0c          C   sQ  t  d  k r d GHd  St ƒ  j d  d d d ƒj d  d d d d d ƒj d  d d d	 d
 d d d d d ƒj d  d d d d d ƒj d t j d ƒ }  t ƒ  t ƒ  t	 ƒ  t
 d |  j j ƒ x* |  j D] } t ƒ  d | d t j ƒ qÉ W|  j j d  k	 r,t d |  j j d |  j j d |  j j ƒ n  x |  j j rLt ƒ  t
 ƒ  q/Wd  S(   Ns3   Skipping iotbx/mtz/tst_ext.py: ccp4io not availables	   --verboset   actiont
   store_trues	   --forevert   helps,   Infinite loop, for detection of memory leakss   --walkt   storeR‹   t   stringt   metavart   ROOT_DIRs-   Find and process all MTZ files under ROOT_DIRs   --fulls   Visit all MTZ filest   argsi   R  R   Rè   R  Rá   (   R   RŠ   R   t   optiont   processR	  t   argvR   RÜ   R   RË  t   optionsR  RÓ  Rà   R
  R  R  Rá   t   forever(   t   command_lineR   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyR%  3  s@    								c           C   s   t  ƒ  d GHd  S(   Nt   OK(   R%  (    (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   runU  s    t   __main__((   t
   __future__R    t   libtbx.load_envR„   R…   t
   has_modulet   iotbxR   RŠ   t   iotbx.option_parserR   t   cctbxR   R   t   cctbx.array_familyR   t   libtbx.test_utilsR   R   R	   t	   itertoolsR
   t	   cStringIOR   R	  R‡   R   R   RÜ   t	   ExceptionRÝ   R   Rà   R  RS  R  RË  R%  RÛ  RÞ   (    (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/mtz/tst_ext.pyt   <module>   s8   			ÿ Ot		ÿ ÿ ÿ 9	"	