a
    ˜ùhPÙ  ã                   @   sT   d dl Z G dd„ dƒZdd„ Zdd„ Zd dlZedkrPG d	d
„ d
ejƒZe ¡  dS )é    Nc                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )Údih_tc                 C   s    || _ || j  | _|d@ | _d S )Né   )ÚnÚrotÚflip)ÚselfZargrotZargflipÚargn© r	   úP/homepages/25/d321765456/htdocs/pub_http_internet/grad-school/src/sack/dih_tm.pyÚ__init__   s    zdih_t.__init__c                 C   s   | j |j ko| j|jkS ©N)r   r   ©ÚaÚbr	   r	   r
   Ú__eq__   s    zdih_t.__eq__c                 C   s
   | |k S r   r	   r   r	   r	   r
   Ú__ne__   s    zdih_t.__ne__c                 C   sJ   | j |j krt‚| jr$| j|j }n| j|j }t|| j|jA | j ƒ}|S r   )r   ÚRuntimeErrorr   r   r   )r   r   ZcrotÚcr	   r	   r
   Ú__mul__   s    zdih_t.__mul__c                 C   s<   | j rt| j| j | jƒ}|S t| j| j | j | jƒ}|S d S r   )r   r   r   r   )r   r   r	   r	   r
   Úinv&   s
    z	dih_t.invc                 C   sB   t  d|¡ ¡ }t|ƒdkr t‚|  t|d ƒt|d ƒ|¡ d S )Nz^(\d)+,(\d+)$é   r   r   )ÚreÚmatchÚgroupsÚlenÚIOErrorr   Úint)r   Ústringr   r   r	   r	   r
   Úscan.   s    z
dih_t.scanc                 C   s   t | jƒd t | jƒ S )Nú,)Ústrr   r   ©r   r	   r	   r
   Ú__str__4   s    zdih_t.__str__c                 C   s   |   ¡ S r   )r"   r!   r	   r	   r
   Ú__repr__7   s    zdih_t.__repr__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r"   r#   r	   r	   r	   r
   r      s   
r   c                 C   s   t | ƒ}|S r   )r   )Úparams_stringr   r	   r	   r
   Úparams_from_string:   s    r(   c                 C   s$   t |ƒ}tdd|ƒ}| | |¡ |S )Nr   )r(   r   r   )Zvalue_stringr'   r   Úobjr	   r	   r
   Úfrom_string>   s    r*   Ú__main__c                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )Ú
test_casesc                 C   s   d S r   r	   r!   r	   r	   r
   Útest___init__J   s    ztest_cases.test___init__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest___eq__M   s    ztest_cases.test___eq__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest___ne__P   s    ztest_cases.test___ne__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest___mul__S   s    ztest_cases.test___mul__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest_invV   s    ztest_cases.test_invc                 C   s   d S r   r	   r!   r	   r	   r
   Ú	test_scanY   s    ztest_cases.test_scanc                 C   s   d S r   r	   r!   r	   r	   r
   Útest___str__\   s    ztest_cases.test___str__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest___repr___   s    ztest_cases.test___repr__c                 C   s   d S r   r	   r!   r	   r	   r
   Útest_params_from_stringb   s    z"test_cases.test_params_from_stringc                 C   s   d S r   r	   r!   r	   r	   r
   Útest_from_stringe   s    ztest_cases.test_from_stringN)r$   r%   r&   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r	   r	   r	   r
   r,   I   s   r,   )	r   r   r(   r*   Zunittestr$   ZTestCaser,   Úmainr	   r	   r	   r
   Ú<module>   s   + 