ó
D™xTc           @   sd   d  d l  m Z d Z d „  Z d „  Z d „  Z e d k r` d  d l Z e d e j d	 ƒ n  d S(
   iÿÿÿÿ(   t   divisionsÒ  P 1
-0.13463, 0.5133, 0.41428
x,y,z

P -1
-1, -0.5, 0.5
-1,-1/2,1/2

F d d 2 (-x-y+z,2*x,2*y)
0.51827, 0, 0
x,0,0

C 1 2/c 1 (-x+y,z,2*x-z)
-0.36537, 0.75, 0.25
x,3/4,1/4

C m c a (z,x+y,2*y)
0, -0.20681, 0
0,y,0

C 1 2/c 1
0.5, -0.13463, 0.25
1/2,y,1/4

F d d 2
0, 0, 0.51827
0,0,z

F d d 2
-0.25, 0.25, 0.5133
-1/4,1/4,z

C m c 21
0, 0.41428, 0.8342
0,y,z

P m c n
0.25, 0.209, 0.2009
1/4,y,z

C 1 m 1
0.2479, 0, 0.8201
x,0,z

P 1 21/m 1
0.65486, 0.75, 0.46088
x,3/4,z

C 1 m 1 (z,x-y,2*y)
0.8201, -0.2479, 0
x,y,0

P 1 1 21/m
-0.65486, -0.46088, -0.75
x,y,-3/4

A b a 2 (y+z,2*z,x)
0.21585, 0.4317, 0
x,2*x,0

R -3 m :H
0.38797, 0.193985, -0.00711
x,1/2*x,z

F d d 2 (x+y+z,x+y-z,2*y)
-0.0133, 1.0133, 0.5
x,-x+1,1/2

I 4/m c m
0.85106, 0.35106, 0
x,x-1/2,0

C 1 2/c 1 (x+y,z,-2*y)
-0.29421, -0.25, 0.58842
x,-1/4,-2*x

C 1 2/m 1 (z,x-y,2*y)
0, -0.3019, -0.3962
0,y,-2*y-1

C 1 2/m 1 (z,x-y,x+y)
-0.5, 1.38934, 0.61066
-1/2,y,-y+2

F -4 3 m
0.10515, 0.05925, 0.10515
x,y,x

C m c 21 (-x+y,z,2*y)
0.148327, 0.5362, -0.703346
x,y,2*x-1

R -3 m :R
0.38086, -0.201095, -0.201095
x,y,y

C 1 2/m 1 (-z,x+y,2*x)
0.74518, 1.4919, 1.9838
x,y,2*y-1

C m c m (x+y,-x+y,z)
0.4689, 0.4689, 0.10868
x,x,z

C m c a (x+y,2*y,z)
-0.347957, 0.304086, -0.1964
x,2*x+1,z

P -4 b 2
0.88761, 0.61239, 0.5
x,-x+3/2,1/2

R -3 m :H (x+z,-y+z,-3*z)
0.3102, -0.1548, -0.0006
x,y,-x-2*y NO_FVAR

C 1 2/m 1 (-x+y,z,2*x-z)
-0.17213, -0.09996, 0.44422
x,y,-2*x-y NO_FVAR

C 1 2/m 1 (x+y,-x+y+z,z)
-0.06876, -0.216, -0.28476
x,y,x+y NO_FVAR

C 1 2/m 1 (-x+y,z,2*x-z)
-1.34469, 0.83463, 0.85475
x,y,-2*x-y-1 NO_FVAR

C 1 2/m 1 (-x+y,z,2*x-z)
-1.70949, 0.67904, 0.73994
x,y,-2*x-y-2 NO_FVAR

F -4 3 m (-x+y+z,x-y+z,x+y-z)
-0.151837, -0.001949, 0.576893
x,y,-1/2*x-1/2*y+1/2 NO_FVAR

C 1 2/m 1 (x+y,-x+y+z,z)
-0.3761, -0.8643, -0.2404
x,y,x+y+1 NO_FVAR

F -4 3 m (-x+y+z,x-y+z,x+y-z)
0.324012, 0.226578, 0.125398
x,y,-2*x-y+1 NO_FVAR

F -4 3 m (-x+y+z,x-y+z,x+y-z)
-0.384945, -0.110849, 0.247897
x,y,-1/2*x-1/2*y NO_FVAR

R -3 c :R
0.0639, 0.0639, 0.0639
x,x,x

F -4 3 m
0.208141, 0.208141, 0.291859
x,x,-x+1/2

F -4 3 m
0.1718, 0.3282, -0.1718
x,-x+1/2,-x

R -3 :H (x+z,-y+z,-3*z)
0.206827, -0.793173, 1.37952
x,x-1,-3*x+2 NO_FVAR

P 21 3
0.25347, 0.24653, 0.75347
x,-x+1/2,x+1/2 NO_FVAR

c          c   sç   d d l  m }  t j ƒ  } t | ƒ d d k s8 t ‚ x¨ t d t | ƒ d ƒ D]Ž } t | | d ƒ d k sw t ‚ | | d } | j d ƒ } | d k } | r³ | |  } n  |  d | | ƒ t | | d	 ƒ | | f VqQ Wd  S(
   Niÿÿÿÿ(   t   space_group_infoi   i    i   i   s    NO_FVARt   symboli   (	   t   cctbx.sgtbxR   t
   test_casest
   splitlinest   lent   AssertionErrort   xranget   findt   eval(   R   t   linest   it   exprt   jt   no_fvar(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_sgtbx_special_op_simplifier.pyt   test_case_generator®   s     c             sL  d d l  m }  d d l m ‰ d d l m ‰  m } d d  l } | j j	 d d ƒ rv d d l
 m } d d  l } n d  } |  j d d	 ƒ ‰ x·t ƒ  D]¬\ } } } } | j d
 d ƒ j ƒ  }	 |	 j | ƒ ‰ ˆ  ˆ j ƒ  | ƒ sì t ‚ ˆ j ƒ  }
 t |
 ƒ ‰ | ˆ | ƒ st ‚ ‡  ‡ ‡ ‡ ‡ f d †  } | | ƒ xJ t d ƒ D]< } ˆ j ƒ  ˆ j | ƒ ˆ j ˆ j ƒ  ƒ } | | ƒ qLWd  g } | d  k	 r˜ y ˆ j d | d | ƒ } Wn& | j j j k
 rå| só‚  qón X| sót ‚ | sD| d | d | ƒ \ } } |	 j ƒ  j  | | ƒ } | d k  sAt ‚ qDq˜ q˜ Wd  S(   Niÿÿÿÿ(   t   flex(   t   matrix(   t   approx_equalt	   show_difft   namet   iotbx(   t   decode_variablest   seedi    t   volumeiè  c            s±   t  t d |  ƒ ƒ } t ˆ | i  ƒ } ˆ  | |  d ƒ s? t ‚ ˆ j |  ƒ ˆ j ˆ j ƒ  ƒ } t  t d | ƒ ƒ } t ˆ | i  ƒ } ˆ j ƒ  | } ˆ  | | ƒ s­ t ‚ d  S(   Nt   xyzg-Cëâ6?(   t   dictt   zipR
   R   t   colt   random_double_point_on_spheret
   special_op(   t   sitet   nst	   expr_sitet   shifted_sitet   expr_shifted_sitet   expr_shifted_site_exact(   R   R   R   t   mtt   ss(    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_sgtbx_special_op_simplifier.pyt   checkÒ   s    "i   R    t   fvarst   free_variablet   coded_variablesg»½×Ùß|Û=(!   t   scitbx.array_familyR   t   scitbxR   t   libtbx.test_utilsR   R   t   libtbx.load_envt   envt
   has_modulet   iotbx.shelx.parsersR   t   iotbx.shelx.errorst   Nonet   mersenne_twisterR   t   any_compatible_crystal_symmetryt   special_position_settingst   site_symmetryt
   exact_siteR   t   special_op_simplifiedt   strR   R   R   R   t   shelx_fvar_encodingt   shelxt   errorst   errort	   unit_cellt   mod_short_distance(   R   R   t   libtbxR   R   t   sgiR    t   expected_exprR   t   spst   sosR(   t   i_trialR#   R)   R+   t   valuest	   behaviorst   mismatch(    (   R   R   R   R&   R'   s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_sgtbx_special_op_simplifier.pyt   exercise¿   sF    
	#	 
c         C   s(   t  |  ƒ d k s t ‚ t ƒ  d GHd  S(   Ni    t   OK(   R   R   RK   (   t   args(    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_sgtbx_special_op_simplifier.pyt   runð   s    t   __main__NRM   i   (	   t
   __future__R    R   R   RK   RN   t   __name__t   syst   argv(    (    (    s^   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_sgtbx_special_op_simplifier.pyt   <module>   s   «		1	