ó
°™xTc           @   s  d  d l  m Z d  d l m Z d  d l Z d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ	 e j
 ƒ  j e ƒ Z e j
 ƒ  j e ƒ Z e j
 ƒ  j e	 ƒ Z e j e e e g ƒ Z d „  Z e d k re j d d ƒ j e ƒ n  d S(   iÿÿÿÿ(   t   division(   t	   primitiveNt   GeometryTestCasec           B   s   e  Z d  „  Z RS(   c         C   sS   |  j  t | ƒ t | ƒ ƒ x0 t | | ƒ D] \ } } |  j | | | ƒ q, Wd  S(   N(   t   assertEqualt   lent   zipt   assertAlmostEqual(   t   selft   leftt   rightt   digitst   e_leftt   e_right(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   assertCoordinatesAlmostEqual	   s    (   t   __name__t
   __module__R   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR      s   t
   TestSpherec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s7   d |  _  d |  _ t j d |  j  d |  j ƒ |  _ d  S(   Ngš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@t   centret   radius(   gš™™™™™ñ?gš™™™™™@gffffff
@(   R   R   R   t   sphere(   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   setUp   s    		c         C   s    |  j  |  j j |  j d ƒ d  S(   Ni   (   R   R   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_radius   s    c         C   s$   |  j  |  j j |  j d d ƒ d  S(   Ni   i   (   R   R   t	   radius_sqR   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_radius_sq   s    c         C   s    |  j  |  j j |  j d ƒ d  S(   Ni   (   R   R   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_centre#   s    (   R   R   R   R   R   R   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR      s   			t   TestBoxc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s�  d } d } t  j j d | d | ƒ } |  j d	 | j d
 d ƒ |  j d	 | j d
 d ƒ d d g } d d g } d d g } d d  l } xñ | j | | | ƒ D]Ú \ } }	 }
 t  j j d | |	 |
 f d |  j d | d | ƒ |  j d | d |	 ƒ |  j d | d |
 ƒ f ƒ } |  j d	 | j d
 t	 | ƒ t	 | ƒ t	 | ƒ f ƒ |  j d	 | j d
 t
 | ƒ t
 | ƒ t
 | ƒ f ƒ qŸ Wd  S(   Ngš™™™™™ñ?g333333@g333333@gÍÌÌÌÌÌô?gš™™™™™@gffffff
@t   corner1t   corner2t   callt   expectedi   i   i   i   i   i   iÿÿÿÿt   arrayt   current(   gš™™™™™ñ?g333333@g333333@(   gÍÌÌÌÌÌô?gš™™™™™@gffffff
@(   gš™™™™™ñ?gš™™™™™@gffffff
@(   gÍÌÌÌÌÌô?g333333@g333333@(   R   t   boxt   from_cornerst   checkt   lowt   hight	   itertoolst   productt   select_othert   mint   max(   R   R   R   R    t   xst   yst   zsR%   t   xt   yt   z(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_from_corners*   s"    %4c         C   s]   t  | ƒ d k s t ‚ g  | D] } | | k r | ^ q } t  | ƒ d k sU t ‚ | d S(   Ni   i   i    (   R   t   AssertionError(   R   R   R   t   vt	   remaining(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR'   E   s    %c         C   s‹   d	 } d } t  j j d | d | ƒ } |  j d | j d g  | D] } | | ^ q@ ƒ |  j d | j d g  | D] } | | ^ qp ƒ d  S(
   Ngš™™™™™ñ?g333333@g333333@gš™™™™™@R   R   R   R   (   gš™™™™™ñ?g333333@g333333@(   R   R    t   around_sphereR"   R#   R$   (   R   R   R   R    R2   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_around_sphereM   s
    0c         C   s   |  j  | | d ƒ d  S(   Ni   (   R   (   R   R   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR"   V   s    (   R   R   R0   R'   R5   R"   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR   (   s   				t   TestBSpherec           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s7   d |  _  d |  _ t j d |  j  d |  j ƒ |  _ d  S(   Ngš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@R   R   (   gš™™™™™ñ?gš™™™™™@gffffff
@(   R   R   R   t   bsphere(   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR   ]   s
    				c         C   s    |  j  |  j j |  j d ƒ d  S(   Ni   (   R   R7   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR   f   s    c         C   s$   |  j  |  j j |  j d d ƒ d  S(   Ni   i   (   R   R7   R   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR   k   s    c         C   s    |  j  |  j j |  j d ƒ d  S(   Ni   (   R   R7   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR   p   s    c         C   sv   |  j  d |  j j d g  |  j D] } | |  j ^ q ƒ |  j  d |  j j d g  |  j D] } | |  j ^ qX ƒ d  S(   NR   R   (   R"   R7   R#   R   R   R$   (   R   R2   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   test_cornersu   s    	$	c         C   s   |  j  | | d ƒ d  S(   Ni   (   R   (   R   R   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR"   �   s    (   R   R   R   R   R   R   R8   R"   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyR6   [   s   						c         C   s   t  S(   N(   t   alltests(   t   loadert   testst   pattern(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt
   load_tests™   s    t   __main__t	   verbosityi   (   t
   __future__R    t   mmtbx.geometryR   t   unittestt   TestCaseR   R   R   R6   t
   TestLoadert   loadTestsFromTestCaset   suite_spheret	   suite_boxt   suite_bspheret	   TestSuiteR9   R=   R   t   TextTestRunnert   run(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_primitive.pyt   <module>   s&   
3+				