
    ꢩe(;                        d dl Z d dlmZ d dlZd dlmZ d Z G d dej                  Z	 G d de	          Z
 G d	 d
e	          Z G d de	          Z G d de	          Z G d de	          Z G d de	          Z G d dej                  Z G d de          Z G d dej        ej                  Z G d de          Z G d de          Z G d dej        ej                  Z G d d e          Z G d! d"e          Zd# Zed$k    rEd dlZ ej        ej                    ej                     ej                             d%&           dS dS )'    N)Path)commonc                    t           j        r/t          dd           t          dt          |          z             t	          j        | d          }|j        }	 |}|                    |d|d           |                                 n# |                                 w xY wt	          j        | d          }|j        }	 |j	        
                                }||k    s;t           j        r/t          d	           t          d
|           t          d|           ||k    sJ 	 |                                 d S # |                                 w xY w)N
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning test for object %sw)mode	somearray
Some arrayrz#Write and read lists/tuples differ!zObject written:zObject read:)r   verboseprinttypetb	open_filerootcreate_arraycloser
   read)filename	testTuplefilehr   abs         7lib/python3.11/site-packages/tables/tests/test_lists.py	WriteReadr      sD   ~ >dI*T)__<=== L,,,E:D4a>>> 	 L,,,E:DN!!Avv&.v7888#Q'''.!$$$ Avvvvv 	s   B	 	B A"D9 9Ec                   4     e Zd Z fdZ fdZd Zd Z xZS )BasicTestCasec                     t                                                       t          j        d          | _        d | _        d S Nz.h5supersetUptempfilemktemph5fnameh5fileself	__class__s    r   r#   zBasicTestCase.setUp-   0    u--    c                     | j         | j                                          t          | j                                                  r&t          | j                                                   t                                                       d S Nr'   r   r   r&   is_fileunlinkr"   tearDownr(   s    r   r2   zBasicTestCase.tearDown2   u    ;"K%%'' 	(%%'''r,   c                 >    | j         }t          | j        |           dS )z0Data integrity during recovery (character types)N)charListr   r&   r)   r   s     r   test00_charzBasicTestCase.test00_char9   s#     M$,"""""r,   c                 >    | j         }t          | j        |           dS )z0Data integrity during recovery (numerical types)N)numericalListr   r&   r6   s     r   test01_typeszBasicTestCase.test01_types?   s$     $,"""""r,   __name__
__module____qualname__r#   r2   r7   r:   __classcell__r*   s   @r   r   r   ,   so            
    # # ## # # # # # #r,   r   c                       e Zd ZdZdZdZdS )Basic0DOneTestCasezRank-0 case 1      3Nr<   r=   r>   titler9   r5    r,   r   rB   rB   F   s        EMHHHr,   rB   c                       e Zd ZdZdZdZdS )Basic0DTwoTestCasezRank-0 case 2gQ@@s  3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333NrE   rG   r,   r   rI   rI   M   s        EMHHHr,   rI   c                       e Zd ZdZdgZdgZdS )Basic1DOneTestCasezRank-1 case 1rC      aNrE   rG   r,   r   rK   rK   [   s!        ECMvHHHr,   rK   c                        e Zd ZdZddgZdgZdS )Basic1DTwoTestCasezRank-1 case 2g	@g@   aaaNrE   rG   r,   r   rN   rN   b   s#        E#JMxHHHr,   rN   c                   2    e Zd ZdZddggdz  Zddggdz  ZdS )Basic2DTestCasezRank-2 case 1            qq   zzNrE   rG   r,   r   rQ   rQ   i   s3        EVHQJM!HHHr,   rQ   c                   ^    e Zd ZdZddgddggggggggggdz  Zddgd	d
