ó
�™xTc           @   sG  d  d l  m Z d  d l Z e j j d ƒ rg d  d l m Z d  d l m	 Z	 m
 Z
 d  d l m Z n d Z d  d l m Z d  d l m Z d  d	 l m Z d  d
 l m Z m Z d  d l m Z m Z d  d l m Z d  d l Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" e# d k rCe" ƒ  n  d S(   iÿÿÿÿ(   t   divisionNt   ccp4io(   t   reflection_file_reader(   t   reflection_file_servert   guess_r_free_flag_value(   t   mtz(   t   miller(   t   crystal(   t   flex(   t   Exception_expectedt	   show_diff(   t   Sorryt   null_out(   t   StringIOc          C   sÆ	  t  j d dA d d	 ƒ }  t j d
 |  d t d d ƒ } g  d d g D]6 } | j d t j d | j ƒ  j	 ƒ  ƒ ƒ j
 ƒ  ^ qC } | d j d d ƒ } | j ƒ  j d ƒ t j d d ƒ g } t d
 |  d t d | ƒ } | j d d  d d  d t d d d d ƒ } t | j ƒ  ƒ d k s t ‚ | j d d ƒ } t | j ƒ  ƒ d k sPt ‚ | j d | d d d ƒ | j ƒ  j d  ƒ t j d d  ƒ g } t ƒ  } t d
 |  d t d | d! | ƒ } y, | j d d  d d  d t d d d d ƒ Wn= t k
 r't | j ƒ  d" ƒ st ‚ t ƒ  } | _ n Xt ‚ | j d d  d d g d t d d d d ƒ } t | j ƒ  ƒ d# k syt ‚ y/ | j d d  d d$ g d t d d d d  ƒ Wn= t k
 rçt | j ƒ  d% ƒ sÔt ‚ t ƒ  } | _ n Xt ‚ t | j  ƒ d k s	t ‚ | j d d d d  d t d d d d ƒ } t | j  ƒ d& k sNt ‚ t | j ƒ  ƒ d k slt ‚ | j d t! j" j# d ƒ d d' g d t d d d d ƒ } t | j  ƒ d& k sÀt ‚ t | j ƒ  ƒ d k sÞt ‚ y, | j d d  d d  d t d d  d d  ƒ Wn= t k
 rIt | j ƒ  d( ƒ s6t ‚ t ƒ  } | _ n Xt ‚ | j d | j d t j$ t j d | j ƒ  j	 ƒ  ƒ t j d | j ƒ  j	 ƒ  ƒ ƒ ƒ d d$ ƒ | j d | j d t j d | j ƒ  j	 ƒ  ƒ d) t j d | j ƒ  j	 ƒ  ƒ d ƒ j% ƒ  d d* ƒ | j d | j d t j& | j ƒ  j	 ƒ  dB ƒ ƒ d d+ ƒ | j ƒ  j d, ƒ t j d d, ƒ g } t ƒ  } t d
 |  d t d | d! | ƒ } | j d d  d d- g d t d d d d ƒ } t | j ƒ  ƒ d. k sçt ‚ | j' ƒ  sùt ‚ | j d d  d d- g d t d d d d ƒ } t | j ƒ  ƒ d/ k sDt ‚ | j( ƒ  sVt ‚ | j d d  d d0 g d t d d d d ƒ } t | j ƒ  ƒ d1 k s¡t ‚ | j) ƒ  s³t ‚ | j d d  d d0 g d t d d d d ƒ } t | j ƒ  ƒ d2 k sþt ‚ | j( ƒ  st ‚ | j d d  d d  d t d d d d d3 t d4 t ƒ } t | ƒ d& k s^t ‚ x. | D]& }	 |	 j) ƒ  r…|	 j' ƒ  set ‚ qeW| j* d d  d d- g d5 t d6 d  d d7 d d ƒ }
 t |
 j ƒ  ƒ d. k sàt ‚ |
 j' ƒ  sòt ‚ | j* d d  d d- g d5 t d6 d  d d  d d ƒ }
 t |
 j ƒ  ƒ d8 k sCt ‚ |
 j( ƒ  sUt ‚ t j+ |
 j, ƒ  ƒ d9 k svt ‚ | j* d d  d d: g d5 t d6 d  d d7 d d ƒ }
 t |
 j ƒ  ƒ d; k sÇt ‚ | j* d d  d d: g d5 t d6 d  d d7 d d ƒ }
 t |
 j ƒ  ƒ d< k s	t ‚ |
 j( ƒ  s*	t ‚ x• d  d= d> g D]„ } | j* d d  d d g d5 t d6 | d d  d d ƒ }
 | d> k r 	t |
 j ƒ  ƒ d? k s¾	t ‚ q:	t |
 j ƒ  ƒ d@ k s:	t ‚ q:	Wd  S(C   Nt	   unit_celli
   i   i   iU   i_   id   t   space_group_symbols   P 1t   crystal_symmetryt   anomalous_flagt   d_mini   i    i   t   datat   sizet   column_root_labelt   F0s   tmp_rfu1.mtzt	   file_namet   force_symmetryt   reflection_filest   labelst"   convert_to_amplitudes_if_necessaryt   parameter_scopet
   amplitudest   parameter_names   tmp_rfu1.mtz:F0t   miller_arrayt   F1s   tmp_rfu2.mtzt   errsÆ   
Multiple equally suitable arrays of amplitudes found.

Possible choices:
  tmp_rfu2.mtz:F0
  tmp_rfu2.mtz:F1

Please use amplitudes.labels
to specify an unambiguous substring of the target label.

s   tmp_rfu2.mtz:F1t   F2s¢   
No matching array: labels=F2

Possible choices:
  tmp_rfu2.mtz:F0
  tmp_rfu2.mtz:F1

Please use labels
to specify an unambiguous substring of the target label.

i   t   f0s­   
Multiple equally suitable arrays of amplitudes found.

Possible choices:
  tmp_rfu2.mtz:F0
  tmp_rfu2.mtz:F1

Please specify an unambiguous substring of the target label.

t   sigmast   F3t   Ps   tmp_rfu3.mtzt   f2s   tmp_rfu3.mtz:F2,PHIF2s   tmp_rfu3.mtz:F2t   f3s   tmp_rfu3.mtz:F3,SIGF3s"   tmp_rfu3.mtz:F3,as_amplitude_arrayt   return_all_valid_arrayst   strictt   convert_to_phases_if_necessaryt   original_phase_unitst   phasess   tmp_rfu3.mtz:PHIF2i   t   PAs   tmp_rfu3.mtz:PA,PB,PC,PDs5   tmp_rfu3.mtz:PA,PB,PC,PD,converted_to_centroid_phasest   degt   rads   tmp_rfu3.mtz:F0s    tmp_rfu3.mtz:F0,converted_to_deg(   i
   i   i   iU   i_   id   (   i    i    i    i    (-   R   t   symmetryR   t	   build_sett   Falset   arrayR   t   random_doublet   indicesR   t#   set_observation_type_xray_amplitudet   as_mtz_datasett
   mtz_objectt   writeR   t   any_reflection_fileR   t   Truet   get_amplitudest   Nonet   strt   infot   AssertionErrort   get_miller_arrayt   add_miller_arrayR   R   R
   t   getvalueR!   R	   t   lent   file_name_miller_arrayst   ost   patht   abspatht   polart#   set_observation_type_xray_intensityt   hendrickson_lattmant   is_complex_arrayt   is_real_arrayt   is_xray_intensity_arrayt   get_phases_degt   meanR   (   R   t
   miller_sett   it   input_arrayst   mtz_datasetR   t   reflection_file_srvt   amplR!   t   fR-   R,   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt*   exercise_get_amplitudes_and_get_phases_deg   s¨   				F																				
		$		+		!																	$						!									!c          C   s$  t  j d d0 d d	 ƒ }  t j d
 |  d t d d ƒ } g  d d g D]X } | j d t j d | j ƒ  j	 ƒ  ƒ d t j d | j ƒ  j	 ƒ  ƒ d ƒ j
 ƒ  ^ qC } | d j d d ƒ } | j ƒ  j d ƒ t j d d ƒ g } t d
 |  d t d | ƒ } | j d d  d d  d t d d ƒ } t | j ƒ  ƒ d k s<t ‚ | j d | d d d ƒ | j ƒ  j d  ƒ t j d d  ƒ g } t ƒ  } t d
 |  d t d | d! | ƒ } y( | j d d  d d  d t d d ƒ } Wn9 t k
 r| j ƒ  d" k søt ‚ t ƒ  } | _ n Xt ‚ | j d d  d d  d t d d d# t d$ d ƒ }	 t |	 ƒ d% k sZt ‚ | j d d  d d d& g d t d d ƒ } t | j ƒ  ƒ d' k s¢t ‚ y. | j d d  d d d( g d t d d ƒ } Wn9 t k
 r| j ƒ  d) k søt ‚ t ƒ  } | _ n Xt ‚ t | j ƒ d k s-t ‚ | j d d d d  d t d d ƒ } t | j ƒ d% k slt ‚ t | j ƒ  ƒ d k sŠt ‚ | j d t j  j! d ƒ d d* g d t d d ƒ } t | j ƒ d% k sØt ‚ t | j ƒ  ƒ d k söt ‚ y( | j d d  d d  d t d d ƒ } Wn9 t k
 rY| j ƒ  d" k sFt ‚ t ƒ  } | _ n Xt ‚ t j d
 |  d t d d ƒ } | j d t j d | j ƒ  j	 ƒ  ƒ d t j d | j ƒ  j	 ƒ  ƒ d ƒ j
 ƒ  }
 |
 j" ƒ  } |
 j d d+ ƒ } | j | d d+ ƒ| j ƒ  j d, ƒ t j d d, ƒ g } t d
 |  d t d | ƒ } t ƒ  } | _ y( | j d d  d d  d t d d ƒ }
 Wn t k
 r�n X| j d d  d d  d t d d d- t ƒ }
 |
 j ƒ  j# ƒ  d. k sØt ‚ | j d d  d d  d t d d d- t ƒ }
 |
 j ƒ  j# ƒ  d/ k s t ‚ d  S(1   NR   i
   i   i   iU   i_   id   R   s   P 1R   R   R   i   i    i   R   R   R$   R   R   s   tmp_rfu1.mtzR   R   R   R   t   ignore_all_zerosR   t	   xray_datas   tmp_rfu1.mtz:F0,SIGF0R   R    s   tmp_rfu2.mtzR!   sÙ   
