
    HR-e$                         d dl Zd dlZd dlmZ d dlmZmZmZ d dl	m
Z
mZmZ d dlmZ d Zd Zej                            dd	d
g          d             Zd Zd Zd Zd Zd Zd ZdS )    N)ascii)_get_lines_from_file_read_table_qdp_write_table_qdp)ColumnMaskedColumnTable)AstropyUserWarningc                 p   d}| dz  }t          |d          5 }t          ||           d d d            n# 1 swxY w Y   t          |j        ddgd          }|j        d	         d                             d
          sJ |j        d         d                             d          sJ t          |j        ddgd          }|j        d	         d                             d
          sJ |j        d         d                             d          sJ t          j        |d         d         d          sJ d S )Na  
    ! Swift/XRT hardness ratio of trigger: XXXX, name: BUBU X-2
    ! Columns are as labelled
    READ TERR 1
    READ SERR 2
    ! WT -- hard data
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   -0.212439       0.212439
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   0.000000        0.000000
    NO NO NO NO NO
    ! WT -- soft data
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   0.726155        0.583890
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   2.410935        1.393592
    NO NO NO NO NO
    ! WT -- hardness ratio
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   -0.292553       -0.374935
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   0.000000        -nan
    test.qdpwfileMJDRater   namestable_idinitial_commentsSwiftcommentszWT -- hard data   zWT -- hardnessMJD_nerrgTY)openprintr   namemeta
startswithnpisclose)tmp_pathexample_qdppathfptable0table2s         ?lib/python3.11/site-packages/astropy/io/ascii/tests/test_qdp.pytest_get_tables_from_qdp_filer(   
   s   K* j D	dC $Bk####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ RWUFOaHHHF;)*1-88AAAAA;z"1%001BCCCCCRWUFOaHHHF;)*1-88AAAAA;z"1%001ABBBBB:fZ(+-BCCCCCCCs   6::c                     g }|                                  D ]@}|                    d          s|                                }|                    |           Ad                    |          S )z'Make every non-comment line lower case.!
)
splitlinesr   lowerappendjoin)valuelineslines      r'   lowercase_headerr3   .   sj    E  ""  s## 	 ::<<DT99U    	lowercaseFTc                 J   d}|rt          |          }t          | dz            }t          | dz            }t          |d          5 }t          ||           d d d            n# 1 swxY w Y   t	          j        t                    5 }t          |ddgd	          }d d d            n# 1 swxY w Y   t          j	        d
 |D                       sJ t          ||           t          |ddgd	          }|j        D ]}	t          j        d ||	         D                       }
t          j	        |
          r-t          j                            ||	         |
                   sJ t          j        d ||	         D                       }t          j        ||	         |          ||	         |                    sJ t          j	        |          r"t          j        ||	         |                   sJ t          j        |d         ddg          sJ dD ]}||j        v sJ d S )Na   
    ! Swift/XRT hardness ratio of trigger: XXXX, name: BUBU X-2
    ! Columns are as labelled
    READ TERR 1
    READ SERR 2
    ! WT -- hard data
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   NO       0.212439
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   0.000000        0.000000
    NO NO NO NO NO
    ! WT -- soft data
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   0.726155        0.583890
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   2.410935        1.393592
    NO NO NO NO NO
    ! WT -- hardness ratio
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   -0.292553       -0.374935
    55045.099887 1.14467592592593e-05    -1.14467592592593e-05   0.000000        NO
    ! Add command, just to raise the warning.
    READ TERR 1
    ! WT -- whatever
    !MJD            Err (pos)       Err(neg)        Rate            Error
    53000.123456 2.37847222222222e-05    -2.37847222222222e-05   -0.292553       -0.374935
    NO 1.14467592592593e-05    -1.14467592592593e-05   0.000000        NO
    r   z	test2.qdpr   r   r   r   r   r   c                 6    g | ]}d |j         j        d         v S )z*This file contains multiple command blocksr   messageargs.0rs     r'   
<listcomp>z"test_roundtrip.<locals>.<listcomp>_   s6     	
 	
 	
 9AIN1<MM	
 	
 	