ggggggggggdz  ZdS )Basic10DTestCasezRank-10 case 1rR   rS   rC      rT   rL      brU   rV   NrE   rG   r,   r   rX   rX   p   sq        EVaV,-./01234Q6Mtuen56789:;<=a?HHHr,   rX   c                   4     e Zd Z fdZ fdZd Zd Z xZS )ExceptionTestCasec                     t                                                       t          j        d          | _        d | _        d S r    r!   r(   s    r   r#   zExceptionTestCase.setUpy   r+   r,   c                     | j         | j                                          t          | j                                                  r&t          | j                                                   t                                                       d S r.   r/   r(   s    r   r2   zExceptionTestCase.tearDown~   r3   r,   c                    t           j        r't          dd           t          d| j        z             | j        }|                     t          t          f          5  t          | j	        |           ddd           dS # 1 swxY w Y   dS )z0Non suppported lists objects (character objects)r   r   zRunning test for %sN)
r   r   r   rF   r5   assertRaises
ValueError	TypeErrorr   r&   r6   s     r   r7   zExceptionTestCase.test00_char   s     > 	8$	"""'4:6777M
I677 	' 	'dlA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A??BBc                     | j         }|                     t          t          f          5  t	          | j        |           ddd           dS # 1 swxY w Y   dS )z,Non supported lists object (numerical types)N)r9   r`   ra   rb   r   r&   r6   s     r   r:   zExceptionTestCase.test01_types   s     
I677 	' 	'dlA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   AAAr;   r@   s   @r   r\   r\   x   so            
    ' ' '' ' ' ' ' ' 'r,   r\   c                   *    e Zd ZdZdddggZdddggZdS )	Basic1DFourTestCasez Rank-1 case 4 (non-regular list)rC   rY   g@rO   s   bbbs   cccNrE   rG   r,   r   re   re      s/        .ECMM()HHHr,   re   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )GetItemTestCasec                    | j         }| j                            | j        j        d|d          }t          j        r,t          d|d                    t          d|d                    |                     |d         |d                    dS )z'Single element access (character types)r
   r   Original first element:r   Read first element:Nr5   r'   r   r   r   r   r   assertEqualr)   r   arrs      r   test00_singlezGetItemTestCase.test00_single   s     Mk&&t{'7a'35 5 > 	1+QqT222'Q0001s1v&&&&&r,   c                    | j         }| j                            | j        j        d|d          }t          j        r,t          d|d                    t          d|d                    |                     |d         |d                    dS )z'Single element access (numerical types)r
   r   ri   r   rj   Nr9   r'   r   r   r   r   r   rl   rm   s      r   test01_singlezGetItemTestCase.test01_single   s     k&&t{'7a'35 5 > 	1+QqT222'Q0001s1v&&&&&r,   c                 &   | j         }| j                            | j        j        d|d          }t          j        r0t          d|dd                    t          d|dd                    |                     |dd         |dd                    dS )z&Range element access (character types)r
   r   Original elements:rR   rY   Read elements:N
charListMEr'   r   r   r   r   r   rl   rm   s      r   test02_rangezGetItemTestCase.test02_range   s     Ok&&t{'7a'35 5 > 	.&!A#///"C!H---1Q3QqS*****r,   c                 &   | j         }| j                            | j        j        d|d          }t          j        r0t          d|dd                    t          d|dd                    |                     |dd         |dd                    dS )&Range element access (numerical types)r
   r   rt   rR   rY   ru   NnumericalListMEr'   r   r   r   r   r   rl   rm   s      r   test03_rangezGetItemTestCase.test03_range   s      k&&t{'7a'35 5 > 	.&!A#///"C!H---1Q3QqS*****r,   c                 .   | j         }| j                            | j        j        d|d          }t          j        r2t          d|ddd                    t          d|ddd                    |                     |ddd         |ddd                    dS )	z/Range element access, strided (character types)r
   r   rt   rR   rY   rS   ru   Nrv   rm   s      r   test04_rangezGetItemTestCase.test04_range   s     Ok&&t{'7a'35 5 > 	0&!Aa%111"C!AJ///1Qq53q1u:.....r,   c                 .   | j         }| j                            | j        j        d|d          }t          j        r2t          d|ddd                    t          d|ddd                    |                     |ddd         |ddd                    dS )	rz   r
   r   rt   rR   rY   rS   ru   Nr{   rm   s      r   test05_rangezGetItemTestCase.test05_range   s      k&&t{'7a'35 5 > 	0&!Aa%111"C!AJ///1Qq53q1u:.....r,   c                    | j         }| j                            | j        j        d|d          }t          j        r,t          d|d                    t          d|d                    |                     |d         |d                    dS )z/Negative Index element access (character types)r
   r   zOriginal last element:zRead last element:Nrv   rm   s      r   test06_negativeIndexz$GetItemTestCase.test06_negativeIndex   s     Ok&&t{'7a'35 5 > 	1*AbE222&B0002B(((((r,   c                    | j         }| j                            | j        j        d|d          }t          j        r,t          d|d                    t          d|d                    |                     |d         |d                    dS )z/Negative Index element access (numerical types)r
   r   zOriginal before last element:zRead before last element:Nr{   rm   s      r   test07_negativeIndexz$GetItemTestCase.test07_negativeIndex   s      k&&t{'7a'35 5 > 	811R5999-s2w7772B(((((r,   c                 &   | j         }| j                            | j        j        d|d          }t          j        r0t          d|dd                    t          d|dd                    |                     |dd         |dd                    dS )z/Negative range element access (character types)r
   r   Original last elements:r   Read last elements:Nrv   rm   s      r   test08_negativeRangez$GetItemTestCase.test08_negativeRange  s     Ok&&t{'7a'35 5 > 	5+Qr"uX666'RU4442b53r"u:.....r,   c                 &   | j         }| j                            | j        j        d|d          }t          j        r0t          d|dd                    t          d|dd                    |                     |dd         |dd                    dS )z/Negative range element access (numerical types)r
   r   r   r   r   r   Nr{   rm   s      r   test09_negativeRangez$GetItemTestCase.test09_negativeRange  s      k&&t{'7a'35 5 > 	5+Qr"uX666'RU4442b53r"u:.....r,   N)r<   r=   r>   ro   rr   rx   r}   r   r   r   r   r   r   rG   r,   r   rg   rg      s        ' ' '' ' '+ + ++ + +/ / // / /) ) )) ) )/ / // / / / /r,   rg   c                   .    e Zd ZdZdgZg dZdgZg dZdS )GI1ListTestCaseRank-1 case 1 (lists)rC   rC   rS   rR   r   rY   rT      rD   s   321s   221s   121s   021s   421s   521   621Nr<   r=   r>   rF   r9   r|   r5   rw   rG   r,   r   r   r   +  s7        #ECM+++OvHIIIJJJr,   r   c                   l    e Zd ZdZddgZg dg dg dg dg dgZddgZg d	g d
g dg d	g dg dgZdS )GI2ListTestCaseRank-1,2 case 2 (lists)rC   rY   r   rS   rR   r   rY   rT   r      rY   rC   rS   rR   r   rY   rT   rL   rZ   r      21r   s   11s   02s   42r   s   61s   31r   s   12r   s   41s   51r   s   3241s   2321s   13216s   0621s   4421s   5421s   a621s   a321s   s221s   d121s   g021s   b421s   5vvv21s   6zxzxs21Nr   rG   r,   r   r   r   3          %EFM,,,,,,,,,,,,,,,	.O d|H@@@999:::@@@HHHMMMJJJr,   r   c                   &    e Zd Zd Zd Zd Zd ZdS )GeneratorTestCasec                    | j         }| j                            | j        j        d|d          }d |D             }d |D             }t          j        r t          d|           t          d|           |                     ||           dS )z:Testing generator access to Arrays, single elements (char)r
   r   c                     g | ]}|S rG   rG   .0is     r   
<listcomp>z4GeneratorTestCase.test00a_single.<locals>.<listcomp>R      ^^^Aa^^^r,   c                     g | ]}|S rG   rG   r   s     r   r   z4GeneratorTestCase.test00a_single.<locals>.<listcomp>S      ar,   Result of original iterator:Result of read generator:Nrk   r)   r   rn   gagarrs        r   test00a_singlez GeneratorTestCase.test00a_singleI  s     Mk&&t{'7a'35 5 ^^^^3> 	50"555-t444T"""""r,   c                 f   | j         }| j                            | j        j        d|d          }t	          |d         t
                    rd |D             }nd |D             }d |D             }t          j        r t          d|           t          d|           | 	                    ||           d	S )
