ó
õ™xTc           @   s‚   d  d l  m Z d  d l m Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z e d k r~ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   Scanc         C   sØ   |  j  ƒ  } t | d ƒ } t | d ƒ } x2 t d | ƒ D]! } |  j | ƒ t k s< t ‚ q< Wx2 t | | ƒ D]! } |  j | ƒ t k sq t ‚ qq Wx6 t | d d ƒ D]! } |  j | ƒ t k sª t ‚ qª Wd GHd S(   s8   Check that the is_angle_valid function behaves properly.i    i   ih  t   OKN(   t   get_oscillation_ranget   intt   ranget   is_angle_validt   Falset   AssertionErrort   True(   t   scant   oscillation_ranget   os1t   os2t   i(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_is_angle_valid   s    c         C   sÜ   |  j  ƒ  } x> t | d d | d ƒ D]! } |  j | ƒ t k s( t ‚ q( Wx> t | d | d d ƒ D]! } |  j | ƒ t k si t ‚ qi WxB t | d d | d d ƒ D]! } |  j | ƒ t k s® t ‚ q® Wd GHd S(   s8   Check that the is_frame_valid function behaves properly.i    id   i   R   N(   t   get_image_rangeR   t   is_image_index_validR   R   R	   (   R
   t   image_rangeR   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_is_frame_valid   s    ""&c         C   s   d  S(   N(    (   R
   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_get_angle_from_frame   s    c         C   s   d  S(   N(    (   R
   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_get_frame_from_angle   s    c         C   s   d  S(   N(    (   R
   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_get_frames_with_angle"   s    c         C   s^   xW t  t f D]I } |  j d | ƒ } |  j | d | ƒ|  j d | ƒ | k s t ‚ q Wd  S(   Nt   deg(   R	   R   t   get_oscillationt   set_oscillationR   (   R
   R   t   oscillation(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_scan_oscillation_recycle%   s    c          C   sb  t  d d ƒ }  t  d d ƒ } |  | } d } | j ƒ  d k sF t ‚ t | j ƒ  d d ƒ | k  sl t ‚ t | j ƒ  d d ƒ | k  s’ t ‚ | j ƒ  d k sª t ‚ d	 GHt  d d ƒ }  t  d d ƒ } |  | } d } | j ƒ  d k sõ t ‚ t | j ƒ  d d ƒ | k  st ‚ t | j ƒ  d d ƒ | k  sAt ‚ | j ƒ  d k sYt ‚ d	 GHd  S(   Ni   ih  g        g      ð?ii  iÐ  gH¯¼šò×z>i    R   g     €v@(   i   ih  (   g        g      ð?(   ii  iÐ  (   g        g      ð?(   i   iÐ  (   i   ih  (   g        g      ð?(   ii  iÐ  (   g     €v@g      ð?(   i   iÐ  (   R   t   get_num_imagesR   t   absR   R   (   t   scan1t   scan2R
   t   eps(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   tst_scan_360_append+   s$    
&&
&&c          C   sb   d }  d } t  |  | ƒ } t | ƒ t | ƒ t | ƒ t | ƒ t | ƒ t | ƒ t ƒ  d  S(   Ni    iè  gš™™™™™¹?(   i    iè  (   i    gš™™™™™¹?(   R   R   R   R   R   R   R   R!   (   R   R   R
   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   runC   s    





t   __main__N(   t
   __future__R    t   dxtbx.modelR   R   R   R   R   R   R   R!   R"   t   __name__(    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/tests/model/tst_scan_data.pyt   <module>   s   								