B
    td                 @   s   d dl mZ d dlZd dlmZ d4ddZdd Zejd	d
dg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(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 ZdS )5    )IntegralN)LIGOTimeGPS   c             C   s0   t t| | |dkrd S td| ||d S )Nr   z{} != {} within {} places)roundabsAssertionErrorformat)abZplaces r   i/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/ligotimegps/test_ligotimegps.pyalmost_equal   s    r   c              C   s"  t d} t| t st| jdks$t| jdks2t| jdks@t| jdksNtt dd} | jdksft| jdksttt d} | jdkst| jdkstt | }| |kstt d} | jdkst| jdkstt d	d
} | jdkst| jdkstt d} | jdkst| jdkstd S )N   r   d      gx&1?i z1.234i1Z234   z1.2345678987654321e9iIi$-)r   
isinstancer   secondsZ
gpsSecondsnanosecondsZgpsNanoSeconds)r	   r
   r   r   r   test_creation    s.    

r   zinput_, errstr)testz%invalid literal for LIGOTimeGPS: test)Nz-cannot convert None (NoneType) to LIGOTimeGPSc          	   C   s4   t t}t|  W d Q R X t|j|ks0td S )N)pytestraises	TypeErrorr   strvaluer   )Zinput_Zerrstrerrr   r   r   test_creation_errorsB   s    r   c               C   s   t tddkstt tdddks*tt tdddks@tt tdddksVtt tdddksltt td	dd
kstd S )Nr   r   z1.000000001r   z100.000000001z100.0000001iz-99.9999999z
-0.9999999)r   r   r   r   r   r   r   test_strL   s    r    c               C   s   t tddkstd S )Nr   zLIGOTimeGPS(1, 0))reprr   r   r   r   r   r   	test_reprU   s    r"   c              C   s*   t td} t| t st| dks&td S )Nr   g      ?)floatr   r   r   )fr   r   r   
test_floatY   s    r%   c              C   s,   t tdd} t| t st| dks(td S )Nr   r   )intr   r   r   )ir   r   r   test_int_   s    r(   c              C   s,   t dd } t| tst| dks(td S )Ni90  i2	 l   2,)r   nsr   r   r   )nr   r   r   test_nse   s    r+   c               C   s@   t dt dkstt dt dks(tt dt dks<td S )Nr      guk~T4oA)r   r   r   r   r   r   test_eq_neql   s    r-   c               C   s   t dt dk stt ddk s$tt ddt ddk s<tt dt dksPtt ddks`tt dt dksttt ddkstdt dkstt dt dkstt dt dkstt ddkstdt dkstt dt dkstd S )Nr   r,   r   i,  )r   r   r   r   r   r   
test_lt_gtt   s    r.   c              C   s,   t tdd} t| tst| dks(td S )N{   i  i  )hashr   r   r&   r   )hr   r   r   	test_hash   s    r2   c               C   sX   t tddkstt tdddks*tt tddks>tt tdddksTtd S )Nr   Fi  Tr   r   )boolr   r   r   r   r   r   	test_bool   s    r4   c              C   s   t dd} t| }t|t s t|dks,ttt dddksBtt| d}t|t sZt|dksftt| dt ddks~td S )	Ni90  i2	 i ei:0  r   g    @r   i<	 )r   r   r   r   )r	   r
   r   r   r   
test_round   s    

r5   c              C   s   t dt d } t| t st| dks*tt dd }t|t sDt| |ksPtdt d }t|t sjt| |ksvtdt dd } | dkstd S )Nr   r,      gw/^@i  i;gq=
ף#@)r   r   r   )r	   r
   cr   r   r   test_add   s    r8   c              C   sz   t dt d } t| t st| dks*tt dd }t| t sDt| dksPtdt d }t|t sjt|dksvtd S )Nr,   r   )r   r   r   )r	   r
   r7   r   r   r   test_sub   s    r9   c              C   s   t dt d } t| t st| dks*tt dd }t|t sDt| |ksPtdt d }t|t sjt| |ksvtt ddt dd }t|d t d	d
d dksttt ddd d d S )Nr,      
   r/   i .r   i!gG@ii:gâni    gA`Т~@)r   r   r   r   )r	   r
   r7   dr   r   r   test_mul   s    
r>   c           	   C   s   t dt d } t| t st| dks*tt dd }t|t sDt| |ksPttt dt d  W d Q R X t ddd }t|d d S )	Nr;   r:   r,   g      @r/   i:gS!	@g"SC@)r   r   r   r   r   r   r   )r	   r
   r=   r   r   r   test_div   s    r?   c               C   s   t dd dkstd S )Ng      Y@r6   g      ?)r   r   r   r   r   r   test_mod   s    r@   c              C   s   t dd} | | 
 kstd S )Nr   r   )r   r   )r	   r   r   r   test_pos   s    
rA   c              C   s"   t dd} |  t ddkstd S )Nr   r   iɚ;)r   r   )r	   r   r   r   test_neg   s    
rC   c              C   s0   t dd} t| | kstt|  | ks,td S )Nr/   iU )r   r   r   )r	   r   r   r   test_abs   s    
rD   c               C   sX   t dtdk stt dtd ks*tt dtdks>tt dtd ksTtd S )Nr   inf)r   r#   r   r   r   r   r   test_infinity  s    rF   )r   )numbersr   r   Zligotimegpsr   r   r   markZparametrizer   r    r"   r%   r(   r+   r-   r.   r2   r4   r5   r8   r9   r>   r?   r@   rA   rC   rD   rF   r   r   r   r   <module>   s4   
"	