z<Testing generator access to Arrays, multiple elements (char)r
   r   r   c                 ,    g | ]}t          |          S rG   listr   s     r   r   z0GeneratorTestCase.test00b_me.<locals>.<listcomp>c      %%%a$q''%%%r,   c                     g | ]}|S rG   rG   r   s     r   r   z0GeneratorTestCase.test00b_me.<locals>.<listcomp>e      !r,   c                     g | ]}|S rG   rG   r   s     r   r   z0GeneratorTestCase.test00b_me.<locals>.<listcomp>f  r   r,   r   r   N)
rw   r'   r   r   
isinstancetupler   r   r   rl   r   s        r   
test00b_mezGeneratorTestCase.test00b_meY  s     Ok&&t{'7a'35 5 adE"" 	 %%1%%%BBQB3> 	50"555-t444T"""""r,   c                    | j         }| j                            | j        j        d|d          }d |D             }d |D             }t          j        r t          d|           t          d|           |                     ||           dS )z=Testing generator access to Arrays, single elements (numeric)r
   r   c                     g | ]}|S rG   rG   r   s     r   r   z4GeneratorTestCase.test01a_single.<locals>.<listcomp>u  r   r,   c                     g | ]}|S rG   rG   r   s     r   r   z4GeneratorTestCase.test01a_single.<locals>.<listcomp>v  r   r,   r   r   Nrq   r   s        r   test01a_singlez GeneratorTestCase.test01a_singlel  s     k&&t{'7a'35 5 ^^^^3> 	50"555-t444T"""""r,   c                 f   | j         }| j                            | j        j        d|d          }t	          |d         t
                    rd |D             }nd |D             }d |D             }t          j        r t          d|           t          d|           | 	                    ||           d	S )
