
    IR-e                        d dl Zd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZ ddlmZ d	d
gZere                    d            G d d          Z G d de          Z G d de          Z G d dee          ZdS )    N)assert_array_equal)units)QTablehstackjoinvstack)HAS_H5PY)Masked   )assert_masked_equalecsvfitsh5c                   :    e Zd Zed             Zed             ZdS )MaskedArrayTableSetupc                 r    t          j        g d          | _        t          j        g d          | _        d S N)g      @g      @g        TFF)nparrayamask_aselfs    Elib/python3.11/site-packages/astropy/utils/masked/tests/test_table.pysetup_arraysz"MaskedArrayTableSetup.setup_arrays   s3    ///**h33344    c                     |                                   t          | j        | j                  | _        d| j        j        _        t          | j        gdg          | _        d S )N)maskz.1fma)names)	r   r
   r   r   r    infoformatr   tr   s    r   setup_classz!MaskedArrayTableSetup.setup_class   sV    dk222#	$000r   N)__name__
__module____qualname__classmethodr   r%    r   r   r   r      sH        5 5 [5 1 1 [1 1 1r   r   c                   $    e Zd Zed             ZdS )MaskedQuantityTableSetupc                     t          j        g d          t          j        z  | _        t          j        g d          | _        d S r   )r   r   umr   r   r   s    r   r   z%MaskedQuantityTableSetup.setup_arrays"   s:    ///**ac1h33344r   N)r&   r'   r(   r)   r   r*   r   r   r,   r,   !   s-        5 5 [5 5 5r   r,   c                       e Zd Zd Zd Zej                            de          d             Z	ej                            dddg          d             Z
d	 Zd
S )TestMaskedArrayTablec                    t          | j        d         j        | j                   t          | j        d         j        | j                   t          | j                                                  dd          g dk    sJ d S )Nr    )       ———z    5.0z    0.0)r   r$   unmaskedr   r   r   repr
splitlinesr   s    r   test_table_initializationz.TestMaskedArrayTable.test_table_initialization)   s    46$<0$&99946$<,dk:::DF||&&((- 2
 2
 2
 
 
 
 
 
 
r   c                 4   | j         d         j        j        dk    sJ d| j         d         j        j        v sJ | j                                         }d|d         j        _        d|d         j        j        d<   t          |                                          dd          g dk    sJ |d d         }|d         j        j        dk    sJ |d         j        j        dk    sJ d|d         j        j        v sJ |d         j        j        d         dk    sJ d S )	Nr    serialize_methodz.2fnonsenser   r3   )r4   z   5.00z   0.00   )	r$   r"   name
attr_namescopyr#   r:   r6   r7   )r   t2t3s      r   test_info_basicsz%TestMaskedArrayTable.test_info_basics2   s/   vd| %----!TVD\%6%AAAAAV[[]]$41;4&v.Bxx""$$RSS) .
 .
 .
 
 
 
 
 V$x}!T))))$x}#u,,,,!RX]%=====$x}-f5CCCCCCr   file_formatc                 *   |d| z  }i }|dk    r
d|d<   d|d<    | j         j        |fi | t          j        |          }t	          |d         | j        j                  sJ t          j        |d         | j        k              sJ t          j        |d         j	        | j
        k              sJ |dk    r-| j         d         j        j        |d         j        j        v sJ d S |d         j        j        | j         d         j        j        k    sJ d S )	Nza.r   trialpathTserialize_metar    r   )r$   writer   read
isinstancer    	__class__r   allr   r   r"   r#   )r   rC   tmp_pathr=   kwargsr@   s         r   test_table_writez%TestMaskedArrayTable.test_table_writeD   s*   ,{,,,$$F6N'+F#$T$$V$$$["T(DG$566666vbh$')*****vbhmt{233333&  6$<$+r$x}/CCCCCCCd8='46$<+<+CCCCCCCr   r:   	data_mask
null_valuec                    |dz  }| j                             ||           t          |          5 }|                                }d d d            n# 1 swxY w Y   t	          j        |          }t          |d         | j        j                  sJ |dk    rJt          |d         
                                          dk    sJ t          |d         | j                   d S t          |d         
                                          dk    sJ t          j        |d         | j        k              sJ t          j        |d         j        | j        k              sJ d S )Nz	test.ecsvr:   r    rP   r<   r   )r$   rH   open	readlinesr   rI   rJ   r    rK   lensplitr   r   rL   r   r   )r   r:   rM   r=   fhlinesr@   s          r   test_table_write_serializationz3TestMaskedArrayTable.test_table_write_serializationW   s   +%T,<===$ZZ 	#2LLNNE	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ["T(DG$566666{** uRy(())Q....4$'22222 uRy(())Q....6"T(dg-.....6"T(-4;67777777s   AAAc                     |dz  }t          j        t          d          5  | j                            |d           d d d            d S # 1 swxY w Y   d S )Nzbad.ecsvzserialize method must be)matchbad_serialize_methodrS   )pytestraises
