
    IR-ekT                        d dl Z d dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ ddlmZ eegZere                    e            ej         e          d             Z!g dZ" ej         e" ej#        e"           ee"d          g          d             Z$d Z%ej&        '                    d           G d de                      Z(d Z)d Z*ej&        +                    d e ej,        dd                     ej,        dd          ej-        z   e ej,        dd          d          g          d             Z.d Z/d Z0dS )     N)units)ColumnQTableRowTablehstack)BST)
BaseColumn)SlicedIndex	get_index)SCEngine)SortedArray)Time)HAS_SORTEDCONTAINERS   )	SetupData)paramsc                     | j         S Nparamrequests    >lib/python3.11/site-packages/astropy/table/tests/test_index.pyenginer      s
    =    r               jyearformatc                     | j         S r   r   r   s    r   main_colr&   "   s     =r   c                     t          | t                    r+t          j        | t          |d          k              sJ d S t          j        | |                     |          k              sJ d S Nr"   r#   )
isinstancer   npall	__class__)colarrays     r   assert_col_equalr/   -   so    #t 3vcT%88889999999vcS]]51112222222r   table_typesc                        e Zd Z fdZd Zd Zed             Zej	        
                    dddg          d             Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )	TestIndexc                 *   t                                          |           || _        t          |t          j                  rt          | _        t          |t                    sd | _	        t          |t          t          j        f          | _
        d S )Nc                     | S r    )xs    r   <lambda>z"TestIndex._setup.<locals>.<lambda><   s    ! r   )super_setupr&   r)   uQuantityr   _table_typelist_column_typemutable)selfr&   r0   r,   s      r   r9   zTestIndex._setup6   st    {### h
++ 	&%D(D)) 	, +D!(T1:,>??r   c                 0    |                      ||          S )N)name)r>   )r@   rB   lsts      r   make_colzTestIndex.make_col?   s      4 000r   c                 \    t          | j        t                    rt          |d          S |S r(   )r)   r&   r   )r@   vals     r   make_valzTestIndex.make_valB   s.    dmT** 	-G,,,,
r   c                 "   t          | d          sy|                                 | _        |                     g d          | j        d<   |                     g d          | j        d<   |                     | j                  | j        d<   | j        S )N_t)      @ffffff@@      @皙?b)7891011ca)hasattrr<   rI   r>   r&   )r@   s    r   tzTestIndex.tG   s    tT"" 	<
 &&((DG,,-F-F-FGGDGCL,,-H-H-HIIDGCL,,T];;DGCLwr   	compositeFTc           
      X   |                      ||           | j        }|                    |rdnd|           t          j        |j        d                                         g dk              sJ | j        sd S d|d         d<   |                    d           d|d         d	<   |	                    d
           |                    d           t          |d         t          j        g d                     t          j        |d         t          j        g d                    sJ t          j        |d         j        t          j        g d          k              sJ |j        d         }t          |j                                                  }|r3t          j        |ddgfddgfddgfdd	gfddgfdd
