
    d                      4   d dl Z d dlZd dlZd dlmZ d dlZd dlZd dl	m
Z
  G d de
j                  Ze
j                            e
j         d           G d de                      Ze
j                            e
j         d           G d	 d
e                      Ze
j                            e
j         d           G d de                      Ze
j                            e
j         d           G d de                      Ze
j                            e
j         d           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
j        e
j                  Z G d de
j                  Z G d de
j                  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                       e Zd Zd ZdS )BackCompatTablesTestCasec                    t           j        r,t          dd           t          d| j        j        z             t          j                    5  t          j        dt                     t          j
        t          j        | j                  d          }ddd           n# 1 swxY w Y   	 |                    d          }d	 |D             }t           j        rOt          d
|j        d|j                   t          d|d                    t          dt!          |                     |                     t!          |          d           |                                 dS # |                                 w xY w)z9Checking backward compatibility of old formats of tables.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readTable...ignore)categoryrNz/tuple0c                     g | ]
}|d          S )var2 ).0recs     <lib/python3.11/site-packages/tables/tests/test_backcompat.py
<listcomp>z=BackCompatTablesTestCase.test01_readTable.<locals>.<listcomp>   s    333cc&k333    zNrows in:zLast record in table ==>z$Total selected records in table ==> d   )r   verboseprint	__class____name__warningscatch_warningsfilterwarningsUserWarningtb	open_filetest_filenameh5fnameget_node_v_pathnamenrowslenassertEqualclose)selfh5filetableresults       r   test01_readTablez)BackCompatTablesTestCase.test01_readTable   s    > 	N$	"""2T^5LLMMM $&& 	K 	K#H{CCCC\&"6t|"D"DcJJF	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K	OOI..E 43U333F~ Kj%"3S%+FFF0%)<<<<c&kkJJJS[[#...LLNNNNNFLLNNNNs    AB  B$'B$,BE! !E7N)r   
__module____qualname__r.   r   r   r   r   r      s#            r   r   zlzo not availablec                       e Zd ZdZdS )Table2_1LZOzTable2_1_lzo_nrv2e_shuffle.h5Nr   r/   r0   r#   r   r   r   r2   r2   )   s         .GGGr   r2   c                       e Zd ZdZdS )Tables_LZO1zTables_lzo1.h5Nr3   r   r   r   r5   r5   /           GGGr   r5   c                       e Zd ZdZdS )Tables_LZO1_shufflezTables_lzo1_shuffle.h5Nr3   r   r   r   r8   r8   4            'GGGr   r8   c                       e Zd ZdZdS )Tables_LZO2zTables_lzo2.h5Nr3   r   r   r   r;   r;   :   r6   r   r;   c                       e Zd ZdZdS )Tables_LZO2_shufflezTables_lzo2_shuffle.h5Nr3   r   r   r   r=   r=   ?   r9   r   r=   c                   (     e Zd ZdZ fdZd Z xZS )BackCompatAttrsTestCasezzerodim-attrs-%s.h5c                     t          j        | j        | j        z            | _        t                                                       d S )N)r   r"   FILENAMEformatr#   supersetUp)r*   r   s    r   rD   zBackCompatAttrsTestCase.setUpI   s3    +DMDK,GHHr   c                 l   t           j        r,t          dd           t          d| j        j        z             | j                            d          }t          j        dd          }t          j        dgd          }| j	        dk    r| 
                    t          j        |j        j        |                     | 
                    t          j        |j        j        |                     |                     |j        j        d           d
S | j	        d	k    r| 
                    t          j        |j        j        |                     | 
                    t          j        |j        j        |                     | 
                    t          j        |j        j        |                     d
S d
S )z>Checking backward compatibility of old formats for attributes.r   r	   zRunning %s.test01_readAttr...z/a   int32)dtype1.31.4N)r   r   r   r   r   r+   r$   nparrayrB   
assertTrueallequalattrsarrdim1	arrscalarr(   pythonscalar)r*   ascalarvectors       r   test01_readAttrz'BackCompatAttrsTestCase.test01_readAttrM   so    > 	M$	"""1DN4KKLLL K  &&!7+++1#W---;%OOFOAGOVDDEEEOOFOAG,=vFFGGGQW1155555[E!!OOFOAGOVDDEEEOOFOAG,=vFFGGGOOFOAG,@&IIJJJJJ "!r   )r   r/   r0   rA   rD   rV   __classcell__)r   s   @r   r?   r?   F   sS        $H    K K K K K K Kr   r?   c                       e Zd ZdZdS )	Attrs_1_3rI   Nr   r/   r0   rB   r   r   r   rY   rY   b           FFFr   rY   c                       e Zd ZdZdS )	Attrs_1_4rJ   NrZ   r   r   r   r]   r]   f   r[   r   r]   c                   4    e Zd Z ej        d          Zd ZdS )VLArrayTestCasezflavored_vlarrays-format1.6.h5c                     | j         j        j        }|                     |j        d           | j         j        j        }|                     |j        d           |                     |d         g d           dS )z<Checking backward compatibility with old flavors of VLArray.numericpythonrF   )   5   6s   77N)r+   rootvlarray1r(   flavorvlarray2)r*   rf   rh   s      r   test01_backCompatz!VLArrayTestCase.test01_backCompatm   su     ;#,)444;#,(333!&9&9&9:::::r   N)r   r/   r0   r   r"   r#   ri   r   r   r   r_   r_   j   s6        "f"#CDDG; ; ; ; ;r   r_   c                   :    e Zd Z ej        d          Zd Zd ZdS )TimeTestCaseztime-table-vlarray-1_x.h5c                 ^    | j         j        j        }|                     |j        d           dS )z?Checking backward compatibility with old TimeXX types (tables).littleN)r+   re   r,   r(   	byteorder)r*   r,   s     r   test00_tablezTimeTestCase.test00_table~   s/      &(33333r   c                     | j         j        j        }|                     |j        d           | j         j        j        }|                     |j        d           dS )zAChecking backward compatibility with old TimeXX types (vlarrays).rm   N)r+   re   vlarray4r(   rn   )r*   rq   vlarray8s      r   test01_vlarrayzTimeTestCase.test01_vlarray   sV     ;#,+X666;#,+X66666r   N)r   r/   r0   r   r"   r#   ro   rs   r   r   r   rk   rk   z   sE        "f"#>??G4 4 47 7 7 7 7r   rk   c                       e Zd ZdZd Zd ZdS )OldFlavorsTestCase01Fc                 D   t          j        d          }t          j        |          5 }|                     |j        j        j        d           |                     |j        j        j        d           |                     |j        j	        j        d           |                     |j        j
        j        d           |                     |j        j        j        d           |                     |j        j        j        d           ddd           dS # 1 swxY w Y   dS )z3Checking opening of (X)Array (old 'numeric' flavor)oldflavor_numeric.h5ra   rb   N)r   r"   r    r!   r(   re   array1rg   array2carray1carray2rf   rh   )r*   r#   r+   s      r   test01_openz OldFlavorsTestCase01.test01_open   sO    &'=>>\'"" 	Df V[/6	BBBV[/6AAAV[07CCCV[07BBBV[18)DDDV[18(CCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   CDDDc                 Z   t          j        d          }t          j        d          }t	          j        ||           	 t          j        |d          5 }|                     t          j	        j
        |j        j        j        dd           |j        j                            dd           |j        j                            dd           |j        j                            dd           |j        j                            dd	           |j        j                            dd
           | j        r)|                                 t          j        |          }n|                                 |                     |j        j        j        d           |                     |j        j        j        d           |                     |j        j        j        d           |                     |j        j        j        d           |                     |j        j        j        d           |                     |j        j        j        d           ddd           n# 1 swxY w Y   t9          |                                           dS # t9          |                                           w xY w)z2Checking (X)Array.copy() method ('numetic' flavor)rw   z.h5zr+/
