ó
ö™xTc           @   sL   d  d l  m Z d e f d „  ƒ  YZ e d k rH e ƒ  Z e j ƒ  n  d S(   iÿÿÿÿ(   t   divisiont   Testc           B   s‰   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „ Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   c         C   s‡   d d  l  } d d  l } y | j j d ƒ } Wn" t k
 rR } d GHt d ƒ n X| j j | d ƒ |  _ | j j | d ƒ |  _	 d  S(   Niÿÿÿÿt   dials_regressions%   FAIL: dials_regression not configuredi    t   centroid_test_datat   image_examples(
   t   libtbx.load_envt   ost   envt	   dist_patht   KeyErrort   exitt   patht   joinR   R   (   t   selft   libtbxR   R   t   e(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   __init__   s    c         C   sb   d d l  m } |  j } g  } t d d ƒ } x- | D]% } | j | | d j | ƒ ƒ ƒ q5 W| S(   Niÿÿÿÿ(   R   i   i
   s   centroid_000{0}.cbf(   t   os.pathR   R   t   ranget   appendt   format(   R   R   R   t	   filenamest   image_indicest   i(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   single_sweep_filenames   s    	#c         C   s{   d d l  m } |  j } g  } t t d d ƒ ƒ t t d d ƒ ƒ } x- | D]% } | j | | d j | ƒ ƒ ƒ qN W| S(   Niÿÿÿÿ(   R   i   i   i   i
   s   centroid_000{0}.cbf(   R   R   R   t   listR   R   R   (   R   R   R   R   R   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   multiple_sweep_filenames   s    	(#c         C   s„   d d l  m } |  j } d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC g } g  | D] } | | | Œ ^ qk S(D   Niÿÿÿÿ(   R   t   ALS_1231s   q315r_lyso_1_001.imgt   ALS_501s   als501_q4_1_001.imgt   ALS_821s   q210_lyso_1_101.imgt   ALS_831s   q315r_lyso_001.imgt	   APS_14BMCs   q315_1_001.imgt   APS_17IDs   q210_1_001.imgt   APS_19IDs   q315_unbinned_a.0001.imgt   APS_22IDs   mar300.0001t	   APS_23IDDs   mar300_1_E1.0001t	   APS_24IDCs   pilatus_1_0001.cbft
   CLS1_08ID1s   mar225_2_E0_0001.imgt
   DESY_ID141s   q210_2_001.imgt	   ESRF_BM14s   mar165_001.mccds   mar225_1_001.mccdt
   ESRF_ID231s   q315r_7_001.imgs	   RAXIS-HTCs   test1_lysozyme_0111060001.osct	   SLS_X06SAs   mar225_2_001.imgs   pilatus6m_1_00001.cbft   SRS_101s   mar225_001.imgt   SRS_142s   q4_1_001.imgt
   SSRL_bl111s   mar325_1_001.mccdt   xia2s   merge2cbf_averaged_0001.cbf(   R   s   q315r_lyso_1_001.img(   R   s   als501_q4_1_001.img(   R   s   q210_lyso_1_101.img(   R   s   q315r_lyso_001.img(   R   s   q315_1_001.img(   R    s   q210_1_001.img(   R!   s   q315_unbinned_a.0001.img(   R"   s   mar300.0001(   R#   s   mar300_1_E1.0001(   R$   s   pilatus_1_0001.cbf(   R$   s   q315_1_001.img(   R%   s   mar225_2_E0_0001.img(   R&   s   q210_2_001.img(   R'   s   mar165_001.mccd(   R'   s   mar225_1_001.mccd(   R(   s   q315r_7_001.img(   s	   RAXIS-HTCs   test1_lysozyme_0111060001.osc(   R)   s   mar225_2_001.img(   R)   s   pilatus6m_1_00001.cbf(   R*   s   mar225_001.img(   R+   s   q4_1_001.img(   R,   s   mar325_1_001.mccd(   R-   s   merge2cbf_averaged_0001.cbf(   R   R   R   (   R   R   R   R   t   f(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   all_image_examples$   s4    		c         C   s   |  j  ƒ  |  j ƒ  S(   N(   R   R/   (   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   multiple_block_filenamesE   s    c         C   sX   d d l  } d d l } | j ƒ  } | j | | ƒ | j ƒ  | j d ƒ | j | ƒ S(   s%   Pickle to a temp file then un-pickle.iÿÿÿÿNi    (   t   picklet   tempfilet   TemporaryFilet   dumpt   flusht   seekt   load(   R   t   objR1   R2   t   temp(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   pickle_then_unpickleH   s    
c         C   s]   d d l  m } d d  l } | j g  | D] } | j ƒ  ^ q) d t ƒ} | j | d | ƒS(   Niÿÿÿÿ(   t   DataBlockFactoryt   ensure_asciit   check_format(   t   dxtbx.datablockR;   t   jsont   dumpst   to_dictt   Truet	   from_json(   R   R8   R=   R;   R?   t   dbt   string(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   encode_json_then_decodeX   s    .c         C   s@   |  j  ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  d  S(   N(   t   tst_create_single_sweept   tst_create_multiple_sweepst   tst_create_multiple_blockst   tst_picklingt   tst_jsont   tst_from_null_sweep(   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   run^   s    




c         C   sð   d d l  m } |  j ƒ  } | j | ƒ } t | ƒ d k sC t ‚ | d j ƒ  d k s_ t ‚ | d j ƒ  } t | ƒ d k s‡ t ‚ t | d ƒ d k s£ t ‚ | d j ƒ  } t | ƒ d k sË t ‚ t | d ƒ d k sç t ‚ d GHd  S(   Niÿÿÿÿ(   R;   i   i    i	   t   OK(	   R>   R;   R   t   from_filenamest   lent   AssertionErrort
   num_imagest   extract_imagesetst   extract_sweeps(   R   R;   R   t   blockst   imagesett   sweeps(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRG   f   s    c         C   sð   d d l  m } |  j ƒ  } | j | ƒ } t | ƒ d k sC t ‚ | d j ƒ  d k s_ t ‚ | d j ƒ  } t | ƒ d k s‡ t ‚ | d j ƒ  } t | ƒ d k s¯ t ‚ t | d ƒ d k sË t ‚ t | d ƒ d k sç t ‚ d GHd  S(	   Niÿÿÿÿ(   R;   i   i    i   i   i   RN   (	   R>   R;   R   RO   RP   RQ   RR   RS   RT   (   R   R;   R   RU   RV   RW   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRH   v   s    c         C   sâ  d d l  m } |  j ƒ  } | j | d t ƒ} t | ƒ d k sI t ‚ | d j ƒ  d k se t ‚ | d j ƒ  } t | ƒ d k s� t ‚ t | d ƒ d k s© t ‚ | d j	 ƒ  } t | ƒ d k sÑ t ‚ t | d ƒ d k sí t ‚ | d j ƒ  d k s	t ‚ | d j ƒ  } t | ƒ d k s1t ‚ t
 d	 „  | Dƒ ƒ sMt ‚ | d j	 ƒ  } t | ƒ d k sut ‚ t
 d
 „  | Dƒ ƒ s‘t ‚ | d j ƒ  d k s­t ‚ | d j ƒ  } t | ƒ d k sÕt ‚ t | d ƒ d k sñt ‚ | d j	 ƒ  } t | ƒ d k st ‚ t
 d „  | Dƒ ƒ s5t ‚ | d j ƒ  d k sQt ‚ | d j ƒ  } t | ƒ d k syt ‚ t
 d „  | Dƒ ƒ s•t ‚ | d j	 ƒ  } t | ƒ d k s½t ‚ t
 d „  | Dƒ ƒ sÙt ‚ d GHd  S(   Niÿÿÿÿ(   R;   t   verbosei   i    i	   i   i   c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   RP   (   t   .0R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pys	   <genexpr>›   s    c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   RP   (   RY   t   s(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pys	   <genexpr>ž   s    c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   RP   (   RY   RZ   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pys	   <genexpr>§   s    i   c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   RP   (   RY   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pys	   <genexpr>­   s    c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   RP   (   RY   RZ   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pys	   <genexpr>°   s    RN   (   R>   R;   R0   RO   t   FalseRP   RQ   RR   RS   RT   t   all(   R   R;   R   RU   RV   RW   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRI   †   sB    c         C   sÃ   d d l  m } |  j ƒ  } | j | ƒ } |  j | ƒ } t | ƒ t | ƒ k sX t ‚ xM t | | ƒ D]< \ } } | j ƒ  | j ƒ  k s’ t ‚ | | k sh t ‚ qh W| | k sº t ‚ d GHd  S(   Niÿÿÿÿ(   R;   RN   (	   R>   R;   R0   RO   R:   RP   RQ   t   zipt   format_class(   R   R;   R   t   blocks1t   blocks2t   b1t   b2(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRJ   ´   s    c         C   s¥  d d l  m } d d l m } |  j ƒ  } | j | ƒ } |  j | ƒ } t | ƒ t | ƒ k sh t ‚ xM t	 | | ƒ D]< \ } } | j
 ƒ  | j
 ƒ  k s¢ t ‚ | | k sx t ‚ qx W| | k sÊ t ‚ |  j ƒ  } | j | ƒ } |  j | d t ƒ} t | ƒ t | ƒ k st ‚ x�t	 | | ƒ D]p\ } } xat	 | j ƒ  | j ƒ  ƒ D]D\ } }	 t | ƒ t |	 ƒ k szt ‚ t | | ƒ rt |	 | ƒ sžt ‚ | j ƒ  |	 j ƒ  k s¼t ‚ | j ƒ  |	 j ƒ  k sÚt ‚ | j ƒ  |	 j ƒ  k søt ‚ | j ƒ  |	 j ƒ  k s”t ‚ qPt |	 | ƒ s/t ‚ xb t t | ƒ ƒ D]N }
 | j |
 ƒ |	 j |
 ƒ k slt ‚ | j |
 ƒ |	 j |
 ƒ k sBt ‚ qBWqPWq(Wd GHd  S(   Niÿÿÿÿ(   R;   (   t
   ImageSweepR=   RN   (   R>   R;   t   dxtbx.imagesetRc   R0   RO   RF   RP   RQ   R]   R^   R[   RS   t
   isinstancet   get_beamt   get_detectort   get_goniometert   get_scanR   (   R   R;   Rc   R   R_   R`   Ra   Rb   t   im1t   im2R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRK   Ã   s8    (!$0c         C   s›  d d l  m } d d l m } m } m } d d l m } m } m	 } m
 } | | | d d ƒ ƒ ƒ }	 |	 j | d ƒ ƒ |	 j | ƒ  ƒ |	 j | d ƒ ƒ |	 j | d d ƒ ƒ | j |	 ƒ }
 t |
 ƒ d k sÜ t ‚ |
 d }
 |
 j ƒ  } t | ƒ d k s
t ‚ | d j ƒ  |	 j ƒ  k s,t ‚ | d j ƒ  |	 j ƒ  k sNt ‚ | d j ƒ  |	 j ƒ  k spt ‚ | d j ƒ  |	 j ƒ  k s’t ‚ d
 GHd  S(   Niÿÿÿÿ(   R;   (   t
   NullReaderRc   t   SweepFileList(   t   Beamt   Detectort
   Goniometert   Scans   template_%2d.cbfi    i
   i   gš™™™™™¹?RN   (   i    i
   (   i    i    i   (   i   i    i    (   i   i
   (   i    gš™™™™™¹?(   R>   R;   Rd   Rl   Rc   Rm   t   dxtbx.modelRn   Ro   Rp   Rq   t   set_beamt   set_detectort   set_goniometert   set_scant   from_imagesetRP   RQ   RT   Rf   Rg   Rh   Ri   (   R   R;   Rl   Rc   Rm   Rn   Ro   Rp   Rq   t   sweept	   datablockRW   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyRL   å   s$    "
""""(   t   __name__t
   __module__R   R   R   R/   R0   R:   RB   RF   RM   RG   RH   RI   RJ   RK   RL   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyR      s   						!						.		"t   __main__N(   t
   __future__R    t   objectR   Rz   t   testRM   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/tst_datablock.pyt   <module>   s   ü	