gfgk              sJ n/t          j        |ddgfdddgfdd	gfddgfdd
gfgk              sJ |                    d           t#          |j                  dk    sJ d S )NrV   rO   rV   r   r   r   r   r   r   r    r    )      @rP      
   r   r   )      @rR   r    )r    r   r`   r!   r_   r    rO   )rJ   rK   rM   rN   r^   ra   rU   )rP   rQ   rS   rT   rP   rR   )r   rK   r   )r    rJ   )r    ra   r!   )r!   rN   )r_   r^   )r`   rM   )r   )r    )r!   )r_   )r`   )r9   rX   	add_indexr*   r+   indicessorted_datar?   add_row
remove_rowr/   r.   allclosedatar=   itemsremove_indiceslen)r@   r&   r0   rY   r   rX   indexlls           r   test_table_indexzTestIndex.test_table_indexT   sr   Hk***F	)4JJVDDDvail..00OOOCDDDDD| 	F #q				-   #q		Q			-   3*=*=*=!>!>???{1S628,J,J,J#K#KLLLLLvafkRX.N.N.N%O%OOPPPPP	!%*""$$%% 	6sOsOsOsOsO$
 
 
 
 
 
 6A3K$A$taSkETUSV<XY     	
19~~""""""r   c                 r   |                      ||           | j        }|                    d|           t          j        |j        d                                         g dk              sJ ddgt          j        ddg          fD ]}||         }t          |j                  dk    sJ t          |d         ddg           t          j        |j        d                                         ddgk              sJ t          j        |j        d                                         g dk              sJ d S )NrV   r\   r   r]   r   r   r   )
r9   rX   rb   r*   r+   rc   rd   r.   rk   r/   )r@   r&   r0   r   rX   slice_t2s          r   test_table_slicingzTestIndex.test_table_slicing   s9   Hk***F	C'''vail..00OOOCDDDDD1vrxA//0 		I 		IF6Brz??a''''RWq!f--- 6"*Q-3355!Q?@@@@@6!)A,2244GHHHHHH		I 		Ir   c                 P   |                      ||           | j        sd S | j        }|                    d|           |                                }|                    d           t          |d         g d           t          j        |j	        d         
                                g dk              sJ g dt          j        g d          t          ddd          fD ]|}|                                }|                    |           t          |d         dd	g           t          j        |j	        d         
                                dd
gk              sJ }t          j        t                    5  |                    d           d d d            d S # 1 swxY w Y   d S )NrV   r\   r   )r   r   r    r!   r   r   r   r   r   )r   r   r    r!   r    r   )r9   r?   rX   rb   copyremove_rowsr/   r*   r+   rc   rd   r.   slicepytestraises
ValueError)r@   r&   r0   r   rX   rq   cuts          r   test_remove_rowszTestIndex.test_remove_rows   s   Hk***| 	FF	C''' VVXX
qC,,,///vbjm//11\\\ABBBBB IIrx			22E!QNNC 	A 	ACBNN3RWq!f---6"*Q-3355!Q?@@@@@@]:&& 	% 	%MM)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   8FF"Fc                    |                      ||           | j        }|                    d|           |dd         }t          |d         ddg           t	          j        |j        d                                         ddgk              sJ |d         dd         }t          |ddg           t          |d         t                    rt          |j        j                  dk    sJ |d d d         }t          |d         t	          j        g d                     |d d d         }t          |d         t	          j        g d	                     t	          j        |j        d                                         g d
k              sJ |d d         }t          |d         t	          j        ddg                     t	          j        |j        d                                         ddgk              sJ |dd          |dd         |dd          fD ]T}t          |d                   dk    sJ t	          j        |j        d                                         g k              sJ U| j        rh|d         dz  dk    }	||	         }t          |d         g d           t	          j        |j        d                                         g dk              sJ d S d S )NrV   r\   r   r   r   r   )r   r   r!   )r!   r   r   r   r   r   )r   r   r   )r9   rX   rb   r/   r*   r+   rc   rd   r)   r
   rk   infor.   r?   )
r@   r&   r0   r   rX   rq   	col_slicet3t_emptymasks
             r   test_col_get_slicezTestIndex.test_col_get_slice   s   Hk***F	C''' qsVC1a&)))vbjm//11aV;<<<<<cF1Q3K	QF+++afj)) 	4y~-..!3333 sssVC"(999"5"5666"XC"(999"5"5666vbjm//11YYY>?????VC"(Aq6"2"2333vbjm//11aV;<<<<<1221Q3ABB0 	B 	BGws|$$))))6'/!,88::b@AAAAAA< 	DS6A:?D4BRWiii0006"*Q-3355BCCCCC	D 	D
 DCr   c                 R   |                      ||           | j        sd S | j        }|                    d|           |                                }t          j        ddg          |d         dd<   t          |d         t          j        g d                     t          j        |j	        d         
                                g d	k              sJ |                                }|dd         }t          |d         t          j        d
dg                     t          j        |j	        d         
                                ddgk              sJ d|d         d<   t          |d         t          j        ddg                     t          |d         t          j        g d                     t          j        |j	        d         
                                ddgk              sJ t          j        |j	        d         
                                g dk              sJ |                                }|d         d
z  dk    }d|d         |<   t          |d         g d           t          j        |j	        d         
                                g dk              sJ d S )NrV   r\   r_      r   r   )r   r_   r   r    r!   r   )r   r   r    r   r   r   r!   )r   r!   r   r    r!   )r   r   r   r   r    g        )r   r   r   r    r   )r   r   r    r   r   )r9   r?   rX   rb   ru   r*   r.   r/   r+   rc   rd   )r@   r&   r0   r   rX   rq   r   r   s           r   test_col_set_slicezTestIndex.test_col_set_slice   sa   Hk***| 	FF	C''' VVXXxA''3!C"(???";";<<<vbjm//11___DEEEEE VVXX!WC"(Aq6"2"2333vbjm//11aV;<<<<<3
C"(Aq6"2"2333C"(???";";<<<vbjm//11aV;<<<<<vbjm//11___DEEEEE VVXXvzQ3C///222vbjm//11___DEEEEEEEr   c           	         |                      ||           | j        sd S | j        }|                    d|           t	          dd          D ]}|                    dd|f           t          |d         d t	          dd          D                        t          j        |j	        d	         
                                d
 t	          d          D             k              sJ |d d d         }t          j        |j	        d	         
                                d t	          d          D             k              sJ |d d d         }|j	        d	         }|j        |j        |j        fdk    sJ t          j        |
                                d t	          ddd          D             k              sJ d	|dd <   t          j        d t	          dd          D                       }	d	|	d d         |	d d         dz  dk    <   t          |d         |	           t          |d         |	d d d                    t          |d         |	d d d         d d d                    t          j        |j	        d	         
                                g dd t	          dd          D             z   k              sJ t          j        |j	        d	         
                                d t	          d          D             k              sJ t          j        |j	        d	         
                                d t	          ddd          D             k              sJ |ddd         }
t          |
d         g d           t          j        |
j	        d	         
                                d t	          d          D             k              sJ |
d d d         }t          |d         g d           t          j        |j	        d	         
                                g dk              sJ |dd d         }t          |d         g d            t          j        |j	        d	         
                                g d!k              sJ d S )"NrV   r\   r_   3         ?Ac                     g | ]}|S r5   r5   .0is     r   
<listcomp>z2TestIndex.test_multiple_slices.<locals>.<listcomp>   s    !:!:!:!!:!:!:r   r   r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>   s    4J4J4J1Q4J4J4Jr   2   r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>       8N8N8Nq8N8N8Nr      r~   )0   r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>   s    -K-K-KAa-K-K-Kr      ic                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>  s    5551Q555r      )r   r   r    r_      r`               r   r   r!   r   	                  c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>  s    ,,,1,,,r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>  r   r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>  s    0N0N0Nq0N0N0Nr   )
r   r    r_   r   r`   r   r   r   r   r   c                     g | ]}|S r5   r5   r   s     r   r   z2TestIndex.test_multiple_slices.<locals>.<listcomp>  s    5K5K5KAa5K5K5Kr   r`   r   )r   r   r   r   rt   )r   r   r   r   )r9   r?   rX   rb   rangere   r/   r*   r+   rc   rd   startstopstepr.   )r@   r&   r0   r   rX   r   evensreverserl   expectedrq   r   t4s                r   test_multiple_sliceszTestIndex.test_multiple_slices   s~   Hk***| 	FF	C'''q" 	% 	%AIIsCm$$$$3!:!:U1b\\!:!:!:;;;vail..004J4Jb		4J4J4JJKKKKK##A#vemA&22448N8NE"II8N8N8NNOOOOO"+"UZ4DDDDve''))-K-Kr2r9J9J-K-K-KKLLLLL 855a5556601"hssma'1,-3***sXccc]333x!}TTrT':;;;vIaL$$&&VVV,,eBmm,,,-
 
 	
 	
 	
 vemA&22448N8NE"II8N8N8NNOOOOOvOA**,,0N0NE"b"<M<M0N0N0NN
 
 	
 	
 	

 qAvYC"F"F"FGGGvbjm//115K5Kr5K5K5KKLLLLL!WC...111vbjm//11\\\ABBBBB2YC***---vbjm//11YYY>???????r   c                    |                      ||           | j        d d d         }t          |d         g d           |                    d|           t	          j        |j        d                                         g dk              sJ | j        sd S |	                                }|
                    d           t          |d         g d           t	          j        |j        d                                         g dk              sJ |	                                }|
                                 t          |d         g d           t	          j        |j        d                                         g dk              sJ d S )	Nr~   rV   )r!   r    r   r   r   r\   r   )r    r   r   r   r   r   r]   )r9   rX   r/   rb   r*   r+   rc   rd   r?   ru   sortr@   r&   r0   r   rX   rq   s         r   	test_sortzTestIndex.test_sort   sg   Hk***F44R4L3111	C'''vail..00OOOCDDDDD| 	F VVXX
