ó
�™xTc           @   s›   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	 d  d l
 m Z d „  Z d „  Z d	 „  Z e d
 k r— e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   hklf(   t   flex(   t   approx_equal(   t   Exception_expectedt	   show_diff(   t   StringIOc          C   s  d }  t  j d t |  ƒ ƒ } t | j ƒ  ƒ d& d' d( d) g k sH t ‚ t | j ƒ  d
 d d d g ƒ so t ‚ t | j ƒ  d d d d g ƒ s– t ‚ t | j	 ƒ  d d d d	 g ƒ s½ t ‚ t | j
 ƒ  d d d d	 g ƒ sä t ‚ x5 | j ƒ  D]' } | j ƒ  j | j ƒ  ƒ sñ t ‚ qñ W| j ƒ  d } | j ƒ  j | j ƒ  ƒ sMt ‚ | j ƒ  j | j ƒ  ƒ snt ‚ | j ƒ  d } | j ƒ  j | j
 ƒ  ƒ sŸt ‚ | j ƒ  d  k s·t ‚ d }  t  j d t |  ƒ ƒ } t | j ƒ  ƒ d* d+ d, g k süt ‚ | j	 ƒ  d  k st ‚ | j
 ƒ  d  k s,t ‚ | j ƒ  d  k sDt ‚ xä t t f D]Ö } xÍ t t f D]¿ } d }  | r–|  d 7}  | r–|  d 7}  q–n  |  }  t  j d t |  ƒ ƒ } t | j ƒ  d d d d g ƒ sÛt ‚ | j	 ƒ  d  k sót ‚ | j
 ƒ  d  k st ‚ | j ƒ  d  k sdt ‚ qdWqQWd }  y t  j d t |  ƒ ƒ } Wn t k
 r`n Xt ‚ d }  y t  j d t |  ƒ ƒ } Wn t k
 rœn Xt ‚ d }  t  j d t |  ƒ ƒ } t | j ƒ  ƒ d- d. g k såt ‚ t | j ƒ  d d g ƒ st ‚ t | j ƒ  d d g ƒ s't ‚ t | j	 ƒ  d d g ƒ sHt ‚ t | j ƒ  d d g ƒ sit ‚ d  }  t  j d t |  ƒ ƒ } t | j ƒ  ƒ d/ d0 g k s«t ‚ t | j ƒ  d" d g ƒ sÌt ‚ t | j ƒ  d d g ƒ sít ‚ t | j
 ƒ  d d g ƒ st ‚ | j ƒ  d  k s&t ‚ d# }  t  j d t |  ƒ ƒ } t | j ƒ  ƒ d1 g k set ‚ t | j ƒ  d$ g ƒ sƒt ‚ t | j ƒ  d g ƒ s¡t ‚ | j
 ƒ  d  k s¹t ‚ | j ƒ  d  k sÑt ‚ d% }  y t  j d t |  ƒ ƒ } Wn t k
 rn Xt ‚ d  S(2   Ns§      1   2  -1  -23.34    4.56   1
   2  -3   9   12.45    6.12   2
99999999999999999.9999999.999999
-999-999-999-9999.99-9999.99-999
   0   0   0    0.00    0.00   0
t   file_objecti   i   iÿÿÿÿiýÿÿÿi	   i'  iüÿÿg×£p=
W7Àgfffffæ(@gq=
×ÿiø@g…ëQ¸þ‡ÃÀg=
×£p=@g{®Gáz@i    sW      0   2   3 1816.00   20.00
   0   2   415508.00  138.00
   0   2   5 4776.00   40.00
i   i   i   su      1   2  -1   23.34    4.56
   2  -3   9   12.45    6.12
99999999999999999.9999999.99
-999-999-999-9999.99-9999.99
s      0   0   0    0.00    0.00
s     -5   1   0  123.45   66.12
t    sc      1   2  -1   23.34    4.56   1
   2  -3  a9   12.45    6.12   2
   0   0   0    0.00    0.00   0
s{      1   2  -1   23.34    4.56   1   45.36
   2  -3   9  -12.45   -6.12   2   54.63
   0   0   0    0.00    0.00   0       0
g×£p=
W7@gfffffæ(Àg{®GázÀg®Gáz®F@gq=
×£PK@sc      1   2  -1     23.      4.   2
  -2   1   3     -1.      3.   1
   0   0   0      0.      0.   0
iþÿÿÿi   s*      3   2  -1     32.      5.
   0   0   0
i    sÐ   King Arthur: [after Arthur's cut off both of the Black Knight's arms]
  Look, you stupid Bastard. You've got no arms left.
Black Knight: Yes I have.
King Arthur: *Look*!
Black Knight: It's just a flesh wound.(   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   t   readerR   t   listt   indicest   AssertionErrorR   t   datat   sigmast   batch_numberst   alphast   as_miller_arrayst   all_eqt   all_approx_equalt   Nonet   wavelengthst   Truet   Falset   RuntimeErrorR   t	   Exception(   t   st   rt   mat   end_linet   something_after_end_line(    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/shelx/tst_hklf.pyt   exercise_hklf_reader   s”    ''''%!!!'
'     $!!!!$!!!!  c             sl  d }  t  j d t |  ƒ ƒ j ƒ  d ‰  t ƒ  } ˆ  j d | ƒ t  j d t | j ƒ  ƒ ƒ j ƒ  d } t ˆ  j ƒ  | j ƒ  ƒ sŠ t ‚ t ˆ  j	 ƒ  | j	 ƒ  ƒ s« t ‚ t ˆ  j
 ƒ  | j
 ƒ  ƒ sÌ t ‚ ˆ  j t j d g ƒ ƒ ‰  ‡  f d †  } | d d d ƒ | d d  d ƒ | d	 d d
 ƒ | d d d ƒ | d d  d ƒ | d d d ƒ | d d d ƒ | d d d ƒ t  j d t |  ƒ ƒ j ƒ  d ‰  ˆ  j t j d d g ƒ ƒ ‰  ˆ  j d t j d d g ƒ ƒ } t ƒ  } | j | d t ƒt | j ƒ  d ƒ st ‚ ˆ  j d t j d d g ƒ ƒ } t ƒ  } | j | d t ƒt | j ƒ  d ƒ sht ‚ d  S(   Ns®      1   2  -1   23.34    4.56
   2  -3   9   12.45    6.12
99999999999999999.9999999.99
-999-999-999-9999.99-9999.99
   3   4   5999999.999999999
   3   4   5-99999.9-9999999
R   i    c            s°   | d  k	 r! t j | g ƒ } n  ˆ  j d t j |  g ƒ d | ƒ } t ƒ  } | j | d t ƒt | j ƒ  d | ƒ s� t	 ‚ y | j | ƒ Wn t
 k
 r¥ n Xt ‚ d  S(   NR   R   t   normalise_if_format_overflows,      1   2  -1%s
   0   0   0    0.00    0.00
(   R   R   t   doublet   arrayR   t   export_as_shelx_hklfR   R   t   getvalueR   R   R   (   t   dR   t   ft   ma2t   sio(   R   (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/shelx/tst_hklf.pyt   check}   s     $	  i²žCÿi   s   -9999999    0.81s   -9999999    0.01i   s       1.62-9999999iÍ[i   s   99999999    2.43s   99999999    0.01i   s       3.2499999999iëšþs   -999999952631576s   52631576-9999999R   R    sW      1   2  -152631576    0.00
   2  -3   9-9999999    0.00
   0   0   0    0.00    0.00
iô1sW      1   2  -1-2848576    0.00
   2  -3   999999999    0.00
   0   0   0    0.00    0.00
(   R   R	   R   R   R#   R$   R   R   R   R   R   t   selectR   t   size_tR   R"   R!   R   R   (   R   R(   R'   R)   (    (   R   sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/shelx/tst_hklf.pyt$   exercise_miller_export_as_shelx_hklfk   s<    "	(!!!"!	!	c           C   s   t  ƒ  t ƒ  d GHd  S(   Nt   OK(   R   R,   (    (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/shelx/tst_hklf.pyt   run¥   s    t   __main__N(   t
   __future__R    t   iotbx.shelxR   t   cctbx.array_familyR   t   libtbx.test_utilsR   R   R   t	   cStringIOR   R   R,   R.   t   __name__(    (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/shelx/tst_hklf.pyt   <module>   s   	c	:	