ó
C™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 Z	 e	 j
 j d ƒ Z d  d l m Z m Z d  d l m Z d  d l Z d	 „  Z d
 „  Z e d k rÄ e ƒ  e ƒ  d GHn  d S(   iÿÿÿÿ(   t   division(   t   french_wilson(   t   random_structure(   t   flexNt   cctbx_french_wilson_ext(   t   null_outt   Sorry(   t   Exception_expectedc       	   C   s’  t  j d ƒ }  t  j d ƒ } t  j ƒ  } t  j ƒ  } t  j ƒ  } x't |  | ƒ D]\ } } t j d d d d d d g ƒ } t j d d d d d d g ƒ } t j t t g ƒ }	 | | } | | } t	 j
 d | d	 | d
 |	 ƒ }
 t	 j d | d	 | d
 |	 ƒ } t |
 ƒ t d ƒ k s#t ‚ t | ƒ t d ƒ k sAt ‚ | j | ƒ | j | ƒ | j |	 ƒ qR Wt	 j d | d | d | d d ƒ d  S(   Niè  g�íµ ÷Æ°>gü©ñÒMbP?gš™™™™™¹?i   g     @�@g    €„.At   eosqt   sigesqt   centricg      ð?t   Ft   SIGFt
   is_centrict   eps(   R   t   random_doublet   doublet   boolt   zipt   randomt   choicet   Truet   Falset   fw_extt	   expectEFWt   expectEsqFWt   typet   AssertionErrort   appendt   is_FrenchWilson(   t   xt   yt   xat   yat   bat   x_t   y_t   scale1t   scale2t   bt   v1t   v2(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_french_wilson.pyt   exercise_00   s&    !!

c       	   C   sT  t  j d d d d d d d d	 ƒ }  t |  j d
 d ƒ j ƒ  ƒ } | j ƒ  } | j d
 d ƒ } | j d | ƒ } | j d t	 j
 | j ƒ  d ƒ ƒ } | j ƒ  | j d | ƒ } t	 j
 | j ƒ  d ƒ | j ƒ  d } | j d | ƒ } y t j d | d t ƒ  ƒ } Wn t k
 rn Xt ‚ | j ƒ  j ƒ  } t j d | d t ƒ  ƒ } d S(   sG   
  Sanity check - don't crash when mean intensity for a bin is zero.
  t	   unit_celli2   iZ   t   space_group_symbolt   P1t   n_scatterersi°  t   elementsR   t   d_ming      ø?gffffffö?t   othert   datai    gš™™™™™¹?g¸…ëQ¸ž?t   sigmast   miller_arrayt   logN(   i2   i2   i2   iZ   iZ   iZ   (   R   t   xray_structuret   abst   structure_factorst   f_calct#   set_observation_type_xray_amplitudet   complete_sett   lone_sett   arrayR   R   t   sizet   concatenateR2   t   customized_copyR   t   french_wilson_scaleR   R   R   t	   f_as_f_sqt#   set_observation_type_xray_intensity(   t   xrst   fct   cst   lst   f_zerot   sigft   fc_fct   ic(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_french_wilson.pyt   exercise_01    s*    		$
&t   __main__t   OK(   t
   __future__R    t   cctbxR   t   cctbx.developmentR   t   scitbx.array_familyR   t   boost.pythont   boostt   pythont
   import_extR   t   libtbx.utilsR   R   t   libtbx.test_utilsR   R   R*   RL   t   __name__(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_french_wilson.pyt   <module>   s   		