C///222vbjm//11___DEEEEE VVXX
			C///222vbjm//11___DEEEEEEEr   c                    |                      ||           | j        sd S | j        }|                    d|           |                    dd           t          |d         g d           t          j        |j        d         	                                g dk              sJ |                    dd	           t          |d         g d
           t          j        |j        d         	                                g dk              sJ d S )NrV   r\   r   )r   12r_   )r   r   r_   r   r    r!   r   )r   r   r   r    r!   r   r   )rJ   13r   )r   r   r   r_   r   r    r!   )r   r   r   r    r!   r_   r   )
r9   r?   rX   rb   
insert_rowr/   r*   r+   rc   rd   r@   r&   r0   r   rX   s        r   test_insert_rowzTestIndex.test_insert_row6  s   Hk***| 	FF	C'''	Q'''3!3!3!3444vail..004F4F4FFGGGGG	Q'''3!6!6!6777vail..004I4I4IIJJJJJJJr   c                 h
   |                      ||           | j        }|                    d|           t          |ddg         j                  dk    sJ t          |d d d         j                  dk    sJ t          |                     |          j                  dk    sJ t          j        |j        d                                         g dk              sJ |	                                }|
                    d          5  t          |ddg         j                  dk    sJ t          |d d d         j                  dk    sJ t          |                     |          j                  dk    sJ t          |	                                j                  dk    sJ 	 d d d            n# 1 swxY w Y   t          |ddg         j                  dk    sJ | j        sd S |
                    d	          5  t          j        |j        d                                         g dk              sJ d
|d         d<   t          j        |j        d                                         g dk              sJ |                    d           t          j        |j        d                                         g dk              sJ |                    ddg           t          j        |j        d                                         g dk              sJ t          |d         g d           t          j        |j        d                                         g dk              sJ d
|d         d<   t          j        |j        d                                         g dk              sJ 	 d d d            n# 1 swxY w Y   t          j        |j        d                                         g dk              sJ t          |d         t                     rt          |d         d d d         j        j                  dk    sJ |
                    d          5  t          |d         ddg         j        j                  dk    sJ t          |d         ddg         j        j                  dk    sJ 	 d d d            n# 1 swxY w Y   t          |d         d d d         j        j                  dk    sJ t          |d         d d d         j        j                  dk    sJ d S d S )NrV   r\   r   r   r~   r   r]   discard_on_copyfreezer_   )g      ?r   r   )r_   r   r!   r   )r   r   r   r    r   )r   r   r   r   copy_on_getitemr   )r9   rX   rb   rk   rc   r<   r*   r+   rd   ru   
index_moder?   re   rv   r/   r)   r
   r   r   s         r   test_index_modeszTestIndex.test_index_modesE  s   Hk***F	C''' 1aV9$%%****1TTrT7?##q((((4##A&&.//14444vail..00OOOCDDDDDVVXX \\+,, 	/ 	/q!Qy())Q....q2w''1,,,,t''**233q8888rwwyy())Q.....		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 1aV9$%%****| 	F \\(## 	J 	J6!)A,2244GHHHHHAcF1I6!)A,2244GHHHHHIIn%%%6!)A,2244GHHHHHMM1a&!!!6!)A,2244GHHHHHQsV\\\2226"*Q-3355HIIIIIBsGAJ6"*Q-3355HIIIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J vail..00LLL@AAAAAafj)) 	8qvddd|(011Q6666/00 > >1S61a&>.6771<<<<2c7Aq6?/788A=====> > > > > > > > > > > > > > >
 qvddd|(011Q6666r#wttt})122a7777	8 	8 87s9   	BF55F9<F9 F1N>>OO!AS		SSc                    |                      ||           | j        }|                    d|           |                    ddg|           t          |j                  dk    sJ t          |j        d         j                  dk    sJ t          |j        d         j                  dk    sJ t          j        t                    5  |j        d          d d d            d S # 1 swxY w Y   d S )NrV   r\   rU   r   r   )rV   rU   rO   )	r9   rX   rb   rk   rc   columnsrx   ry   
IndexErrorr   s        r   test_index_retrievalzTestIndex.test_index_retrievalz  s*   Hk***F	C'''	S#Jv...19~~""""19S>)**a////19X&.//14444]:&& 	 	IcNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C&&C*-C*c                     |                      ||           | j        }|                    d|           |                     | j        g d          }t	          |j                  dk    sJ dS )z}
        Checks for a previous bug in which copying a Table
        with different column names raised an exception.
        rV   r\   )defnamesr   N)r9   rX   rb   r<   rk   rc   r   s         r   test_col_renamezTestIndex.test_col_rename  sr    
 	Hk***F	C'''dfOOO<<2:!######r   c                    |                      ||           | j        }|                    d|           |                    d|           |j        |                     d                   }t          |d         dg           t          |t                    sJ |j        |                     d          |                     d          |                     d          g         }t          |d         g d           t          |t                    s9|j        t          j
        g d                   }t          |d         g d           t          |d         g d           |j        |                     d          |                     d	                   }t          |d         g d
           |j        dddf         }t          |d         g d           |j        dd         }t          |d         ddg           |j        ddd f         }t          |d         g d           |j        d d          |j        d d          fD ]}t          |d         g d           d S )NrV   r\   rO   r   r   r    r   r   r    r   r!   )r   r    r!   ra   rM   )rK   rL   rM   r   r   )r9   rX   rb   locrG   r/   r)   r   r   r*   r.   ilocr   s         r   test_table_loczTestIndex.test_table_loc  sF   Hk***F	C'''	C'''U4==##$C1#&&&"c""""" UDMM!$$dmmA&6&6a8H8HIJC))),,,(D)) 	1rx			**+BRWiii000C))),,,U4==##dmmA&6&667C))),,,U3C< C///222VAaC[C1a&)))VCG_C///22258QVAAAY' 	7 	7BRWooo6666	7 	7r   c                    |                      ||           | j        }|                    d|           |                    d|           |j        |                     d                   }|dk    sJ |j        |                     d          |                     d          |                     d          g         }t          |g d          D ]\  }}||dz
  k    sJ d S )	NrV   r\   rO   r   r   r   r    r   )r9   rX   rb   loc_indicesrG   zipr@   r&   r0   r   rX   rq   r   ps           r   test_table_loc_indicesz TestIndex.test_table_loc_indices  s    Hk***F	C'''	C''']4==++,Qwwww ]DMM!,,dmmA.>.>a@P@PQRIII&& 	 	DAqA:::::	 	r   c                    |                      ||           | j        }|                    d           t          j        t
                    5  |j        |                     d                    d d d            n# 1 swxY w Y   t          j        t
                    5  |j        |                     d                    d d d            d S # 1 swxY w Y   d S )NrV   r_   )	r9   rX   rb   rx   ry   KeyErrorr   rG   r   r   s        r   test_invalid_searchzTestIndex.test_invalid_search  s:   Hk***F	C]8$$ 	$ 	$E$--""##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$]8$$ 	, 	,M$--**++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s$   !A99A= A=!CCCc                 D   |                      ||           | j        }|                    d           |                    d           |                                }|j        d         j        d         |d         u sJ |j        d         j        d         |d         u sJ d S )NrV   rO   r   )r9   rX   rb   ru   rc   r   r   s         r   test_copy_index_referencesz$TestIndex.test_copy_index_references  s     	Hk***F	C	CVVXXz#&q)RW4444z#&q)RW444444r   c                    |                      ||           | j        }|                    d|d           t          j        |j        d                                         g dk              sJ | j        rIt          j	        t                    5  |                    d           d d d            d S # 1 swxY w Y   d S d S )NrV   T)r   uniquer]   )ra   rR   r!   )r9   rX   rb   r*   r+   rc   rd   r?   rx   ry   rz   re   r   s        r   test_unique_indexzTestIndex.test_unique_index  s    Hk***F	Ct444vain0022oooEFFFFF< 	)z** ) )		-((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )	) 	)s   B22B69B6c                 :   |                      t          |           | j        }|                    d           |                    ddg           |                     |          |                                fD ]}t          |j                  t          |j                  k    sJ t          |j        |j                  D ]Y\  }}t          j
        |j        j        |j        j        k              sJ |j        j        j        |j        j        j        k    sJ Zd S )NrV   rO   )r9   _colrX   rb   r<   ru   rk   rc   r   r*   r+   rh   colnames)r@   r0   rX   tprl   indexps         r   test_copy_indexed_tablez!TestIndex.test_copy_indexed_table  s   D+&&&F	C	S#J##A&&1 	M 	MBqy>>S__4444!$QY
