ó
zûhPc           @   s‹   d  d l  Z  d  d l Z d  d l Z d d	 d „  ƒ  YZ d „  Z d „  Z d  d l Z e d k r‡ d e j f d „  ƒ  YZ	 e j
 ƒ  n  d S(
   iÿÿÿÿNt   modadd_tc           B   st   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   c         C   s‘   |  j  t | ƒ t | ƒ d d ƒ |  j | ƒ t j | ƒ |  _ t j | ƒ |  _ x7 t d t | ƒ ƒ D]  } |  j | c |  j | ;<qi Wd  S(   Nt   residuest   modulii    (   t   check_lengthst   lent   check_modulit   copyR   R   t   range(   t   selft   resarrayt   modarrayt   i(    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __init__   s    "c         C   s¤   |  j  t |  j ƒ t | j ƒ d d ƒ |  j |  j | j ƒ t |  j |  j ƒ } xJ t d t |  j ƒ ƒ D]0 } |  j | | j | | j | | j | <ql W| S(   NR   i    (   R   R   R   t   check_moduli_pairR    R   R   (   t   at   bt   cR   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __mul__   s    (.c         C   sm   t  |  j ƒ t  | j ƒ k r" d St  |  j ƒ } x5 t d | ƒ D]$ } |  j | | j | k rA d SqA Wd S(   Ni    i   (   R   R   R   (   R   R   t   nR   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __eq__$   s    c         C   s   |  | k S(   N(    (   R   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __ne__-   s    c         C   s\   t  |  j |  j ƒ } x@ t d t |  j ƒ ƒ D]& } |  j | |  j | | j | <q. W| S(   Ni    (   R    R   R   R   R   (   R   R   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   inv0   s    $c         C   s‘   t  j d | ƒ } |  j t | ƒ t | ƒ | | ƒ t | ƒ } t d | ƒ } x+ t d | ƒ D] } t | | ƒ | | <q_ W|  j | | ƒ d  S(   Nt   ,i    (   t   ret   splitR   R   R   t   intR   (   R   t
   res_stringt	   mod_arrayt   res_stringsR   t	   res_arrayR   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   scan6   s    c         C   sU   t  |  j d ƒ } x; t d t |  j ƒ ƒ D]! } | d t  |  j | ƒ 7} q, W| S(   Ni    i   R   (   t   strR   R   R   (   R   t   stringR   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __str__A   s    c         C   s
   |  j  ƒ  S(   N(   R!   (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   __repr__G   s    c         C   s0   | d k  r, | Gd Gt  | ƒ Gd GHt ‚ n  d  S(   Ni   t   lengths   < 1(   R   t   RuntimeError(   R   R#   t   desc(    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   check_lengthJ   s    c         C   s\   |  j  | | ƒ |  j  | | ƒ | | k rX | Gd Gt | ƒ Gd G| Gd G| GHt ‚ n  d  S(   NR#   s   !=(   R&   R   R$   (   R   t   len1t   len2t   desc1t   desc2(    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyR   O   s
    #c         C   sR   xK t  d t | ƒ ƒ D]4 } | | d k  r d G| | Gd G| GHt ‚ q q Wd  S(   Ni    i   t   Moduluss   < 1 in(   R   R   R$   (   R   t   modsR   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyR   V   s    c         C   s*   | | k r& d G| Gd G| GHt  ‚ n  d  S(   Ns   Mismatched modulis   , (   R$   (   R   t   mods1t   mods2(    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyR   \   s    (   t   __name__t
   __module__R   R   R   R   R   R   R!   R"   R&   R   R   R   (    (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyR       s   	
											c         C   s†   t  |  ƒ d k r' d GHt j d ƒ n  t j d |  ƒ } t  | ƒ } t d | ƒ } x+ t d | ƒ D] } t | | ƒ | | <qd W| S(   Ni    s*   Modadd requires non-empty parameter stringi   R   (   R   t   syst   exitR   R   R   R   (   t   params_stringt   mod_stringsR   R   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   params_from_stringa   s    c         C   s5   t  | ƒ } t d g d g ƒ } | j |  | ƒ | S(   Ni   (   R5   R    R   (   t   value_stringR3   R   t   obj(    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   from_stringl   s    t   __main__t
   test_casesc           B   s†   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___init__x   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___mul__{   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___eq__~   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___ne__   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_inv„   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt	   test_scan‡   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___str__Š   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test___repr__   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_check_length   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_check_lengths“   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_check_moduli–   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_check_moduli_pair™   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_params_from_stringœ   s    c         C   s   d  S(   N(    (   R   (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   test_from_stringŸ   s    (   R/   R0   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   (    (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyR:   w   s   													(    (   R1   R   R   R    R5   R8   t   unittestR/   t   TestCaseR:   t   main(    (    (    sG   /homepages/25/d321765456/htdocs/pub_http_internet/src/sack/modadd_tm.pyt   <module>   s   P		,