Multiple equally suitable arrays of observed xray data found.

Possible choices:
  tmp_rfu2.mtz:F0,SIGF0
  tmp_rfu2.mtz:F1,SIGF1

Please use xray_data.labels
to specify an unambiguous substring of the target label.

R)   t   minimum_scorei   t   SIGF1s   tmp_rfu2.mtz:F1,SIGF1t   SIGF0sÈ   
No matching array: xray_data.labels=F1 SIGF0

Possible choices:
  tmp_rfu2.mtz:F0,SIGF0
  tmp_rfu2.mtz:F1,SIGF1

Please use xray_data.labels
to specify an unambiguous substring of the target label.

t   sigf0t   Is   tmp_rfu3.mtzt   prefer_anomalouss   I(+),SIGI(+),I(-),SIGI(-)s   I,SIGI(   i
   i   i   iU   i_   id   ($   R   R1   R   R2   R3   R4   R   R5   R6   R   RK   R8   R9   R:   R   R;   R   R<   t   get_xray_dataR>   R?   R@   RA   RC   R   R   RD   R!   R	   RE   RF   RG   RH   RI   t   average_bijvoet_matest   label_string(   R   RR   RS   RT   RU   R   RV   t   f_obsR!   t
   f_obs_listt   i_obst   i_meant   mtz_data(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   exercise_get_xtal_data  s   				h																										+							c          C   sÅ  t  j d d6 d d	 ƒ }  t j d
 |  d t d d ƒ } | j ƒ  j ƒ  } g  } | j t j	 t
 t j d | ƒ d ƒ ƒ ƒ | j t j	 t | ƒ ƒ ƒ | j t j	 | d ƒ ƒ xd d d d g D]÷} xît | ƒ D]à\ } } xÑt t g D]Ã} | d k r| r