array1copy
array2copycarray1copycarray2copyvlarray1copyvlarray2copyra   rb   N)r   r"   tempfilemktempshutilcopyr    r!   assertWarns
exceptionsFlavorWarningre   rx   ry   rz   r{   rf   rh   r)   flushr(   r   rg   r   r   r   r   r   r   unlink)r*   srcfiletmpfiler+   s       r   test02_copyz OldFlavorsTestCase01.test02_copy   s    &'=>>/%((GW%%%	#gt,, L  !<!'!3!8#|M M M"''\:::#((m<<<#((m<<<$))#~>>>$))#~>>>: #LLNNN\'22FFLLNNN   !7!>	JJJ  !7!>III  !8!?KKK  !8!?JJJ  !9!@)LLL  !9!@(KKK-L L L L L L L L L L L L L L L0 MM  """""DMM  """"s0   J G9IJ IJ  I!J #J*N)r   r/   r0   r)   r|   r   r   r   r   ru   ru      s:        ED D D #  #  #  #  #r   ru   c                       e Zd ZdZdS )OldFlavorsTestCase02TN)r   r/   r0   r)   r   r   r   r   r      s        EEEr   r   c                  L   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                               | S )NrF   )r   unittest	TestSuiterangeaddTest	makeSuiter_   rk   ru   r   r2   r5   r8   r;   r=   )theSuiteniterns      r   suiter      s   ((**HE5\\ 	I 	I22?CCDDD22<@@AAA223GHHIII223GHHIII22;??@@@22;??@@@223FGGHHH22;??@@@223FGGHHHHOr   __main__r   )defaultTest)$r   r   r   pathlibr   numpyrK   tablesr    tables.testsr   PyTablesTestCaser   r   skipIf	lzo_availr2   r5   r8   r;   r=   TestFileMixinr?   rY   r]   r_   rk   ru   r   r   r   sys
parse_argvargvprint_versionsmainr   r   r   <module>r      s                             v6   8 F,,.ABB. . . . .* . . CB.
 F,,.ABB    *   CB F,,.ABB' ' ' ' '2 ' ' CB'
 F,,.ABB    *   CB F,,.ABB' ' ' ' '2 ' ' CB'K K K K Kf2F4K K K K8    '       '   ; ; ; ; ;f*F,C ; ; ; 7 7 7 7 76')@ 7 7 7*3# 3# 3# 3# 3#62 3# 3# 3#l    62     $ zJJJFchF
OW-----	 r   