a
    jhP                     @   s\   d dl Z d dlZG dd dZdd Zdd Zd dlZedkrXG 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d Zdd Zdd Zdd ZdS )cl2m_tc                 C   s"   || _ |d|> d @ | _|| _d S N   signbitsn)selfr   r   r    r
   Q/homepages/25/d321765456/htdocs/pub_http_internet/grad-school/src/sack/cl2m_tm.py__init__    s    zcl2m_t.__init__c                 C   sp   t | j|j | j|jA | j}td|jD ]@}|j|? d@ r*t|| jD ] }| j|? d@ rH| jd9  _qHq*|S )Nr   r   )r   r   r   r   range)abcjir
   r
   r   __mul__%   s    zcl2m_t.__mul__c                 C   s$   | j |j ko"| j|jko"| j|jkS Nr   r   r   r
   r
   r   __eq__0   s    zcl2m_t.__eq__c                 C   s
   | |k S r   r
   r   r
   r
   r   __ne__3   s    zcl2m_t.__ne__c                 C   s   | j |j k rdS | j|jkS r   r   r   r   r
   r
   r   __lt__6   s    zcl2m_t.__lt__c                 C   s   | j |j krdS | j|jkS r   r   r   r
   r
   r   __le__:   s    zcl2m_t.__le__c                 C   s   | j |j krdS | j|jk S r   r   r   r
   r
   r   __gt__>   s    zcl2m_t.__gt__c                 C   s   | j |j krdS | j|jkS r   r   r   r
   r
   r   __ge__B   s    zcl2m_t.__ge__c                 C   s   t  | }|S r   )copy)r   r   r
   r
   r   invG   s    
z
cl2m_t.invc                 C   s   |  ddd d S )Nr   r      )r   IOError)r	   Zstringr
   r
   r   scanK   s    zcl2m_t.scanc                 C   s>   d}| j dk rd}td| jD ]}|t| j|? d@ 7 }q|S )N+r   -r   )r   r   r   strr   )r	   Zrvr   r
   r
   r   __str__Q   s    
zcl2m_t.__str__c                 C   s   |   S r   )r&   r	   r
   r
   r   __repr__Y   s    zcl2m_t.__repr__N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r"   r&   r(   r
   r
   r
   r   r      s   r   c                 C   s   t | }|S r   )int)params_stringr   r
   r
   r   params_from_string\   s    r.   c                 C   s"   t |}tdd|}||  |S )Nr   r   )r.   r   r"   )Zvalue_stringr-   r   objr
   r
   r   from_string`   s    
r0   __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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__q   s    ztest_cases.test___init__c                 C   s   d S r   r
   r'   r
   r
   r   test___mul__t   s    ztest_cases.test___mul__c                 C   s   d S r   r
   r'   r
   r
   r   test___eq__w   s    ztest_cases.test___eq__c                 C   s   d S r   r
   r'   r
   r
   r   test___ne__z   s    ztest_cases.test___ne__c                 C   s   d S r   r
   r'   r
   r
   r   test___lt__}   s    ztest_cases.test___lt__c                 C   s   d S r   r
   r'   r
   r
   r   test___le__   s    ztest_cases.test___le__c                 C   s   d S r   r
   r'   r
   r
   r   test___gt__   s    ztest_cases.test___gt__c                 C   s   d S r   r
   r'   r
   r
   r   test___ge__   s    ztest_cases.test___ge__c                 C   s   d S r   r
   r'   r
   r
   r   test_inv   s    ztest_cases.test_invc                 C   s   d S r   r
   r'   r
   r
   r   	test_scan   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_string   s    z"test_cases.test_params_from_stringc                 C   s   d S r   r
   r'   r
   r
   r   test_from_string   s    ztest_cases.test_from_stringN)r)   r*   r+   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r
   r
   r
   r   r2   p   s   r2   )
rer   r   r.   r0   Zunittestr)   ZTestCaser2   mainr
   r
   r
   r   <module>   s   >,