Pn  | } d }	 n› | s4| d k } t }	 n | d k } t }	 | d k rm| j ƒ  } t	 |	 ƒ }	 nG | d k r´| j ƒ  } | j | d k d ƒ | s«d }	 q´d }	 n  | j d | ƒ }
 |
 j d d ƒ } | j ƒ  j d ƒ t j d d ƒ g } t ƒ  } t d
 |  d t d | d | ƒ } x„d  |	 g D]v} xmd  d d  g D]\} y4 | j d d  d! | d" | d# t d$ d% ƒ \ } } Wnæ t k
 ro} | d  k r| d k s·t ‚ | d  k rÞt | ƒ d& k st ‚ q\t | ƒ d' d( d) d* k s\t ‚ nW t | ƒ d+ k st ‚ | d k rD| j ƒ  d, k s\t ‚ n | j ƒ  d- k s\t ‚ t ƒ  } | _ qMX| d k s‚t ‚ t  d. | d" | ƒ } | | k sMt ‚ qMWq7Wqî WqÕ WqÂ WxDd/ d  g D]6} | j d | d ƒ }
 |
 j d d ƒ } | j! d. |
 d | ƒ | j ƒ  j d ƒ t j d d ƒ g } t ƒ  } t d
 |  d t d | d | ƒ } y, | j d d  d! d  d" d  d# t d$ d% ƒ WnS t k
 rá} t | ƒ d0 k s¶t ‚ | j ƒ  d1 k sÎt ‚ t ƒ  } | _ qÊXt | j" ƒ  ƒ d2 k sÊt ‚ qÊW| j d d  d! d d" d d# t d$ d% ƒ \ } } | j" ƒ  j# ƒ  d k sRt ‚ | d k sdt ‚ xz d7 d8 g D]l \ } }	 y, | j d d  d! | d" |	 d# t d$ d% ƒ Wn+ t k
 rÖ} t | ƒ d3 k sÝt ‚ qqXt$ ‚ qqW| j% ƒ  } | j& ƒ  j ƒ  } d4 | d <| j' d | ƒ } | j d d5 ƒ } | j ƒ  j d ƒ t j d d ƒ g } t ƒ  } t d
 |  d t d | d | ƒ } | j d d  d! d  d" d  d# t d$ d% ƒ \ } } | d k sÁt ‚ d  S(9   NR   i   i   i    iU   i_   id   R   s   P 1R   R   R   i   R   i
   i    t   ccp4t   cnst   shelxt   booli   iÿÿÿÿR   R   t
   FreeRflagss   tmp.mtzR   R   R   R!   t   freet   foot   labelt   test_flag_valuet   disable_suitability_testR   t   r_free_flagssž   No array of R-free flags found.

