ó
n™xTc           @   sù   d  d l  m Z d  d l m Z d  d l Z d  d l Z d „  Z d d „ Z d d „ Z	 d d „ Z
 d d	 „ Z d d
 „ Z d d „ Z d d „ Z d d „ Z d d „ Z d „  Z e d k rõ e ƒ  d  d l Z d  d l Z e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   flexNc           C   s#   t  j j d t j j d ƒ ƒ d  S(   Ni    s    scitbx/array_family/boost_python(   t   syst   patht   insertt   libtbxt   envt   under_build(    (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   extend_sys_path   s    i    c         C   sù   |  r d GHn  t  j d ƒ d k s) t ‚ t  j d d d g ƒ d k sM t ‚ t  j t t d ƒ ƒ ƒ d k st t ‚ t  j t t d d	 ƒ ƒ ƒ d
 k sž t ‚ t  j d ƒ d k s¹ t ‚ y t  j d ƒ Wn t k
 rÝ n
 Xt d ‚ |  rõ d GHn  d  S(   Ns    Checking std::vector conversionsi   i	   i
   i   i   i   i   i   i!   i   i&   i    i   t   cs   TypeError expected.t   OK(   i   i	   i
   (   i   i	   i
   i   (   i    i   R	   (   t   rtt
   std_vectort   AssertionErrort   itert   xranget	   TypeErrort   RuntimeError(   t   verbose(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_std_vector_conversions
   s     $'*  	 c         C   sù   |  r d GHn  t  j d ƒ d k s) t ‚ t  j d d d g ƒ d k sM t ‚ t  j t t d ƒ ƒ ƒ d k st t ‚ t  j t t d d	 ƒ ƒ ƒ d
 k sž t ‚ t  j d ƒ d k s¹ t ‚ y t  j d ƒ Wn t k
 rÝ n
 Xt d ‚ |  rõ d GHn  d  S(   Ns   Checking std::list conversionsi   i	   i
   i   i   i   i   i   i!   i   i&   i    i   R	   s   TypeError expected.R
   (   i   i	   i
   (   i   i	   i
   i   (   i    i   R	   (   R   t   std_listR   R   R   R   R   (   R   (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_std_list_conversions   s     $'*  	 c         C   s  |  r d GHn  t  j d ƒ d k s) t ‚ t  j d d d g ƒ d k sM t ‚ t  j t d ƒ ƒ d k sn t ‚ t  j t d d	 ƒ ƒ d
 k s’ t ‚ t  j d ƒ d k s­ t ‚ y t  j d ƒ Wn t k
 rÑ n
 Xt d ‚ y t  j d ƒ Wn t k
 rÿ n
 Xt d ‚ |  rd GHn  d  S(   Ns    Checking boost:array conversionsi   i	   i
   i   i   i   i   i   i!   i   i&   i   s   TypeError expected.i    i   R	   R
   (   i   i	   i
   (   i   i	   i
   i   (   i   i	   i
   i   i   (   i    i   R	   (   R   t   boost_arrayR   R   R   R   (   R   (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt    exercise_boost_array_conversions"   s&     $!$  	  	 c         C   sù   |  r d GHn  t  j d ƒ d k s) t ‚ t  j d d d g ƒ d k sM t ‚ t  j t t d ƒ ƒ ƒ d k st t ‚ t  j t t d d	 ƒ ƒ ƒ d
 k sž t ‚ t  j d ƒ d k s¹ t ‚ y t  j d ƒ Wn t k
 rÝ n
 Xt d ‚ |  rõ d GHn  d  S(   Ns   Checking af::small conversionsi   i	   i
   i   i   i   i   i   i.   i   i&   i    i   R	   s   TypeError expected.R
   (   i   i	   i
   (   i   i	   i
   i   (   i    i   R	   (   R   t   smallR   R   R   R   R   (   R   (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_small_conversions1   s     $'*  	 c         C   s€   |  r d GHn  t  t j ƒ  ƒ d k s, t ‚ t j ƒ  } t j | ƒ d k sS t ‚ t j d ƒ d	 k sn t ‚ |  r| d
 GHn  d  S(   Ns"   Checking shared<->flex conversionsi   i   i   i   i   i	   i
   i   R
   (   i   i   i   (   i   i	   i
   (   t   tupleR   t   make_sharedR   t
   use_shared(   R   t   s(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt    exercise_shared_flex_conversions=   s      c         C   s”   |  r d GHn  t  j ƒ  } t  j | ƒ d k s5 t ‚ t  j | ƒ t | ƒ d k sZ t ‚ t  j d  ƒ d k su t ‚ t  j d  ƒ |  r� d GHn  d  S(   Ns   Checking flex->ref conversionsi   i   i   i    R
   (   i   i   i   (   R   R   t   use_const_refR   t
   modify_refR   t   None(   R   R   (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_ref_flex_conversionsG   s      c         C   s€   |  r d GHn  t  j t  j d ƒ ƒ } | j ƒ  t j | ƒ k sG t ‚ | j ƒ  t j | ƒ j ƒ  k sn t ‚ |  r| d GHn  d  S(   Ns(   Checking flex->ref_flex_grid conversionsi   i   R
   (   i   i   (   R   t   doublet   gridt   accessorR   t   use_const_ref_flex_gridR   t   all(   R   t   a(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt'   exercise_ref_flex_grid_flex_conversionsQ   s     !' c         C   sì  |  r d GHn  t  j t  j d ƒ ƒ } | j ƒ  t j | ƒ k sG t ‚ | j ƒ  t j | ƒ j ƒ  k sn t ‚ | j ƒ  j ƒ  t j | ƒ j ƒ  k s› t ‚ | j ƒ  j ƒ  t j | ƒ j	 ƒ  k sÈ t ‚ t  j t  j d ƒ ƒ } | j ƒ  t j
 | ƒ k st ‚ | j ƒ  t j
 | ƒ j ƒ  k s(t ‚ | j ƒ  j ƒ  t j | ƒ j ƒ  k sUt ‚ | j ƒ  j ƒ  t j | ƒ j	 ƒ  k s‚t ‚ t  j t  j d ƒ j d ƒ ƒ } | j ƒ  j ƒ  t j | ƒ j ƒ  k sÐt ‚ | j ƒ  j	 ƒ  t j | ƒ j	 ƒ  k sýt ‚ | j ƒ  st ‚ | j ƒ  s!t ‚ t  j t  j d d ƒ ƒ } | j ƒ  sOt ‚ | j ƒ  sbt ‚ xu | | g D]g } y t j
 | ƒ WnA t k
 rœ‚  qot k
 rÉ} t | ƒ j d	 ƒ sÖt ‚ qoXt d
 ƒ ‚ qoW|  rèd GHn  d  S(   Ns%   Checking flex->ref_c_grid conversionsi   i   i   i   i   i   i   s   Python argument types ins$   Boost.Python.ArgumentError expected.R
   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R#   R$   R%   R   t   use_const_ref_c_grid_2R   R'   t   use_const_ref_c_grid_padded_2t   focust   use_const_ref_c_grid_3t   use_const_ref_c_grid_padded_3t	   set_focust
   is_0_basedt	   is_paddedt   KeyboardInterruptt	   Exceptiont   strt
   startswithR   (   R   R(   t   bR	   t   e(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_c_grid_conversionsX   s<     !'--!'--!--   c         C   sq   |  r d GHn  t  j d d ƒ d k s, t ‚ t  j d ƒ d k sG t ‚ t  j ƒ  d	 k s_ t ‚ |  rm d GHn  d  S(
   Ns   Checking to_tuple conversionsi   i   i   i   R
   (   i   i   (   i   i   (   i   i   (   R   t   make_boost_int_2R   (   R   (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   exercise_to_tuplet   s      c         C   sç   d } t  |  ƒ d k r+ t |  d ƒ } n  d } | rL | d k  rL d } n  d } x€ | d k sm | | k  rÔ t | ƒ t | ƒ t | ƒ t | ƒ t | ƒ t | ƒ t | ƒ t	 | ƒ t
 | ƒ | d 7} qU W| sã d GHn  d  S(   Nid   i    i   i   R
   (   t   lent   intR   R   R   R   R   R"   R)   R8   R:   (   t   argst
   iterationsR   t   i(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   run{   s(     	








 t   __main__i   (   t
   __future__R    t   scitbx.array_familyR   t   libtbx.load_envR   R   R   R   R   R   R   R   R"   R)   R8   R:   R@   t   __name__t   regression_test_extR   t   argv(    (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/boost_python/regression_test.pyt   <module>   s&   	

	