ó
°™xTc           @   s§  d  d l  m Z d  d l m Z d  d l Z d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d	 „  ƒ  YZ	 d
 e j f d „  ƒ  YZ
 d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d e j f d „  ƒ  YZ e j ƒ  j e ƒ Z e j ƒ  j e	 ƒ Z e j ƒ  j e
 ƒ Z e j ƒ  j e ƒ Z e j ƒ  j e ƒ Z e j e e e e e g ƒ Z d „  Z e d k r£e j d d ƒ j e ƒ n  d S(   iÿÿÿÿ(   t   division(   t   altlocNt   TestVisitorc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   g  |  _  g  |  _ d  S(   N(   t   regular_callst   altloc_calls(   t   self(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   __init__	   s    	c         C   s   |  j  j | | f ƒ d  S(   N(   R   t   append(   R   t   datat   coordinates(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   process_regular   s    c         C   s   |  j  j | | | f ƒ d  S(   N(   R   R   (   R   R   R	   t
   identifier(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   process_altloc   s    (   t   __name__t
   __module__R   R
   R   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR      s   		t   TestStrategiesc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s(   t  ƒ  |  _ t  ƒ  |  _ t ƒ  |  _ d  S(   N(   t   objectR   t   coordsR   t	   processor(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   setUp   s    c         C   sd   t  j d |  j d |  j d |  j ƒ |  j |  j j |  j |  j f g ƒ |  j |  j j g  ƒ d  S(   NR   R	   R   (   R   t   EmptyR   R   R   t   assertEqualR   R   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt
   test_empty"   s    			
%c         C   s   t  ƒ  } t j d | ƒ } | d |  j d |  j d |  j ƒ |  j |  j j g  ƒ |  j |  j j |  j |  j | f g ƒ d  S(   NR   R   R	   R   (	   R   R   t	   AlternateR   R   R   R   R   R   (   R   R   t   strategy(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_altloc-   s
    	"(   R   R   R   R   R   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR      s   		t   TestDescriptionc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s(   t  ƒ  |  _ t  ƒ  |  _ t ƒ  |  _ d  S(   N(   R   R   R   R   R   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   8   s    c         C   sÆ   t  j d |  j d |  j d d  ƒ } |  j | j t  j ƒ t  j d |  j d |  j d d ƒ } |  j | j t  j ƒ | j d |  j	 ƒ |  j |  j	 j
 |  j |  j f g ƒ |  j |  j	 j g  ƒ d  S(   NR   R	   t   altidt    R   (   R   t   DescriptionR   R   t   NoneR   R   R   t   acceptR   R   R   (   R   t   description(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   ?   s    								%c         C   s´   t  ƒ  } t j d |  j d |  j d | ƒ } |  j t | j t j ƒ ƒ |  j	 | j j
 | ƒ | j d |  j ƒ |  j	 |  j j g  ƒ |  j	 |  j j |  j |  j | f g ƒ d  S(   NR   R	   R   R   (   R   R   R   R   R   t
   assertTruet
   isinstanceR   R   R   R   R   R   R   R   (   R   R   R    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt
   test_altocR   s    					(   R   R   R   R   R#   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   6   s   		t   TestIndexerc           B   s   e  Z d  „  Z RS(   c         C   sª   d „  } t  j d | ƒ } |  j t | j t ƒ ƒ |  j | j | ƒ |  j | j i  ƒ t ƒ  } | j	 d | ƒ |  j | | j k ƒ |  j t | j | t ƒ ƒ d  S(   Nc           S   s   t  ƒ  S(   N(   R   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   <lambda>e   s    t   factoryR   (
   R   t   IndexerR!   R"   t   regularR   R   R&   t   altlocst   add(   R   R&   t   indexerR   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_1c   s    		(   R   R   R,   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR$   a   s   t   FakeIndexerc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   t   calls(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   t   s    c         C   s   |  j  j | | f ƒ d  S(   N(   R.   R   (   R   R   t   position(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR*   y   s    (   R   R   R   R*   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR-   r   s   	t   TestInserterc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s%   t  j d t  j d t ƒ ƒ |  _ d  S(   NR+   R&   (   R   t   InserterR'   R-   t   inserter(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   €   s    c         C   s9   |  j  |  j j j j g  ƒ |  j  |  j j j i  ƒ d  S(   N(   R   R2   R+   R(   R.   R)   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt
   test_basic…   s    c         C   sß   t  ƒ  } t  ƒ  } |  j j d | d | ƒ |  j |  j j j j | | f g ƒ |  j |  j j j i  ƒ t  ƒ  } t  ƒ  } |  j j d | d | ƒ |  j |  j j j j | | f | | f g ƒ |  j |  j j j i  ƒ d  S(   NR   R	   (   R   R2   R
   R   R+   R(   R.   R)   (   R   t   obj1t   coords1t   obj2t   coords2(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_regular‹   s    		%		c         C   s<  t  ƒ  } t  ƒ  } t  ƒ  } |  j j d | d | d | ƒ |  j |  j j j j g  ƒ |  j t |  j j j ƒ d ƒ |  j	 | |  j j j k ƒ |  j |  j j j | j | | f g ƒ t  ƒ  } t  ƒ  } |  j j d | d | d | ƒ |  j |  j j j j g  ƒ |  j t |  j j j ƒ d ƒ |  j	 | |  j j j k ƒ |  j |  j j j | j | | f | | f g ƒ t  ƒ  } |  j j d | d | d | ƒ |  j |  j j j j g  ƒ |  j t |  j j j ƒ d ƒ |  j	 | |  j j j k ƒ |  j	 | |  j j j k ƒ |  j |  j j j | j | | f g ƒ d  S(   NR   R	   R   i   i   (
   R   R2   R   R   R+   R(   R.   t   lenR)   R!   (   R   R4   R5   t   altid1R6   R7   t   altid2(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt
   test_altid�   s8    						(   R   R   R   R3   R8   R<   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR0   ~   s   			t   FakeIndexer2c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   t   objects(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   Ä   s    c         C   s   |  j  j | ƒ d  S(   N(   R>   t   extend(   R   R>   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   add_toÉ   s    c         C   s   |  j  S(   N(   R>   (   R   t   centre(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   close_toÎ   s    (   R   R   R   R@   RB   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR=   Â   s   		t   TestAggregatorc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sæ   t  ƒ  t  ƒ  t  ƒ  g |  _ t  ƒ  t  ƒ  t  ƒ  t  ƒ  g |  _ t  ƒ  t  ƒ  g |  _ t j d t ƒ } | j j d |  j ƒ | j d d ƒ | j	 d j d |  j ƒ | j d d ƒ | j	 d j d |  j ƒ t j
 d | ƒ |  _ d  S(   NR&   R>   R   t   At   BR+   (   R   R(   t   altloc_at   altloc_bR   R'   R=   R@   R*   R)   t
   Aggregatort
   aggregator(   R   R+   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR   Õ   s    !c         C   s6   |  j  |  j j g  ƒ |  j  t |  j j ƒ g  ƒ d  S(   N(   R   RI   t   rangest   listt   entities(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR3   â   s    c         C   sË   |  j  j d t ƒ  d t ƒ  ƒ |  j |  j  j |  j |  j |  j g k pj |  j  j |  j |  j |  j g k ƒ |  j t |  j  j	 ƒ |  j |  j |  j k pÃ t |  j  j	 ƒ |  j |  j |  j k ƒ d  S(   NR   R	   (
   RI   R
   R   R!   RJ   R(   RF   RG   RK   RL   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyR8   è   s    $%)c         C   sq   |  j  j d t ƒ  d t ƒ  d d ƒ |  j |  j  j |  j |  j g ƒ |  j t |  j  j ƒ |  j |  j ƒ d  S(   NR   R	   R   RD   (	   RI   R   R   R   RJ   R(   RF   RK   RL   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_altid_aö   s    		"c         C   sq   |  j  j d t ƒ  d t ƒ  d d ƒ |  j |  j  j |  j |  j g ƒ |  j t |  j  j ƒ |  j |  j ƒ d  S(   NR   R	   R   RE   (	   RI   R   R   R   RJ   R(   RG   RK   RL   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_altid_b  s    		"c         C   sd   |  j  j d t ƒ  d t ƒ  d d ƒ |  j |  j  j |  j g ƒ |  j t |  j  j ƒ |  j ƒ d  S(   NR   R	   R   t   C(   RI   R   R   R   RJ   R(   RK   RL   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   test_altid_c  s    		(   R   R   R   R3   R8   RM   RN   RP   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyRC   Ó   s   					c         C   s   t  S(   N(   t   alltests(   t   loadert   testst   pattern(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt
   load_tests5  s    t   __main__t	   verbosityi   (   t
   __future__R    t   mmtbx.geometryR   t   unittestR   R   t   TestCaseR   R   R$   R-   R0   R=   RC   t
   TestLoadert   loadTestsFromTestCaset   suite_strategiest   suite_descriptiont   suite_indexert   suite_insertert   suite_aggregatort	   TestSuiteRQ   RU   R   t   TextTestRunnert   run(    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry/tests/tst_altloc.pyt   <module>   s:   +DG						