r4   c                 L    g | ]!}t           j                            |          "S  )r   ma	is_maskedr<   vals     r'   r>   z"test_roundtrip.<locals>.<listcomp>j   s&    MMMsbeooc22MMMr4   c                 v    g | ]6}t           j                            |           ot          j        |          7S r@   )r   rA   rB   isnanrC   s     r'   r>   z"test_roundtrip.<locals>.<listcomp>p   s6    TTTc"%//#&&&828C==TTTr4   MJD_perrgA>gݓn>)r   r   )r3   strr   r   pytestwarnsr
   r   r   anyr   colnamesarrayrA   rB   allcloserF   r   )r!   r5   r"   r#   path2r$   recordtable	new_tablecolrB   is_nan	meta_names                r'   test_roundtriprV   8   s   K4  4&{33x*$%%D;&''E	dC $Bk####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	(	)	) IVUFOaHHHI I I I I I I I I I I I I I I6	
 	
	
 	
 	
     UE"""eV_qIIII! 0 0HMMinMMMNN	6) 	:5??5:i#899999TTYs^TTT
 
 {9S>6'2E#Jw4GHHHHH6&>> 	08E#Jv./////;y,|].KLLLLL5 + +	IN*****+ +s$   A&&A*-A*
B++B/2B/c                     d} t          j        | ddg d          }t          j        | ddg d          }t          j        |d         dd	g          sJ |d
         d         dk    sJ t          j                            |d         d                   sJ t          j        |d         d                   sJ t          |	                                |	                                          D ]\  }}t          j        ||d          sJ d S )N  
        ! Initial comment line 1
        ! Initial comment line 2
        READ TERR 1
        READ SERR 3
        ! Table 0 comment
        !a a(pos) a(neg) b c ce d
        53000.5   0.25  -0.5   1  1.5  3.5 2
        54000.5   1.25  -1.5   2  2.5  4.5 3
        NO NO NO NO NO
        ! Table 1 comment
        !a a(pos) a(neg) b c ce d
        54000.5   2.25  -2.5   NO  3.5  5.5 5
        55000.5   3.25  -3.5   4  4.5  6.5 nan
        qdp   abcdformatr   r   	ascii.qdpr\   i  i  c_errr   g      @r]   r_   T	equal_nan)
r   readr	   r   rN   rA   rB   rF   zipitercols)r"   dattcol1col2s        r'   test_read_examplerm   }   s"   K *[BVBVBV
W
W
WC
K!;O;O;O	 	 	A ;qvu~.....W:a=C5??1S6!9%%%%%8AcF1I!**,,77 7 7
d{466666667 7r4   c                 X   d}| dz  }t          j        |ddg d          }|                    |dgdgd	           t          j        |g dd
          }t          |                                |                                          D ]\  }}t          j        ||d          sJ d S )NrX   r   rb   rZ   r[   r`      terrserr	err_specsr   r   Trd   r	   rf   writerg   rh   r   rN   r!   r"   	test_filerj   t2rk   rl   s          r'   test_roundtrip_examplerz      s    K :%I
K!;O;O;O	 	 	A GGI1#s!;!;G<<<	I%9%9%9A	F	F	FB!**,,66 7 7
d{466666667 7r4   c                 Z   d}| dz  }t          j        |ddg dd          }|                    |dgdgd	
           t          j        |g dd          }t          |                                |                                          D ]\  }}t          j        ||d          sJ d S )Na  
        ! Initial comment line 1
        ! Initial comment line 2
        READ TERR 1
        READ SERR 3
        ! Table 0 comment
        !a,a(pos),a(neg),b,c,ce,d
        53000.5,0.25,-0.5,1,1.5,3.5,2
        54000.5,1.25,-1.5,2,2.5,4.5,3
        NO,NO,NO,NO,NO
        ! Table 1 comment
        !a,a(pos),a(neg),b,c,ce,d
        54000.5,2.25,-2.5,NO,3.5,5.5,5
        55000.5,3.25,-3.5,4,4.5,6.5,nan
        r   rb   rZ   r[   ,)ra   r   r   sepro   rp   rs   r   r   Trd   ru   rw   s          r'   test_roundtrip_example_commar~      s    K :%I
K!;O;O;OUX	 	 	A GGI1#s!;!;G<<<	I%9%9%9A	F	F	FB !**,,66 7 7
d{466666667 7r4   c                    | dz  }t                      }|                    t          dg d                     |                    t          dt          j        ddgdg d	
                     |                    |d           t          j        t                    5 }t          j
        |d          }d d d            n# 1 swxY w Y   t	          j        d |D                       sJ t	          j        |d         |d                   sJ t	          j        |d         |d         k              sJ t	          j        |d                    }t	          j        |d         |         |d         |                   sJ d S )Nr   r\   )rZ   r   ro      r   datag      @g      @g      ?r]   )FFFT)r   r   maskrb   ra   c                 6    g | ]}d |j         j        d         v S )z9table_id not specified. Reading the first available tabler   r8   r;   s     r'   r>   z*test_read_write_simple.<locals>.<listcomp>   s<     	
 	
 	
  Hy~a !	
 	
 	
r4   rk   rl   )r	   
add_columnr   r   r   nanrv   rI   rJ   UserWarningrf   rK   rN   allrF   )r!   rx   t1rP   ry   goods         r'   test_read_write_simpler      s   :%I	BMM&c555666MMrvsC(s9T9T9T	
 	
 	
  
 HHY{H+++	k	"	" 7fZ	+6667 7 7 7 7 7 7 7 7 7 7 7 7 7 76	
 	
 	
 	
 	
     ;r&z2c7+++++6"V*3'(((((HRWD;r&z$'C7777777s   CC	Cc                 $   | dz  }t                      }|                    t          dg d                     |                    |d           t          j        |dddg          }t          j        |d         |d         k              sJ d S )	Nr   r\   )rZ   r   ro   r   rb   r   r   )r   ra   r   )r	   r   r   rv   rf   r   r   )r!   rx   r   ry   s       r'   #test_read_write_simple_specify_namer      s    :%I	BMM&c			222333HHY{H+++	I+cU	K	K	KB6"S'RW$%%%%%%%r4   c                    t          | dz            }d}t          |          }t          |d          5 }t          ||           d d d            n# 1 swxY w Y   t          |          }t          ddg          }t	          ddg          D ]/\  }}||         |k    sJ ||         |k    sJ ||         |k    sJ 0d S )Nr   zA
Br   r   AB)rH   r   r   r   	enumerate)	r!   rx   text_stringtext_outputfobjfile_outputlist_outputir2   s	            r'   test_get_lines_from_qdpr      s$   Hz)**IK&{33K	i		 &k%%%%& & & & & & & & & & & & & & &&y11K&Sz22Kc3Z(( & &41~%%%%1~%%%%1~%%%%%& &s   AAA)numpyr   rI   
astropy.ior   astropy.io.ascii.qdpr   r   r   astropy.tabler   r   r	   astropy.utils.exceptionsr
   r(   r3   markparametrizerV   rm   rz   r~   r   r   r   r@   r4   r'   <module>r      s6              X X X X X X X X X X 5 5 5 5 5 5 5 5 5 5 7 7 7 7 7 7!D !D !DH   udm44A+ A+ 54A+H7 7 7<7 7 787 7 7:8 8 86& & && & & & &r4   