For manual selection define:
  r_free_flags.label
  r_free_flags.test_flag_value
  r_free_flags.disable_suitability_test=Trues%   Not a suitable array of R-free flags:s    r_free_flags.label=free
s(   To override the suitability test define:s+    r_free_flags.disable_suitability_test=Trues)   No matching array: r_free_flags.label=foos¬   
No matching array: r_free_flags.label=foo

Possible choices:
  tmp.mtz:FreeRflags

Please use r_free_flags.label
to specify an unambiguous substring of the target label.

s,   
No matching array: r_free_flags.label=foo

R   t   tests7   Multiple equally suitable arrays of R-free flags found.sÉ   
Multiple equally suitable arrays of R-free flags found.

Possible choices:
  tmp.mtz:FreeRflags
  tmp.mtz:test

Please use r_free_flags.label
to specify an unambiguous substring of the target label.

s   tmp.mtz:FreeRflagss«   r_free_flags.disable_suitability_test=True: Suitability test for R-free flags can only be disabled if both r_free_flags.label and r_free_flags.test_flag_value are defined.i€–˜ t   TEST(   i   i   i    iU   i_   id   (   Ni   (   Ro   N((   R   R1   R   R2   R3   R6   R   t   appendR   t   intt   listt   random_permutationt   xranget	   enumerateR<   t   as_intt   set_selectedR4   R8   R9   R:   R   R;   R   R   R>   t   get_r_free_flagsR   RA   R?   RD   R!   R   RC   R@   Rd   R	   t   generate_r_free_flagsR   t   customized_copy(   R   RR   t   nt   exercise_flag_arrayst   stylet
   i_exerciset   exercise_flag_arrayt   reversedR   Rs   t   input_arrayRU   R   R!   RV   t   trial_test_flag_valuet   trial_labelRu   t   actual_test_flag_valuet   et   actual_test_flag_value_2t   second_labelRr   t	   int_flagst   flagst   value(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   exercise_get_r_free_flags¾  s$   				& 		 											
		&								"		

						c    	   	   C   s|  t  j d d d d	 ƒ }  t j d
 |  d t d d ƒ } | j d t j | j ƒ  j	 ƒ  d ƒ ƒ } | j
 d d ƒ } | j ƒ  j d ƒ t j d d ƒ g } t ƒ  } t d
 |  d t d | d | ƒ } | j d d  d d  d t d d ƒ } t | j ƒ  ƒ d k st ‚ y& | j d d  d d  d t d d ƒ WnC t k
 rq} t | ƒ d k sVt ‚ | j ƒ  d k sxt ‚ n Xt ‚ d  S(    NR   i   i   i    iU   i_   id   R   s   P 1R   R   R   i   R   i    R   R&   s   tmp.mtzR   R   R   R!   R   RZ   R   t   experimental_phasess   tmp.mtz:PA,PB,PC,PDs&   No array of experimental phases found.s)   