!;!; M Mvvejo1AABBBBBz/6;3C3LLLLLLM	M 	Mr   c                    |                      ||           t          g dg dg dgdddi          }|                    d|	           |                    d
|	           g d|j        d<   |d         }t	          |          g dk    sJ g dg dg dg|j        g d<   g dg dg dg}t          |g d          D ]#\  }}t	          ||dz
                     |k    sJ $d S )N)rV   rO   rU   r   r   r   r    r!   r   r    r!   r_   rV   rO   rU   rB   first tabler   metarV   r\   rO   )g(   r   rU   r   )rV   r      )r   r   <   )rO   r   r   )rV   r   rO   r   r   )r9   r   rb   r   r=   r   r   s           r   test_updating_row_byindexz#TestIndex.test_updating_row_byindex  s8   Hk***!!!<<<>!-(
 
 
 	
C'''	C'''"]]c
qTBxx===(((( #0--!Nooomm]]]MMM:III&& 	' 	'DAq!a%>>Q&&&&&	' 	'r   c                    |                      ||           t          g dg dg dgdddi          }|                    d           t          j        t
                    5  g d	g|j        d
<   d d d            n# 1 swxY w Y   t          j        t
                    5  g d	g dg|j        g d<   d d d            n# 1 swxY w Y   t          j        t
                    5  g d	g ddd
gg|j        g d<   d d d            n# 1 swxY w Y   t          j        t
                    5  g d	ddgdd
gg|j        g d<   d d d            d S # 1 swxY w Y   d S )N)r   r   r   r    r   r   r   rB   r   r   rV   r   r   r   r   )r    r!   r_   r   r   r    r!   )r9   r   rb   rx   ry   rz   r   r   s        r   test_invalid_updateszTestIndex.test_invalid_updates  sv   Hk***\\<<<6!-(
 
 
 	
C]:&& 	# 	#!		{AE!H	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]:&& 	6 	6 )		9995AE)))	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6]:&& 	> 	> )		999q!f=AE)))	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>]:&& 	; 	; )		Aq6Aq6:AE)))	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;sH   "A<<B B  B??CC#DD	D	)EEE)__name__
__module____qualname__r9   rD   rG   propertyrX   rx   markparametrizern   rr   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r,   s   @r   r2   r2   4   s       @ @ @ @ @1 1 1  
 
 
 X
 [[5$-88(# (# 98(#TI I I"% % %.#D #D #DJF F F>3@ 3@ 3@jF F F,K K K38 38 38j
 
 
	$ 	$ 	$7 7 7@  	, 	, 	,
5 
5 
5	) 	) 	)	M 	M 	M' ' '*; ; ; ; ; ; ;r   r2   c                     g d} g d}t          | |gdddi          }|                    dg           t          |dg          }t          |t                    sJ t          |j                  d	k    sJ t          |j        d
                   dk    sJ |j        d
         j        j        dk    sJ t          ||dg                   }t          |t                    sJ t          |j                  d	k    sJ t          |j        d
                   dk    sJ |j        d
         j        j        dk    sJ t          j
        t                    5  t          |dg|dg                    d d d            n# 1 swxY w Y   t          j
        t                    5  t          |d d            d d d            d S # 1 swxY w Y   d S )N)r   r    r!   r   r   r    -   )g       @ra   gffffff @g@g333333@g      @gffffff
@r[   rB   r   r   rV   r   r   r   r   )
table_copy)r   r  )r   rb   r   r)   r   rk   r   r   rB   rx   ry   rz   )rV   rO   rX   x1x2s        r   test_get_indexr    sV   A+++Aq!fJfm-DEEEAKK	1SE	"	"	"Bb+&&&&&rz??arz!}"""":a="c))))	1C5	*	*	*Bb+&&&&&rz??arz!}"""":a="c))))	z	"	" 7 7!C5QuX66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7	z	"	" 2 2!4D11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s$   E;;E?E?F??GGc                    t                      }t          g ddd          |d<   g d|d<   t          j        d	          5 }|                    d
|            d d d            n# 1 swxY w Y   t          |          dk    sJ d S )Nr   r"   tai)r$   scalerV   )r    r   r   rO   T)recordr[   r\   r   )r   r   warningscatch_warningsrb   rk   )r   tabwlists      r   test_table_index_time_warningr  0  s     ''CIIIgU;;;CHyyCH		 	-	-	- 1j0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1u::??????s   A&&A*-A*r-   iP  iU  mjdc                     t                      }| |d<   |                    d           |d         }|j        j        sJ |dd          }|j        j        rJ |dd          }|d         }|j        j        sJ d S )NrX   r   )r   rb   r   rc   )r-   r  rX   txtabxs        r   4test_table_index_does_not_propagate_to_column_slicesr  ;  s     ((CCHMM#CA6>	
122Bwqrr7DS	A6>r   c                  |   t          t          j        d          t          j        z  gdg          } |                     d           t          t          t          j        d          t          j                  gdg          }t          | |g          }|d         j
        j        g k    sJ |j        g k    sJ d S )Nra   sr   )unitrX   )r   r*   aranger:   mrb   r   r   r  r   r   rc   )qtabr  qstacks      r   test_hstack_qtable_tabler  S  s     29S>>AC'(666DNN3
	#QS11123%
@
@
@CT3K  F#;#r))))>Rr   c                      t          j        t          d          5  t          d d            d d d            d S # 1 swxY w Y   d S )Nz"index_slice must be tuple or slice)match)rx   ry   	TypeErrorr   r5   r   r   test_index_slice_exceptionr  ^  s    	y(L	M	M	M    D$                                   s   :>>)1r	  numpyr*   rx   astropyr   r:   astropy.tabler   r   r   r   r   astropy.table.bstr	   astropy.table.columnr
   astropy.table.indexr   r   astropy.table.socor   astropy.table.sorted_arrayr   astropy.timer   "astropy.utils.compat.optional_depsr   
test_tabler   available_enginesappendfixturer   r   r;   r&   r/   r   usefixturesr2   r  r  r   r  r  r  r  r  r5   r   r   <module>r.     s               < < < < < < < < < < < < < < ! ! ! ! ! ! + + + + + + 6 6 6 6 6 6 6 6 ' ' ' ' ' ' 2 2 2 2 2 2       C C C C C C ! ! ! ! ! !+&  'X&&& ()))  *)  
4T'"""    3 3 3 ''^; ^; ^; ^; ^;	 ^; ^; ('^;B2 2 24   	yry&&''	%!#%YRYue$$U333                  r   