z?Testing generator access to Arrays, multiple elements (numeric)r
   r   r   c                 ,    g | ]}t          |          S rG   r   r   s     r   r   z0GeneratorTestCase.test01b_me.<locals>.<listcomp>  r   r,   c                     g | ]}|S rG   rG   r   s     r   r   z0GeneratorTestCase.test01b_me.<locals>.<listcomp>  r   r,   c                     g | ]}|S rG   rG   r   s     r   r   z0GeneratorTestCase.test01b_me.<locals>.<listcomp>  r   r,   r   r   N)
r|   r'   r   r   r   r   r   r   r   rl   r   s        r   
test01b_mezGeneratorTestCase.test01b_me|  s      k&&t{'7a'35 5 adE"" 	 %%1%%%BBQB3> 	50"555-t444T"""""r,   N)r<   r=   r>   r   r   r   r   rG   r,   r   r   r   H  sP        # # # # # #&# # # # # # # #r,   r   c                   .    e Zd ZdZdgZg dZdgZg dZdS )GE1ListTestCaser   rC   r   rD   r   Nr   rG   r,   r   r   r     s7        #ECM+++OvHIIIJJJr,   r   c                   l    e Zd ZdZddgZg dg dg dg dg dgZddgZg d	g d
g dg d	g dg dgZdS )GE2ListTestCaser   rC   rY   r   r   r   rL   rZ   r   r   r   r   r   Nr   rG   r,   r   r   r     r   r,   r   c                  (   t           j                                        } d}t          |          D ]`}|                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                                b| S )NrR   )r   unittest	TestSuiterangeaddTest	makeSuiterB   rI   rK   rN   re   rQ   rX   r   r   r   r   )theSuiteniterr   s      r   suiter     s   ((**HE5\\ E E223EFFGGG223EFFGGG223EFFGGG223EFFGGG223FGGHHH22?CCDDD223CDDEEE22?CCDDD22?CCDDD22?CCDDD22?CCDDDDOr,   __main__r   )defaultTest)!r$   pathlibr   tablesr   tables.testsr   r   PyTablesTestCaser   rB   rI   rK   rN   rQ   rX   r\   re   TempFileMixinrg   r   r   r   r   r   r   r<   sys
parse_argvargvprint_versionsr   mainrG   r,   r   <module>r      sy                   ! ! !H# # # # #F+ # # #4                            " " " " "m " " "@ @ @ @ @} @ @ @' ' ' ' '/ ' ' '>* * * * *+ * * *K/ K/ K/ K/ K/f*F,C K/ K/ K/\J J J J Jo J J J    o   *E# E# E# E# E#,f.E E# E# E#PJ J J J J' J J J    '   *  * zJJJFchF
OW-----	 r,   