ValueErrorr$   rH   )r   rM   r=   s      r   "test_non_existing_serialize_methodz7TestMaskedArrayTable.test_non_existing_serialize_methodm   s    *$]:-GHHH 	H 	HFLL0FLGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AAAN)r&   r'   r(   r8   rB   r_   markparametrizeFILE_FORMATSrO   r[   rb   r*   r   r   r1   r1   (   s        
 
 
D D D$ []L99D D :9D$ [/+|1LMM8 8 NM8*H H H H Hr   r1   c                       e Zd Zd Zd ZdS )TestMaskedQuantityTablec                    | j         }t          dt          ddgt          j        z            i          }t          ||gd          }t          j        |d         j        g dk              sJ t          j        |d         j        g dk              sJ t          ||gd	          }t          j        |d         j        d
dgk              sJ t          j        |d         j        ddgk              sJ t          ||gd          }t          j        |d         j        g dk              sJ t          j        |d         j        g dk              sJ d S )Nma2r   r<   outer	join_typer    r   FFTinnerTF)TFFTT)TTTFF)
r$   r   r
   r.   r/   r   r   rL   r   r   )r   t1r@   t12s       r   'test_table_operations_requiring_maskingz?TestMaskedQuantityTable.test_table_operations_requiring_maskingu   sc   VUFAq6AC<00122b"X111vc$in(<(<(<<=====vc%jo)=)=)==>>>>>b"X111vc$inu566666vc%jo%788888 b"X111 vc$in(H(H(HHIIIIIvc%jo)I)I)IIJJJJJJJr   c                 8   t          t          j                  }t          dddgt          j        z  i          }t          dg dt          j        z  i          }t          ||gd          }t          |d         |          sJ t          j        |d         j	        g dk              sJ t          j        |d         g d	t          j        z  k              sJ t          |d         |          rJ t          |d         t          j                  sJ t          j        |d         g dt          j        z  k              sJ t          ||gd
          }t          |d         t          j                  sJ t          |d         |          rJ t          |d         t          j                  sJ t          |d         |          rJ t          ||gd          }t          j        |d         j	        g dk              sJ t          j        |d         j	        g dk              sJ ddg|d<   g d|d<   t          ||d          }t          j        |d         j	        g dk              sJ t          j        |d         j	        g dk              sJ d S )Nma1r   r<   ri   )         rj   rk   rm   )r   r<   r   rn   )FFTTT)TTFFFr   )r   rt   ru   )FFTT)FTFF)r
   r.   Quantityr   r/   r   rJ   r   rL   r   r   r   )r   MaskedQuantityro   r@   rp   s        r   4test_table_operations_requiring_masking_auto_promotezLTestMaskedQuantityTable.test_table_operations_requiring_masking_auto_promote   s   
++UQFQSL)**UIIIO,--b"X111#e*n55555vc%jo)=)=)==>>>>>vc%jIIIO344444c%j.99999#e*aj11111vc%jIIIO344444b"X111#e*aj11111c%j.99999#e*aj11111c%j.99999 b"X111vc%jo)I)I)IIJJJJJvc%jo)J)J)JJKKKKKa&3))32rW---vc%jo)C)C)CCDDDDDvc%jo)D)D)DDEEEEEEEr   N)r&   r'   r(   rq   ry   r*   r   r   rg   rg   s   s:        K K K4F F F F Fr   rg   )numpyr   r_   numpy.testingr   astropyr   r.   astropy.tabler   r   r   r   "astropy.utils.compat.optional_depsr	   astropy.utils.maskedr
   test_maskedr   re   appendr   r,   r1   rg   r*   r   r   <module>r      s        , , , , , ,       6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 ' ' ' ' ' ' , , , , , , 1 1 1 1 1 1 1 15 5 5 5 54 5 5 5HH HH HH HH HH0 HH HH HHV8F 8F 8F 8F 8F24L 8F 8F 8F 8F 8Fr   