No array of experimental phases found.

(   i   i   i    iU   i_   id   (   i    i    i    i    (   R   R1   R   R2   R3   R4   R   RL   R6   R   R8   R9   R:   R   R;   R   R   R<   t   get_experimental_phasesR>   R?   R@   RA   R   RD   R	   (	   R   RR   R‰   RU   R   R!   RV   R”   R�   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt    exercise_get_experimental_phasesz  sH    					!							c       	   C   s÷  d d l  m }  d d l m } t ƒ  } d } t j d d+ d d ƒ } t j d | d t	 d d ƒ } | j
 ƒ  j ƒ  } | j d t j | d, ƒ ƒ } | j d t j | d ƒ ƒ } | j d t j | d ƒ ƒ }	 | j d t j | d- ƒ ƒ }
 | j d t j | d. ƒ ƒ } | j d d ƒ } | j ƒ  j d ƒ |  j d d d | ƒ } t | j ƒ  ƒ t j k skt ‚ | j d d ƒ } | j ƒ  j d ƒ |  j d d d | ƒ } t | j ƒ  ƒ t j k sÉt ‚ x§ d  d g D]™ } |
 j d d  ƒ } | j d! | d d ƒ | j ƒ  j d ƒ y  |  j d d d" | d | ƒ WqÖt k
 rn} t | ƒ d# k sat ‚ | d 7} qÖXqÖWx§ d  d$ g D]™ } | j d d% ƒ } | j d! |	 d d& ƒ | j ƒ  j d ƒ y  |  j d d d" | d | ƒ Wq€t k
 r} t | ƒ d# k st ‚ | d 7} q€Xq€W|	 j d d& ƒ } | j d! |
 d d  ƒ | j ƒ  j d ƒ y |  j d d d | ƒ Wn5 t k
 r©} t | ƒ d# k sœt ‚ | d 7} n X|
 j d d  ƒ } | j d! | d d ƒ | j ƒ  j d ƒ y  |  j d d d" d$ d | ƒ Wn5 t k
 r<} t | ƒ d' k s/t ‚ | d 7} n X| j d d% ƒ } | j d! |	 d d& ƒ | j ƒ  j d ƒ y  |  j d d d" d d | ƒ Wn5 t k
 rÏ} t | ƒ d' k sÂt ‚ | d 7} n X|
 j d d  ƒ } | j d! | d d ƒ | j ƒ  j d ƒ |  j d d d( d) d | ƒ } | | j ƒ  d d/ ƒ sHt ‚ |
 j d d  ƒ } | j d! | d d ƒ | j ƒ  j d ƒ y& |  j d d d( d) d" d$ d | ƒ Wn5 t k
 rà} t | ƒ d' k sÓt ‚ | d 7} n X| d* k sót ‚ d  S(0   Niÿÿÿÿ(   t   reflection_file_utils(   t   approx_equali    R   i   i   i    iU   i_   id   R   s   P 1R   R   R   i   R   i   i   i   y              @i   y              @R   t   A1s   tmp.mtzR   t   logt   A5t   complext   A4R   t   types   Multiple choices available.t   realt   A2t   A3s   No suitable arrays.Rr   s   A5,PHIA5i   (   i   i   i    iU   i_   id   (   i   i   i   i   y      @      @y      @      @y      @      @(   t   iotbxR—   t   libtbx.test_utilsR˜   R   R   R1   R   R2   R3   R6   R   R4   R   RL   t   doublet   complex_doubleR8   R9   R:   t   extract_miller_array_from_fileRž   R   RA   R>   RC   R   R?   (   t   rfuR˜   Rš   t   sorry_countsR   RR   R   t   a1t   a2t   a3t   a4t   a5RU   t   mat   tpR�   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt'   exercise_extract_miller_array_from_file£  sº    						!!	 	  	 					c       	   C   sº  d d l  m }  m } m } d d l m } d d l m } d } t j	 d d$ d d ƒ } t
 j d | d t d d ƒ } | j ƒ  j ƒ  } | j d t j d | ƒ ƒ j ƒ  }	 |	 j d t j |	 j ƒ  ƒ ƒ }	 | j ƒ  }
 |
 j t j | d ƒ ƒ } t ƒ  } |  d |	 d d  d d  d | ƒ } d | j ƒ  k s8t ‚ | j ƒ  d k sPt ‚ | j ƒ  d  k sht ‚ | j ƒ  szt ‚ t ƒ  } |  d |	 d | d t d | ƒ } d | j ƒ  k s¼t ‚ | j ƒ  sÏt ‚ | j  ƒ  | j  ƒ  k sít ‚ | j! | d d d d  ƒ| | ƒ \ } } | | | j" d! ƒ ƒ | | ƒ \ } } | j ƒ  | j ƒ  d" k sbt ‚ | | d t ƒ\ } } t# | j" ƒ  ƒ d# k s˜t ‚ | | j$ ƒ  j% d  ƒ s¶t ‚ d  S(%   Niÿÿÿÿ(   t   process_raw_datat   change_space_groupt   load_f_obs_and_r_free(   t   sgtbx(   R˜   s#   tmp_iotbx_reflection_file_utils.mtzR   i
   i   i   iZ   i_   R   s   P 2R   R   R   g      ø?R   R   R$   gÍÌÌÌÌÌì?t   obsRu   Rs   Rš   s#   WARNING: R-free flags not supplied.s   F(+),SIGF(+),F(-),SIGF(-)s$   WARNING: R-free flags are incompletet   titlet	   tst_iotbxt
   wavelengthgKÈ=›Uï?t   P21i   s   P 1 21 1(   i
   i   i   iZ   i_   iZ   (&   t   iotbx.reflection_file_utilsR±   R²   R³   t   cctbxR´   R£   R˜   R   R1   R   R2   R<   R6   R   R4   R   R5   RK   R‚   t   sqrtR   R�   t   selectt   random_boolR   R>   RD   RA   t   data_labelst   phase_labelst   flags_are_newt   n_obst   write_mtz_filet   space_group_infoR?   R@   R¸   (   R±   R²   R³   R´   R˜   t   mtz_fileR   RR   RÂ   Rg   Ru   t   r_free_flags_partialt   outt	   processedt   out2t
   processed2Re   t   r_freet	   f_obs_newt
   r_free_new(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   exercise_automation_wrappers
  sZ    					!				"	c           C   sC   t  d  k r d GHd  St ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d  S(   NsA   Skipping iotbx/tst_reflection_file_utils.py: ccp4io not available(   R   R>   RY   Rj   R“   R–   R°   RÎ   (    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   exercise:  s    c           C   s   t  ƒ  d GHd  S(   Nt   OK(   RÏ   (    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   runE  s    t   __main__($   t
   __future__R    t   libtbx.load_envt   libtbxt   envt
   has_moduleR¢   R   Rº   R   R   R   R>   R»   R   R   t   cctbx.array_familyR   R£   R	   R
   t   libtbx.utilsR   R   t	   cStringIOR   RG   RY   Rj   R“   R–   R°   RÎ   RÏ   RÑ   t   __name__(    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_utils.pyt   <module>   s.   	ü	°	¼	)	g	0		