
    dt                    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 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          Z G d de          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        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	j        e	j
                  Z G d* d+e	j        e	j
                  Z G d, d-e          Z  G d. d/e          Z! G d0 d1e	j        e	j
                  Z" G d2 d3e"          Z# G d4 d5e"          Z$ G d6 d7e"          Z% G d8 d9e"          Z& G d: d;e"          Z' G d< d=e"          Z( G d> d?e"          Z) G d@ dAe"          Z* G dB dCe"          Z+ G dD dEe"          Z, G dF dGe"          Z- G dH dIe"          Z. G dJ dKe	j        e	j
                  Z/ G dL dMe/e	j
                  Z0 G dN dOe0          Z1 G dP dQe0          Z2 G dR dSe/          Z3 G dT dUe3          Z4 G dV dWe3          Z5 G dX dYe	j        e	j
                  Z6 G dZ d[e6e	j
                  Z7 G d\ d]e7          Z8 G d^ d_e7          Z9 G d` dae6          Z: G db dce:          Z; G dd dee:          Z< G df dge	j        e	j
                  Z= G dh die=          Z> G dj dke>          Z? G dl dme>          Z@ G dn doe=          ZA G dp dqeA          ZB G dr dseA          ZC G dt due	j        e	j
                  ZD G dv dwe	j        e	j
                  ZE G dx dye	j        e	j
                  ZF G dz d{eF          ZG G d| d}eF          ZH G d~ deF          ZI G d deF          ZJ G d deF          ZK G d de	j        e	j
                  ZL G d deL          ZM G d deL          ZN G d deL          ZO G d deL          ZP G d de	j
                  ZQ G d de	j        e	j
                  ZR G d de	j        e	j
                  ZS G d de	j        e	j
                  ZTd ZUeVdk    rA e	jW        e jX                    e	jY                     e	jZ        [                    d           dS dS )    N)Path)commonc                   v    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 Zd Zd Zd Zd Zd Zd Zd ZdS )BasicTestCasezmBasic test for all the supported typecodes present in numpy.

    All of them are included on pytables.

    Fc                 	   |}t           j        rCt          dd           t          d|j        j        z  d           t          d| j                   t          j        d          }	 t          j	        |d	          5 }|j
        }| j        rD|j        j        d
k    r4|                                }|j                                        |_        |}|                    |d|d           d d d            n# 1 swxY w Y   t          j	        |d	          5 }|j
        }|j                                        }t           j        rt          j        ||          st          d           t          d|j                   t          d|j                   t          d|j        j                   t          d|j                   t          d|j                   t          d|j        j                   |j        j        d
k    r4t          d|j        j                   t          d|j        j                   |                     |j        |j                   |                     |j        |j        j                   |j        j        d
k    r'|                     |j        j        j        d           n|                     |j        j        |j        j                   |                     |j        j        |j        j        j        j                   t          j        j        |j        j                 }t          j        j        |j        j                 }|dk    r]|                     ||j        j                   |                     |t4          j                   | j        r|                     ||           |j        }	|                     |	j        d           |                     |	j        |j                   |                     |	j        |j                   |                     |	j        d            |j        r|j        d         }
nd}
|                     |	j        |
           |                      t          j        ||                     d d d            n# 1 swxY w Y   tC          |          "                                 d S # tC          |          "                                 w xY w)N
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=%Running test for array with type '%s' endfor class check:.h5wmodeS	somearray
Some arrayrWrite and read arrays differ!Array written shape:Array written itemsize:Array written type:Array read shape:Array read itemsize:Array read type:Array written byteorder:Array read byteorder:string
irrelevantnumpyr      )#r   verboseprintdtypetypetitletempfilemktemptb	open_filerootendiancheckkindbyteswapnewbyteordercreate_arrayr   readallequalshapeitemsize	byteorderassertEqualatomutils
byteorderssysassertNotEqualflavorndim
chunkshapenrows
assertTruer   unlink)self	testarrayafilenamefilehr-   babobboobjrA   s              7lib/python3.11/site-packages/tables/tests/test_array.py
write_readzBasicTestCase.write_read   s   > 	2$	"""9AGLH   $dj111 ?5))C	$hS111 	GUz # (;(;

Ag2244AGA""4aFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G hS111 37Uz N'')) > J&/!Q*?*? J9:::0!':::3QZ@@@/>>>-qw7770!*===,agl;;;w|s**8!':KLLL5qw7HIII   !'222  $.*>???7<3&&$$T^%8%=xHHHH$$QW\17<@@@$$QW\%)^%8%>%CE E E(-ag.?@C(-ag.?@Cl**((dn.FGGG((cm<<<+ : //S999n  W555  AG444  16222  6667 GAJEE E  E2221 5 5666g37 37 37 37 37 37 37 37 37 37 37 37 37 37 37l NN!!#####DNN!!####sV   'S =A+C4(S 4C88S ;C8<S M3RS RS RS #S%c                    |}t           j        rCt          dd           t          d|j        j        z  d           t          d| j                   t          j        d          }	 t          j	        |d	          5 }|j
        }| j        rD|j        j        d
k    r4|                                }|j                                        |_        |}|                    |d|d           d d d            n# 1 swxY w Y   t          j	        |d	          5 }|j
        }t!          j        ||j                  }|j                            |           |                     |j        |j                   |                     |j        |j        j                   |j        j        d
k    r'|                     |j        j        j        d           n|                     |j        j        |j        j                   |                     |j        j        |j        j        j        j                   t          j        j        |j        j                 }t          j        j        |j        j                 }|dk    r]|                     ||j        j                   |                     ||           | j        r |                     |t6          j                   |                     t          j        ||                     d d d            n# 1 swxY w Y   t=          |                                           d S # t=          |                                           w xY w)Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   r&   outr    r!   ) r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   np
empty_liker   r3   r8   r5   r9   r:   r;   r7   r=   r<   rB   r4   r   rC   )	rD   rE   rF   rG   rH   r-   rI   rJ   rK   s	            rM   write_read_out_argz BasicTestCase.write_read_out_argd   s   > 	2$	"""9AGLH   $dj111 ?5))(	$hS111 	GUz # (;(;

Ag2244AGA""4aFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G hS111 7Uz M!17333###***   !'222  $.*>???7<3&&$$T^%8%=xHHHH$$QW\17<@@@$$QW\%)^%8%>%CE E E(-ag.?@C(-ag.?@Cl**((dn.FGGG((c222+ D //S]CCC1 5 566617 7 7 7 7 7 7 7 7 7 7 7 7 7 76 NN!!#####DNN!!####sV   'L4 =A+C4(L4 4C88L4 ;C8<L4 G%L:L4 L

L4 L
L4 4#Mc           	         |}t           j                            |j                  }|j        }d }t
          j        rCt          dd           t          d|j        j        z  d           t          d| j	                   t          j        d          }	 t          j        |d	          5 }|j        }| j        rs|j        j        d
k    rc|                                }	|j                                        |	_        |	j        j        dv r!t           j        j        |	j        j                 }|	}|                    |d||d|          }
|                     ||
j                   |                     ||
j                   ||
d<   d d d            n# 1 swxY w Y   t          j        |d	          5 }|j        }|j                                        }	t
          j        rt          j        ||	          st          d           t          d|j                   t          d|j                   t          d|j        j                   t          d|	j                   t          d|	j                   t          d|	j        j                   |j        j        d
k    r4t          d|j        j                   t          d|	j        j                   |                     |j        |	j                   |                     |j        |j        j                   |j        j        d
k    r'|                     |j        j        j        d           n|                     |j        j        |	j        j                   |                     |j        j        |j        j        j        j                   t           j        j        |j        j                 }t           j        j        |	j        j                 }|dk    r]|                     ||j        j                   |                     |t8          j                   | j        r|                     ||           |j        }|                     |j        d           |                     |j        |j                   |                     |j        |j                   |                     |j         d            |j        r|j        d         }nd}|                     |j!        |           | "                    t          j        ||	                     d d d            n# 1 swxY w Y   tG          |          $                                 d S # tG          |          $                                 w xY w)Nr   r	   r
   r   r   r   r   r   r   r   ><r   r   )r9   r5   r(   r7   .r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r#   )%r+   Atom
from_dtyper&   r5   r   r$   r%   r'   r(   r)   r*   r,   r-   r.   r/   r0   r1   r7   r:   r;   r2   r8   r9   r   r3   r4   r6   r<   r=   r>   r?   r@   rA   rB   r   rC   )rD   rE   rF   r9   r5   r7   rG   rH   r-   rI   ptarrrJ   rK   rL   rA   s                  rM   write_read_atom_shape_argsz(BasicTestCase.write_read_atom_shape_args   sr   w!!!'**	> 	2$	"""9AGLH   $dj111 ?5))N	$hS111 Uz # (;(;

Ag2244AGw(J66$&H$78I$J	A**404E1= 6? + @ @   444  uz222c
)              . hS111 37Uz N'')) > J&/!Q*?*? J9:::0!':::3QZ@@@/>>>-qw7770!*===,agl;;;w|s**8!':KLLL5qw7HIII   !'222  $.*>???7<3&&$$T^%8%=xHHHH$$QW\17<@@@$$QW\%)^%8%>%CE E E(-ag.?@C(-ag.?@Cl**((dn.FGGG((cm<<<+ : //S999n  W555  AG444  16222  6667 GAJEE E  E2221 5 5666g37 37 37 37 37 37 37 37 37 37 37 37 37 37 37l NN!!#####DNN!!####sV   U *CFU FU FU /M3T."U .T22U 5T26U #U?c                     t          | j        t          j                  st          j        | j        d          }n| j        }|S )z2Data integrity during recovery (character objects)r   rP   )
isinstance	tupleCharrS   ndarrayarrayrD   rF   s     rM   setup00_charzBasicTestCase.setup00_char   s>     $."*55 	s333AAA    c                 X    |                                  }|                     |           d S N)rd   rN   rc   s     rM   test00_charzBasicTestCase.test00_char  s+    re   c                 X    |                                  }|                     |           d S rg   )rd   rU   rc   s     rM   test00_char_out_argz!BasicTestCase.test00_char_out_arg  s-    """""re   c                 X    |                                  }|                     |           d S rg   )rd   r]   rc   s     rM   test00_char_atom_shape_argsz)BasicTestCase.test00_char_atom_shape_args	  s-    ''*****re   c                 
   | j         }t          j        d          }	 t          j        |d          5 }|                    |j        d|d           ddd           n# 1 swxY w Y   t          j        |d          5 }|j        j                                        }t          |t                    r?|                     t          |          t                     |                     ||           n4|                     t          |          t          t          j        g           ddd           n# 1 swxY w Y   t#          |                                           dS # t#          |                                           w xY w)/Data integrity during recovery (string objects)r   r   r   r   r   Nr   )r`   r)   r*   r+   r,   r2   r-   r   r3   r_   bytesr8   r'   assertInlistrS   ra   r   rC   )rD   rF   rG   rH   rI   s        rM   test00b_charzBasicTestCase.test00b_char  s    N?5))	$hS111 MU""5:{A|LLLM M M M M M M M M M M M M M M hS111 	?UJ(--//a'' ?$$T!WWe444$$Q**** MM$q''D"*+=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? NN!!#####DNN!!####sS   E AE A!!E $A!%E >B'D1%E 1D55E 8D59E #Fc                    | j         }t          j        d          }	 t          j        |d          5                     j        d|d           ddd           n# 1 swxY w Y   t          j        |d          5 t          j        |          j        j	        j
        dk    r |                     t          fd	           n j        j	                            
           |                     t          j                   ddd           n# 1 swxY w Y   t!          |                                           dS # t!          |                                           w xY w)rn   r   r   r   r   r   Nr   r"   c                  D    j         j                                       S NrQ   r-   r   r3   rI   rH   s   rM   <lambda>z4BasicTestCase.test00b_char_out_arg.<locals>.<lambda>8      ej.B.G.GA.G.N.N re   rQ   )r`   r)   r*   r+   r,   r2   r-   rS   rT   r   r>   assertRaises	TypeErrorr3   assertIsInstancera   r   rC   )rD   rF   rG   rI   rH   s      @@rM   test00b_char_out_argz"BasicTestCase.test00b_char_out_arg'  s    N?5))	$hS111 MU""5:{A|LLLM M M M M M M M M M M M M M M hS111 5UM!$$:'.'99%%i&N&N&N&N&NP P P P J(--!-444%%a4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 NN!!#####DNN!!####sS   E AE A##E &A#'E  B
D
E DE DE #E'c           	      2  	 | j         }t          j        d          }	 t          j        |d          5 	t          j        |          }t          j                            |j	                  }|j
        }|j	        j        dv r"t          j        j        |j	        j                 }nd}	                    	j        d|||d          }|                     ||j
                   |                     ||j                   ||d	<   ddd           n# 1 swxY w Y   t          j        |d
          5 	t          j        |          	j        j        j        dk    r |                     t,          	fd           n 	j        j                                       |                     t
          j                   ddd           n# 1 swxY w Y   t5          |                                           dS # t5          |                                           w xY w)rn   r   r   r   rW   Nr   r   )r9   r5   r7   r(   .r   r"   c                  D    j         j                                       S ru   rv   rw   s   rM   rx   z<BasicTestCase.test00b_char_atom_shape_args.<locals>.<lambda>_  ry   re   rQ   )r`   r)   r*   r+   r,   rS   asarrayrZ   r[   r&   r5   r7   r:   r;   r2   r-   r8   r9   rT   r   r>   rz   r{   r3   r|   ra   r   rC   )
rD   rF   rG   nparrr9   r5   r7   r\   rI   rH   s
           @@rM   test00b_char_atom_shape_argsz*BasicTestCase.test00b_char_atom_shape_args@  su    N?5))	$hS111 U
1w))%+66;(J66 " 3EK4I JII $I**5:{04E5>1= + ? ?   444  uz222c
              $ hS111 5UM!$$:'.'99%%i&N&N&N&N&NP P P P J(--!-444%%a4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 NN!!#####DNN!!####sT   G3 CDG3 DG3 DG3 /B
G9G3 G		G3 G	G3 3#Hc                 F   t          | j        t          j                  st          j        | j        d          }n| j        }|j        dk    r|                                }n>|ddd         }t          |          dk    r |                     |j	        j
        d           |S )zAData integrity during recovery (non-contiguous character objects)r   rP   r   N   r#   F)r_   r`   rS   ra   rb   r?   copylenr8   flags
contiguous)rD   rF   rI   s      rM   setup01_char_nczBasicTestCase.setup01_char_ncg  s     $."*55 	s333AAA6Q;;AA##A#A1vvzz  !3U;;;re   c                 X    |                                  }|                     |           d S rg   )r   rN   rD   rI   s     rM   test01_char_nczBasicTestCase.test01_char_ncw  s+      ""re   c                 X    |                                  }|                     |           d S rg   )r   rU   r   s     rM   test01_char_nc_out_argz$BasicTestCase.test01_char_nc_out_arg{  s-      """""""re   c                 X    |                                  }|                     |           d S rg   )r   r]   r   s     rM   test01_char_nc_atom_shape_argsz,BasicTestCase.test01_char_nc_atom_shape_args  s-      ""''*****re   c                    g d}dD ]C}|                                 dz   }t          t          |          r|                    |           D|D ]}t	          j        | j        |          }|                     |           t	          j        | j        |          }|                     |           t	          j        | j        |          }| 	                    |           dS )z0Data integrity during recovery (numerical types)int8int16int32int64uint8uint16uint32uint64float32float64	complex64
complex128float16float96float128
complex192
complex256rZ   N)

capitalizehasattrr+   appendrS   rb   tupleIntrN   rU   r]   )rD   	typecodesnameatomnametypecoderF   rI   cs           rM   test02_typeszBasicTestCase.test02_types  s    0 0 0	
1 	' 	'D((61Hr8$$ '  &&&! 	/ 	/H11AOOA11A##A&&&11A++A....	/ 	/re   c                 ^   g d}dD ]C}|                                 dz   }t          t          |          r|                    |           D|D ]^}t	          j        | j        |          }|j        dk    r=|                                }|                                }|                                }n|ddd         }|ddd         }|ddd         }t          |          dk    r | 
                    |j        j        d           t          |          dk    r | 
                    |j        j        d           t          |          dk    r | 
                    |j        j        d           |                     |           |                     |           |                     |           `dS )	z?Data integrity during recovery (non-contiguous numerical types)r   r   rZ   r   Nr   r#   F)r   r   r+   r   rS   rb   r   r?   r   r   r8   r   r   rN   rU   r]   )	rD   r   r   r   r   rF   b1b2b3s	            rM   test03_types_nczBasicTestCase.test03_types_nc  s   2 2 2	
1 	' 	'D((61Hr8$$ '  &&&! 	0 	0H11Av{{VVXXVVXXVVXXsssVsssVsssVr77Q;;$$RX%8%@@@r77Q;;$$RX%8%@@@r77Q;;$$RX%8%@@@OOB##B'''++B////'	0 	0re   N)__name__
__module____qualname____doc__r.   rN   rU   r]   rd   rh   rj   rl   rr   r}   r   r   r   r   r   r   r    re   rM   r   r      s        
 KM$ M$ M$^3$ 3$ 3$j\$ \$ \$|    # # #+ + +$ $ $4$ $ $2%$ %$ %$N     # # #+ + +/ / /,!0 !0 !0 !0 !0re   r   c                       e Zd ZdZdZdZdZdS )Basic0DOneTestCasezRank-0 case 1      3TNr   r   r   r(   r   r`   r.   r   re   rM   r   r     s"        EHIKKKre   r   c                       e Zd ZdZdZdZdZdS )Basic0DTwoTestCasezRank-0 case 2!   s   33TNr   r   re   rM   r   r     s"        EHIKKKre   r   c                       e Zd ZdZdZdZdZdS )Basic1DZeroTestCasezRank-1 case 0r   FNr   r   re   rM   r   r     s$         EHIKKKre   r   c                       e Zd ZdZdZdZdZdS )Basic1DOneTestCaseRank-1 case 1r   )   aTNr   r   re   rM   r   r     s"        EHIKKKre   r   c                       e Zd ZdZdZdZdZdS )Basic1DTwoTestCasezRank-1 case 2)r      )   aaaTNr   r   re   rM   r   r     s"        EHIKKKre   r   c                       e Zd ZdZdZdZdZdS )Basic1DThreeTestCasezRank-1 case 3)r   r      )r   s   bbbTNr   r   re   rM   r   r     s"        EH!IKKKre   r   c                       e Zd ZdZ ej         ej        d                    Zde_         ej        dgdz  d          Z	de	_        d	Z
d
S )Basic2DOneTestCasezRank-2 case 1   )r   r   abc	   S3rP   )r   r   TNr   r   r   r(   rS   rb   aranger   r5   r`   r.   r   re   rM   r   r     s_        Erx		&))**HHN%T222IIOKKKre   r   c                       e Zd ZdZ ej         ej        dej                  ddg          Z ej	        dgdz  d          Z
dZd	S )
Basic2DTwoTestCasezRank-2 case 2r   rP   r#   r   r   )r   r   TN)r   r   r   r(   rS   tiler   r   r   rb   r`   r.   r   re   rM   r   r     s^        Erwyry"(333aV<<H%,777IKKKre   r   c                       e Zd ZdZ ej         ej        d                    Zde_         ej        dgdz  d          Z	de	_        dZ
dS )	Basic10DTestCasezRank-10 testi   )
r   r   r   r   r   r   r   r   r   r   r   r   rP   TNr   r   re   rM   r   r      s_        Erx		'**++HHN%d333IIOKKKre   r   c                   t    e Zd ZdZ ej        d          Zde_         ej        dgd          Zde_        dS )Basic32DTestCasezRank-32 test)    ) 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#   r#   r#   r#   r#   r#   121r   rP   N)	r   r   r   r(   rS   rb   r   r5   r`   r   re   rM   r   r   
  sH        ErxHHN%---IIOOOre   r   c                   N     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Z xZS )
ReadOutArgumentTestsc                 V    t                                                       d| _        d S )N  )supersetUpsizerD   	__class__s    rM   r   zReadOutArgumentTests.setUp  s    			re   c                 x    t          j        | j        d          }| j                            dd|          }||fS )Nf8rP   /rb   )rS   r   r   h5filer2   )rD   rb   
disk_arrays      rM   r2   z!ReadOutArgumentTests.create_array  s<    	$)4000[--c7EBB
j  re   c                     |                                  \  }}t          j        | j        fd          }|                    |           t          j                            ||           d S )Nr   rQ   r2   rS   emptyr   r3   testingassert_equalrD   rb   r   
out_buffers       rM   test_read_entire_arrayz+ReadOutArgumentTests.test_read_entire_array  s_     --//zXtymT22
J'''


E22222re   c                    |                                  \  }}t          j        | j        d          }t          j                            |          }|                                }| j        dz  }|                    || j        ||d                     t          j        	                    ||d          ||d                     t          j        	                    |d |         |d |                    d S )Nr   rP   r   startstoprR   
r2   rS   r   r   randompermutationr   r3   r   r   )rD   rb   r   r   out_buffer_origr   s         rM   test_read_contiguous_slice1z0ReadOutArgumentTests.test_read_contiguous_slice1$  s     --//zYty555
Y**:66
$//++	Qe$)EFF9KLLL


566 2E%&&MBBB


6E6 2OFUF4KLLLLLre   c                 X   |                                  \  }}t          j        | j        d          }t          j                            |          }|                                }| j        dz  }| j        |z
  }|                    |||||                    t          j        	                    |||         |||                    t          j        	                    |d |         |d |                    t          j        	                    ||d          ||d                     d S )Nr   rP   r   r   r   )rD   rb   r   r   r   r   r   s          rM   test_read_contiguous_slice2z0ReadOutArgumentTests.test_read_contiguous_slice2.  s    --//zYty555
Y**:66
$//++	Qy5 e$JuTz4JKKK


5: 6eDj8IJJJ


6E6 2OFUF4KLLL


455 1?4553IJJJJJre   c                 
   |                                  \  }}t          j        | j        dz  fd          }|                    d| j        d|           t          j                            ||d| j        d                    d S )Nr   r   rP   r   )r   r   steprR   r   r   s       rM   0test_read_non_contiguous_slice_contiguous_bufferzEReadOutArgumentTests.test_read_non_contiguous_slice_contiguous_buffer:  s|     --//zXtyA~0===
adiaZHHH


E!DIa-,@AAAAAre   c                 ,   |                                  \  }}t          j        | j        fd          }|d| j        d         }|                     t
          d          5  |                    d| j        d|           d d d            d S # 1 swxY w Y   d S )Nr   r   r   zoutput array not C contiguous)r2   rS   r   r   assertRaisesRegex
ValueErrorr3   )rD   rb   r   r   out_buffer_slices        rM   test_read_non_contiguous_bufferz4ReadOutArgumentTests.test_read_non_contiguous_buffer@  s     --//zXtymT22
%a	!m4##J$CE E 	? 	?OOAty!-=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   B		BBc                 t   |                                  \  }}t          j        | j        dz  fd          }|                     t
          |j        d| j        d|           	 |                    d| j        d|           d S # t
          $ r.}|                     dt          |                     Y d }~d S d }~ww xY w)Nr   r   r   r#   output array size invalid, got	r2   rS   r   r   rz   r  r3   rp   strrD   rb   r   r   excs        rM   test_buffer_too_smallz*ReadOutArgumentTests.test_buffer_too_smallI  s     --//zXtyA~0$77
*joq$)Q$	& 	& 	&	FOOAty!Z88888 	F 	F 	FMM:CHHEEEEEEEEE	F    A? ?
B7	#B22B7c                 t   |                                  \  }}t          j        | j        dz   fd          }|                     t
          |j        d| j        d|           	 |                    d| j        d|           d S # t
          $ r.}|                     dt          |                     Y d }~d S d }~ww xY w)Nr#   r   r   r
  r  r  s        rM   test_buffer_too_largez*ReadOutArgumentTests.test_buffer_too_largeS  s     --//zXty1}/66
*joq$)Q$	& 	& 	&	FOOAty!Z88888 	F 	F 	FMM:CHHEEEEEEEEE	Fr  )r   r   r   r   r2   r   r   r   r  r  r  r  __classcell__r   s   @rM   r   r     s            ! ! !
3 3 3M M M
K 
K 
KB B B? ? ?F F FF F F F F F Fre   r   c                   $     e Zd Z fdZd Z xZS )"SizeOnDiskInMemoryPropertyTestCasec                     t                                                       d| _        | j                            ddt          j        | j        d                    | _        d S )N
   r  r   r   i4)r   r   
array_sizer   r2   rS   zerosrb   r   s    rM   r   z(SizeOnDiskInMemoryPropertyTestCase.setUpa  sM    "[--bht==? ?


re   c                     |                      | j        j        d           |                      | j        j        d           d S )Ni  )r8   rb   size_on_disksize_in_memoryrD   s    rM   test_all_zerosz1SizeOnDiskInMemoryPropertyTestCase.test_all_zerosg  s>    0+>>>2K@@@@@re   )r   r   r   r   r!  r  r  s   @rM   r  r  ^  sN        ? ? ? ? ?A A A A A A Are   r  c                   p     e Zd ZdZ f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 )UnalignedAndComplexTestCaseznBasic test for all the supported typecodes present in numpy.

    Most of them are included on PyTables.

    c                 j    t                                                       | j        j        | _        d S rg   )r   r   r   r-   r   s    rM   r   z!UnalignedAndComplexTestCase.setUpt  s$    K$			re   c                    t           j        r,t          dd           t          d|j        j        z             |}| j        rdddt          j                 }nt          j        }| j        	                    | j
        d|d|	           | j        r%|                                  | j        j
        | _
        | j
        j                                        }|                    |          }t          j        ||          st           j        rt          d
           t          d|           t          d|j                   t          d|j                   t          d|j        j                   t          d|           t          d|j                   t          d|j                   t          d|j        j                   |                     |j        |j                   |                     |j        | j
        j        j                   |j        j        dk    r|                     |j        |j                   |                     |j        | j
        j        j        j                   |                     t*          j        j        |j        j                 t          j                   |                     | j
        j        j        |           |                     t          j        ||                     d S )Nr   r	   z&
Running test for array with type '%s'biglittle)r'  r&  r   r   )r7   r   zArray written:r   r   r   zArray read:r   r   r   |)r   r$   r%   r&   r'   r.   r<   r7   r   r2   r-   reopen_reopenr   r3   r1   r4   r5   r6   r8   r9   r+   r:   r;   rB   )rD   	testArrayrF   r7   rI   r   s         rM   rN   z&UnalignedAndComplexTestCase.write_readx  s   > 	($	""";/&' ( ( (  	&#(::3=IIII  KL+4 	! 	6 	6 	6 ; 	)LLNNN(DI I$$&& NN9%% q!$$ 		4 		41222"A&&&(!'222+QZ888'666-###%qw///(!*555$agl333 	!'***$)"5";<<<7##QWag...QWdi&9&>&DEEERX01BC ], , ,TY0:IFFF1--.....re   c                    t           j                            ddd          }|d         }|                     |j        j        d           |                     |j        j        t           j                   | 	                    |           dS )z0Checking an unaligned signed short integer array   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai1,f4,i2r  formatsr5   f2FN)
rS   recrb   r8   r   alignedr&   r'   r   rN   rD   r   rF   s      rM   test01_signedShort_unalignedz8UnalignedAndComplexTestCase.test01_signedShort_unaligned  st     FLL:RL@@dG%000rx000re   c                    t           j                            ddd          }|d         }|                     |j        j        d           |                     |j        j        t           j                   | 	                    |           dS )z,Checking an unaligned single precision arrayr-  r.  r  r/  f1r   N
rS   r2  rb   r8   r   r3  r&   r'   r   rN   r4  s      rM   test02_float_unalignedz2UnalignedAndComplexTestCase.test02_float_unaligned  st     FLL:RL@@dG!,,,rz222re   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z Checking an offsetted byte arrayd   rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test03_byte_offsetz.UnalignedAndComplexTestCase.test03_byte_offset  sB     Ic)))aDre   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z8Checking an offsetted unsigned short int precision arrayr;  rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test04_short_offsetz/UnalignedAndComplexTestCase.test04_short_offset  sB     Ic+++aDre   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z#Checking an offsetted integer arrayr;  rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test05_int_offsetz-UnalignedAndComplexTestCase.test05_int_offset  B     Ic***aDre   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z-Checking an offsetted long long integer arrayr;  rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test06_longlongint_offsetz5UnalignedAndComplexTestCase.test06_longlongint_offset  rA  re   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z,Checking an offsetted single precision arrayr;  rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test07_float_offsetz/UnalignedAndComplexTestCase.test07_float_offset  B     Ic,,,aDre   c                     t          j        dt           j                  }d|_        |d         }|                     |           dS )z,Checking an offsetted double precision arrayr;  rP   r  r   N)rS   r   r   r5   rN   r4  s      rM   test08_double_offsetz0UnalignedAndComplexTestCase.test08_double_offset  rF  re   c                 $   t           j                            ddd          }|d         d         }|                     |j        j        d           |                     |j        j        t           j                   | 	                    |           dS )	z:Checking an unaligned and offsetted single precision arrayr-  z	i1,3f4,i2r  r/  r7  r   FNr8  r4  s      rM   test09_float_offset_unalignedz9UnalignedAndComplexTestCase.test09_float_offset_unaligned  x     FLL;bLAAdGAJ%000rz222re   c                 $   t           j                            ddd          }|d         d         }|                     |j        j        d           |                     |j        j        t           j                   | 	                    |           dS )	z:Checking an unaligned and offsetted double precision arrays  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz	i1,3f8,i2r  r/  r7  r   FN)
rS   r2  rb   r8   r   r3  r&   r'   r   rN   r4  s      rM   test10_double_offset_unalignedz:UnalignedAndComplexTestCase.test10_double_offset_unaligned  rK  re   c                 
   t          j        dt           j                                      dd          }|                                }|                                }| j                            | j        j        d|d          }|ddddf         }|                                }|                                }||ddddf<   |                                }|                                }||ddddf<   |d	         }t          j
        rOt          d
|j                   t          d|j        j                   t          d|           t          d|           |                     t          j        ||                     dS )zLChecking setting data with different byteorder in a range
         (integer)   rP   r   rb   zbyteorder (int)r   r   r   .byteorder of array on disk-->byteorder of subarray-->subarray-->retrieved array-->N)rS   r   r   reshaper0   r1   r   r2   r-   r   r$   r%   r7   r&   rB   r4   rD   rF   rb   rI   r   s        rM   test11_int_byteorderz0UnalignedAndComplexTestCase.test11_int_byteorder  sf   
 Ib)))11!Q77JJLLNN((Kgq*;= = !A#qs(OJJLLNNac1Q3hJJLLNNac1Q3h#J> 	+15?CCC,ag.?@@@-###&***1--.....re   c                 
   t          j        dt           j                                      dd          }|                                }|                                }| j                            | j        j        d|d          }|ddddf         }|                                }|                                }||ddddf<   |                                }|                                }||ddddf<   |d	         }t          j
        rOt          d
|j                   t          d|j        j                   t          d|           t          d|           |                     t          j        ||                     dS )zAChecking setting data with different byteorder in a range (float)rO  rP   r   rb   zbyteorder (float)r   r   r   .rP  rQ  rR  rS  N)rS   r   r   rT  r0   r1   r   r2   r-   r   r$   r%   r7   r&   rB   r4   rU  s        rM   test12_float_byteorderz2UnalignedAndComplexTestCase.test12_float_byteorder  sf    Ib
+++33Aq99JJLLNN((Kgq*=? ? !A#qs(OJJLLNNac1Q3hJJLLNNac1Q3h#J> 	+15?CCC,ag.?@@@-###&***1--.....re   )r   r   r   r   r   rN   r5  r9  r<  r>  r@  rC  rE  rH  rJ  rM  rV  rX  r  r  s   @rM   r#  r#  l  s        % % % % %0/ 0/ 0/d                    / / /:/ / / / / / /re   r#  c                       e Zd ZdZdZdS )!ComplexNotReopenNotEndianTestCaseFNr   r   r   r.   r)  r   re   rM   rZ  rZ  <  s        KFFFre   rZ  c                       e Zd ZdZdZdS )ComplexReopenNotEndianTestCaseFTNr[  r   re   rM   r]  r]  A  s        KFFFre   r]  c                       e Zd ZdZdZdS )ComplexNotReopenEndianTestCaseTFNr[  r   re   rM   r_  r_  F  s        KFFFre   r_  c                       e Zd ZdZdZdS )ComplexReopenEndianTestCaseTNr[  r   re   rM   ra  ra  K  s        KFFFre   ra  c                       e Zd ZdZd Zd ZdS )GroupsArrayTestCasez:This test class checks combinations of arrays with groups.c                 ,   t           j        r,t          dd           t          d| j        j        z             | j        j        }g d}t          t          d          r|	                    d           t          t          d          st          t          d          r|	                    d	           t          t          d
          st          t          d          r|	                    d           t          |          D ]\  }}t          j        d|          }d|z   }t           j        r#t          d|                    |                     | j                            |||d           | j                            |dt!          |          z             }|                                  | j        j        }t          |          D ]L\  }}t          j        d|          }t%          |d|z             }|                                }t           j        rvt          d|j                   t          d|j        d           t          d|j        j        z             t          d|j        d           t          d|j        z             |                     |j        |j                   |                     |j        |j                   |                     t          j        ||                     t%          |dt!          |          z             }NdS )z,Checking combinations of arrays with groups.r   r	   z$Running %s.test00_iterativeGroups...)rI   BhHiIlLqfdFDFloat16AtomeFloat96AtomFloat128AtomgComplex192AtomComplex256AtomGr   array_zCreating dataset:zLarge arraygroupInfo from dataset:z  shape ==>r   r   z  type ==> %s"Array b read from file. Shape: ==>z. Type ==> %sN)r   r$   r%   r   r   r   r-   r   r+   r   	enumeraterS   ones_g_joinr2   create_groupr  r*  getattrr3   _v_pathnamer5   r9   r&   r8   rB   r4   )	rD   rz  r   rh  r   rF   dsetnamedsetrI   s	            rM   test00_iterativeGroupsz*GroupsArrayTestCase.test00_iterativeGroupsS  s    > 	+$	"""8.)* + + +    	2}%% 	"S!!!2}%% 	"^)D)D 	"S!!!B()) 	",--	"S!!!$Y// 	F 	FKAxh''A(*H~ D)5==+B+BCCCK$$UHaGGGK,,UGc!ff4DEEEE 	   %Y// 	5 	5KAxh''A5(X"566D		A~ 1*D,<===mTZS9999o	7888:AGMMMMo/000QWag...QWag...OOFOAq11222 E7SVV#344EE%	5 	5re   c                 N   d}d}t           j        r<t          dd           t          d| j        j        z             t          d|           | j        j        }t           j        rt          dd	           t          ||dz             D ]}t          j	        d
|z  t          j
                  }t           j        rt          d|z  d	           | j                            |d|d|z             | j                            |dt          |          z             }|                                  | j        j        }t           j        rt                       t          d           t          ||dz             D ]}t          j	        d
|z  t          j
                  }|j                                        }t           j        rt          d|z  d	           t           j        rt          j        ||          st          d|j        j                   t          d|j        j        d	           t          d|j        j        z             t          d|j        d	           t          d|j        z             |                     |j        |j                   |                     |j        |j                   |                     t          j        ||                     | j                            |dt          |          z             }t           j        rt                       dS dS )z~Checking creation of large rank arrays (0 < rank <= 32)
        It also uses arrays ranks which ranges until maxrank.
        r#   r   r   r	   z$Running %s.test01_largeRankArrays...zMaximum rank for tested arrays:zRank array writing progress: r   r   )r#   z%3d,rb   zRank: %srz  zRank array reading progress: r{  z  Shape: ==>z  typecode ==> %cr|  z. Type ==> %cN)r   r$   r%   r   r   r   r-   rangerS   r~  r   r2   r  r  r*  rb   r3   r4   r  r5   r   r&   r8   rB   get_node)rD   minrankmaxrankrz  rankrF   rI   s          rM   test01_largeRankArraysz*GroupsArrayTestCase.test01_largeRankArrays  s    > 	>$	"""8.)* + + +3W=== > 	<1s;;;;'7Q;// 	I 	IDtRX..A~ 0fo3////K$$UGQ
T8IJJJK,,UGc$ii4GHHEE 	 > 	3GGG1222'7Q;// 	E 	EDtRX..A  ""A~ 0fo3////~ 1foa&;&; 1*EK,CDDDnek&7SAAAA)EK,@@AAA:AGMMMMo/000QWag...QWag...OOFOAq11222 K((#d))0CDDEE> 	GGGGG	 	re   N)r   r   r   r   r  r  r   re   rM   rc  rc  P  s9        DD:5 :5 :5x; ; ; ; ;re   rc  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )CopyTestCasec                    t           j        r,t          dd           t          d| j        j        z             t          j        ddgddggd	          }| j                            | j        j	        d
|d          }|
                    dd          }| j        rQt           j        rt          d           |                                  | j        j	        j        }| j        j	        j        }t           j        rt          d|                                           t          d|                                           t          dt!          |j                             t          dt!          |j                             |                     t          j        |                                |                                                     |                     |j        |j                   |                     |j        |j                   |                     |j        j        |j        j                   |                     |j        |j                   dS )zChecking Array.copy() method.r   r	   zRunning %s.test01_copy...  r   r     r   rP   array1title array1r   array2(closing file version)	array1-->	array2-->attrs array1-->attrs array2-->N)r   r$   r%   r   r   rS   rb   r   r2   r-   r   closer*  r  r  r3   reprattrsrB   r4   r8   rA   r>   r9   r&   r(   rD   arrr  r  s       rM   test01_copyzCopyTestCase.test01_copy  s    > 	I$	"""-0GGHHH ha1c(+7;;;))Kh^= = S(++: 	-~ 0.///LLNNN[%,F[%,F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 	v{{}}EEFFF 	v|444666*FK,=>>>v|44444re   c                    t           j        r,t          dd           t          d| j        j        z             t          j        ddgddggd	          }| j                            | j        j	        d
|d          }| j        
                    dd          }|                    |d          }| j        rVt           j        rt          d           |                                  | j        j	        j        }| j        j	        j        j        }t           j        rt          d|                                           t          d|                                           t          dt%          |j                             t          dt%          |j                             |                     t          j        |                                |                                                     |                     |j        |j                   |                     |j        |j                   |                     |j        j        |j        j                   |                     |j        |j                   dS )z.Checking Array.copy() method (where specified)r   r	   zRunning %s.test02_copy...r  r   r   r  r   rP   r  r  r   group1r  r  r  r  r  r  N)r   r$   r%   r   r   rS   rb   r   r2   r-   r  r   r  r*  r  r  r  r3   r  r  rB   r4   r8   rA   r>   r9   r&   r(   )rD   r  r  r  r  s        rM   test02_copyzCopyTestCase.test02_copy  s    > 	I$	"""-0GGHHH ha1c(+7;;;))Kh^= = ))#x88VX..: 	4~ 0.///LLNNN[%,F[%,3F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 	v{{}}EEFFF 	v|444666*FK,=>>>v|44444re   c                    t           j        r,t          dd           t          d| j        j        z             t          j        ddgddggd	          }| j                            | j        j	        d
|d          }d|j
        _        d|j
        _        |                    ddd          }| j        rQt           j        rt          d           |                                  | j        j	        j        }| j        j	        j        }t           j        rt          d|j                   |                     |j        d           dS )z5Checking Array.copy() method (checking title copying)r   r	   zRunning %s.test04_copy...r  r   r   r  r   rP   r  r  attr1r   r  ztitle array2)r(   r  ztitle of destination array-->N)r   r$   r%   r   r   rS   rb   r   r2   r-   r  r  attr2r   r  r*  r  r  r(   r8   r  s       rM   test03_copyzCopyTestCase.test03_copy  s5    > 	I$	"""-0GGHHH ha1c(+7;;;))Kh^= = %S(.AA: 	-~ 0.///LLNNN[%,F[%,F > 	A16<@@@~66666re   c                 ,   t           j        r,t          dd           t          d| j        j        z             t          j        ddgddggd	          }| j                            | j        j	        d
|d          }d|j
        _        d|j
        _        |                    ddd          }| j        rQt           j        rt          d           |                                  | j        j	        j        }| j        j	        j        }t           j        rDt          dt%          |j
                             t          dt%          |j
                             |                     |j
        j        d           |                     |j
        j        d           dS )z5Checking Array.copy() method (user attributes copied)r   r	   zRunning %s.test05_copy...r  r   r   r  r   rP   r  r  r  r   r  r#   copyuserattrsr  r  r  N)r   r$   r%   r   r   rS   rb   r   r2   r-   r  r  r  r   r  r*  r  r  r  r8   r  s       rM   test04_copyzCopyTestCase.test04_copy9  su    > 	I$	"""-0GGHHH ha1c(+7;;;))Kh^= = %S(!<<: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	+W555+Q/////re   c                 P   t           j        r,t          dd           t          d| j        j        z             t          j        ddgddggd	          }| j                            | j        j	        d
|d          }d|j
        _        d|j
        _        |                    ddd          }| j        rQt           j        rt          d           |                                  | j        j	        j        }| j        j	        j        }t           j        rDt          dt%          |j
                             t          dt%          |j
                             |                     t)          |j
        d          d           |                     t)          |j
        d          d           dS )z9Checking Array.copy() method (user attributes not copied)r   r	   zRunning %s.test05b_copy...r  r   r   r  r   rP   r  r  r  r   r  r   r  r  r  r  r  N)r   r$   r%   r   r   rS   rb   r   r2   r-   r  r  r  r   r  r*  r  r  r  r8   r   r  s       rM   test04b_copyzCopyTestCase.test04b_copyY  s    > 	J$	""".1HHIII ha1c(+7;;;))Kh^= = %S(!<<: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	w77;;;w77;;;;;re   N)r   r   r   r  r  r  r  r  r   re   rM   r  r    sb        $5 $5 $5L%5 %5 %5N7 7 7:0 0 0@< < < < <re   r  c                       e Zd ZdZdS )CloseCopyTestCaser#   Nr   r   r   r  r   re   rM   r  r  z          EEEre   r  c                       e Zd ZdZdS )OpenCopyTestCaser   Nr  r   re   rM   r  r  ~  r  re   r  c                       e Zd Zd Zd ZdS )CopyIndexTestCasec                    t           j        r,t          dd           t          d| j        j        z             t          j        dd          }d|_        | j        	                    | j        j
        d|d	          }|                    d
d| j        | j        | j                  }t           j        rt          d|                                           t          d|                                           t          dt!          |j                             t          dt!          |j                             || j        | j        | j                 }|                     t          j        ||                                                     t           j        r0t          d|j                   t          d|j        d                    |                     |j        d         |j                   dS )z*Checking Array.copy() method with indexes.r   r	   zRunning %s.test01_index...   r   rP   r;  r   r  r  r   r  r   r   r  r  r  r  r  nrows in array2-->and it should be-->r   N)r   r$   r%   r   r   rS   r   r5   r   r2   r-   r   r   r   r  r3   r  r  rB   r4   rA   r8   rD   r   r  r  r2s        rM   test01_indexzCopyIndexTestCase.test01_index  s    > 	J$	""".1HHIII Ic)))))Kh>; ; S(#':"&)"&)  - - > 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 tz$)DI-.FKKMM::;;; > 	6&555'!555!fl33333re   c                 P   t           j        r,t          dd           t          d| j        j        z             t          j        dd          }d|_        | j        	                    | j        j
        d|d	          }|                    d
d| j        | j        | j                  }|                                  | j        j
        j        }| j        j
        j        }t           j        rt          d|                                           t          d|                                           t          dt'          |j                             t          dt'          |j                             || j        | j        | j                 }|                     t          j        ||                                                     t           j        r0t          d|j                   t          d|j        d                    |                     |j        d         |j                   dS )z>Checking Array.copy() method with indexes (close file version)r   r	   z Running %s.test02_indexclosef...r  r   rP   r  r  r  r   r  r  r  r  r  r  r  r  r   N)r   r$   r%   r   r   rS   r   r5   r   r2   r-   r   r   r   r  r*  r  r  r3   r  r  rB   r4   rA   r8   r  s        rM   test02_indexclosefz$CopyIndexTestCase.test02_indexclosef  s    > 	P$	"""4t~7NNOOO Ic)))))Kh>; ; S(#':"&)"&)  - -
 	!(!(> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 tz$)DI-.FKKMM::;;; > 	6&555'!555!fl33333re   N)r   r   r   r  r  r   re   rM   r  r    s3        !4 !4 !4F&4 &4 &4 &4 &4re   r  c                       e Zd ZdZdZdZdS )CopyIndex1TestCaser      r#   Nr   r   r   r   r   r  r   re   rM   r  r            EDDDDre   r  c                       e Zd ZdZdZdZdS )CopyIndex2TestCaser   r#   Nr  r   re   rM   r  r            EDDDDre   r  c                       e Zd ZdZdZdZdS )CopyIndex3TestCaser#   r  Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex4TestCaser      r#   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex5TestCaser   r  r#   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex6TestCaser   r  r   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex7TestCaser   r  r  Nr  r   re   rM   r  r    s        EDDDDre   r  c                       e Zd ZdZdZdZdS )CopyIndex8TestCaser  r  r#   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex9TestCaser   r   r#   Nr  r   re   rM   r  r     r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex10TestCaser   r   r   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdZdZdS )CopyIndex11TestCaser  r   Nr  r   re   rM   r  r    s        EDDDDre   r  c                       e Zd ZdZdZdZdS )CopyIndex12TestCaser  Nr#   r  r   re   rM   r  r    s        EDDDDre   r  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                 Z   | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        rTt          d|d         t          |d                              t          d|d         t          |d                              |                     t          j        |d         |d                              |                     t          |d                   t          |d                              dS )z'Single element access (character types)r   r   Original first element:r   Read first element:N)charListr   r2   r-   r  r*  r   r   r$   r%   r'   rB   r4   r8   rD   rF   r  s      rM   test00_singlezGetItemTestCase.test00_single  s     Mk&&Kk1l< < : 	-LLNNN+",C > 	?+QqT4!::>>>'Qc!f>>>!c!f55666adT#a&\\22222re   c                 6   | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        rTt          d|d         t          |d                              t          d|d         t          |d                              |                     |d         |d                    |                     t          |d                   t          |d                              dS )z'Single element access (numerical types)r   r   r  r   r  N)numericalListr   r2   r-   r  r*  r   r   r$   r%   r'   r8   r  s      rM   test01_singlezGetItemTestCase.test01_single-  s     k&&Kk1l< < : 	-LLNNN+",C > 	?+QqT4!::>>>'Qc!f>>>1s1v&&&adT#a&\\22222re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r0t          d|dd                    t          d|dd                    | 
                    t          j        |dd         |dd                              dS )z&Range element access (character types)r   r   Original elements:r#   r   Read elements:N
charListMEr   r2   r-   r  r*  r   r   r$   r%   rB   r4   r  s      rM   test02_rangezGetItemTestCase.test02_range@  s     Ok&&Kk1l< < : 	-LLNNN+",C > 	.&!A#///"C!H---!A#AaC99:::::re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r0t          d|dd                    t          d|dd                    | 
                    t          j        |dd         |dd                              dS )z&Range element access (numerical types)r   r   r  r#   r   r  NnumericalListMEr   r2   r-   r  r*  r   r   r$   r%   rB   r4   r  s      rM   test03_rangezGetItemTestCase.test03_rangeR  s      k&&Kk1l< < : 	-LLNNN+",C > 	.&!A#///"C!H---!A#AaC99:::::re   c           	         | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r2t          d|ddd                    t          d|ddd                    | 
                    t          j        |ddd         |ddd                              dS )	z/Range element access, strided (character types)r   r   r  r#   r   r   r  Nr  r  s      rM   test04_rangezGetItemTestCase.test04_ranged  s     Ok&&Kk1l< < : 	-LLNNN+",C > 	0&!Aa%111"C!AJ///!Aa%#a!e*==>>>>>re   c           	         | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r2t          d|ddd                    t          d|ddd                    | 
                    t          j        |ddd         |ddd                              dS )	z/Range element access, strided (numerical types)r   r   r  r#   r   r   r  Nr  r  s      rM   test05_rangezGetItemTestCase.test05_rangev  s      k&&Kk1l< < : 	-LLNNN+",C > 	0&!Aa%111"C!AJ///!Aa%#a!e*==>>>>>re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r,t          d|d                    t          d|d                    | 
                    t          j        |d         |d                              dS )z/Negative Index element access (character types)r   r   Original last element:r  Read last element:Nr  r  s      rM   test06_negativeIndexz$GetItemTestCase.test06_negativeIndex  s     Ok&&Kk1l< < : 	-LLNNN+",C > 	1*AbE222&B000"s2w7788888re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r,t          d|d                    t          d|d                    t          |d         t          j                  r6|                     t          j        |d         |d                              dS |                     |d         |d                    dS )z/Negative Index element access (numerical types)r   r   Original before last element:Read before last element:Nr  r   r2   r-   r  r*  r   r   r$   r%   r_   rS   ra   rB   r4   r8   r  s      rM   test07_negativeIndexz$GetItemTestCase.test07_negativeIndex  s      k&&Kk1l< < : 	-LLNNN+",C > 	811R5999-s2w777aeRZ(( 	-OOFOAbE3r7;;<<<<<QrUCG,,,,,re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r0t          d|dd                    t          d|dd                    | 
                    t          j        |dd         |dd                              dS )z/Negative range element access (character types)r   r   Original last elements:r  Read last elements:Nr  r  s      rM   test08_negativeRangez$GetItemTestCase.test08_negativeRange  s     Ok&&Kk1l< < : 	-LLNNN+",C > 	5+Qr"uX666'RU444"R%#be*==>>>>>re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          j        r0t          d|dd                    t          d|dd                    | 
                    t          j        |dd         |dd                              dS )z/Negative range element access (numerical types)r   r   r  r  r  r  Nr  r  s      rM   test09_negativeRangez$GetItemTestCase.test09_negativeRange  s      k&&Kk1l< < : 	-LLNNN+",C > 	5+Qr"uX666'RU444"R%#be*==>>>>>re   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r   re   rM   r  r    s        3 3 3&3 3 3&; ; ;$; ; ;$? ? ?$? ? ?$9 9 9$- - -*? ? ?$? ? ? ? ?re   r  c                       e Zd ZdZ ej        dg          Z ej        g d          Z ej        dgd          Z ej        g dd          Z	dS )GI1NATestCaser   r   r   r   r#   r   r   r   r  3r   321221r   021421521621N
r   r   r   r(   rS   rb   r  r  r  r  r   re   rM   r
  r
    q        EBHaSMMMbh44455Orxs##H9993@ @JJJre   r
  c                       e Zd ZdZdS )GI1NAOpenTestCaser   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdS )GI1NACloseTestCaser#   Nr  r   re   rM   r  r    r  re   r  c            	           e Zd ZdZ ej        ddg          Z ej        g dg dg dg dg dg          Z ej        ddgd	          Z ej        g d
g dg dg d
g dg dgd	          Z	dS )GI2NATestCaseRank-1,2 case 2r   r   r  r   r#   r   r   r   r  r  r   r   r   r#   r   r   r   rF   rI   r   r  21r   110242r   6131r   12r   4151r  3241232113216062144215421a621a321s221d121g021b4215vvv216zxzxs21Nr  r   re   rM   r  r            EBHaV$$Mbh 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5	 7 8 8O rxc
C((H	:	:	:	3	3	3	4	4	4
 
 

* 
* 
*	G	G	G	I KNO OJJJre   r  c                       e Zd ZdZdS )GI2NAOpenTestCaser   Nr  r   re   rM   r<  r<    r  re   r<  c                       e Zd ZdZdS )GI2NACloseTestCaser#   Nr  r   re   rM   r>  r>    r  re   r>  c                   P    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 ZdS )SetItemTestCasec                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }d|d<   d|d<   t          j        r,t          d|d                    t          d|d                    | 
                    t          j        |d         |d                              dS )	z'Single element update (character types)r   r   rF      br   r  r  N)r  r   r2   r-   r  r*  r   r   r$   r%   rB   r4   r  s      rM   r  zSetItemTestCase.test00_single  s     Mk&&Kk1l< < : 	-LL+",C !A > 	1+QqT222'Q000!c!f5566666re   c                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }d|d<   d|d<   t          j        r,t          d|d                    t          d|d                    | 
                    |d         |d                    dS )	z'Single element update (numerical types)r   r   rF   iM  r   r  r  Nr  r   r2   r-   r  r*  r   r   r$   r%   r8   r  s      rM   r  zSetItemTestCase.test01_single  s     k&&Kk1l< < : 	-LL+",C !A > 	1+QqT222'Q0001s1v&&&&&re   c                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }d|dd<   d|dd<   t          j        r0t          d|dd                    t          d	|dd                    | 
                    t          j        |dd         |dd                              d
S )z&Range element update (character types)r   r   rF      xXxr#   r   r  r   r  Nr  r  s      rM   r  zSetItemTestCase.test02_range1  s     Ok&&Kk1l< < : 	-LL+",C !A#AaC > 	.&!A#///"C!H---!A#AaC99:::::re   c                 H   | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          ddd          }t          j	        ||         j
                  dz  dz   }||         j        |_        |||<   |||<   t          j        r0t          d|dd	                    t          d
|dd	                    |                     t          j        |dd	         |dd	                              dS )z&Range element update (numerical types)r   r   rF   r#   r   Nr   r  r   r  r  r   r2   r-   r  r*  r   slicerS   r   r   r5   r   r$   r%   rB   r4   rD   rF   r  srngs        rM   r  zSetItemTestCase.test03_rangeG  s     k&&Kk1l< < : 	-LL+",C !Qi!	""1$q(aDJ	!A > 	.&!A#///"C!H---!A#AaC99:::::re   c           	         | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          ddd          }d||<   d||<   t          j	        r2t          d|ddd                    t          d	|ddd                    |                     t          j        |ddd         |ddd                              d
S )z/Range element update, strided (character types)r   r   rF   r#   r   r   rF  r  r  Nr  r   r2   r-   r  r*  r   rI  r   r$   r%   rB   r4   rD   rF   r  rK  s       rM   r  zSetItemTestCase.test04_range`  s     Ok&&Kk1l< < : 	-LL+",C !QNN!A > 	0&!Aa%111"C!AJ///!Aa%#a!e*==>>>>>re   c           	      P   | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          ddd          }t          j	        ||         j
                  dz  dz   }||         j        |_        |||<   |||<   t          j        r2t          d|ddd                    t          d	|ddd                    |                     t          j        |ddd         |ddd                              d
S )z/Range element update, strided (numerical types)r   r   rF   r#   r   r   r   r  r  NrH  rJ  s        rM   r  zSetItemTestCase.test05_rangew  s%     k&&Kk1l< < : 	-LL+",C !QNNi!	""1$q(aDJ	!A > 	0&!Aa%111"C!AJ///!Aa%#a!e*==>>>>>re   c                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }d}d||<   d||<   t          j        r,t          d|d                    t          d|d                    | 
                    t          j        |d         |d                              dS )	z/Negative Index element update (character types)r   r   rF   r  rF  r  r  Nr  rO  s       rM   r  z$SetItemTestCase.test06_negativeIndex  s     Ok&&Kk1l< < : 	-LL+",C !A > 	1*AbE222&B000"s2w7788888re   c                 d   | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }d}||         dz  dz   ||<   ||         dz  dz   ||<   t          j        r,t          d|d                    t          d|d                    t          |d         t          j                  r6|                     t          j        |d         |d                              d	S |                     |d         |d                    d	S )
z/Negative Index element update (numerical types)r   r   rF   r  r   r   r  r  Nr   rO  s       rM   r  z$SetItemTestCase.test07_negativeIndex  s+     k&&Kk1l< < : 	-LL+",C tAvz!QAA > 	811R5999-s2w777aeRZ(( 	-OOFOAbE3r7;;<<<<<QrUCG,,,,,re   c                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          ddd          }d||<   d||<   t          j	        r0t          d|dd                    t          d	|dd                    |                     t          j        |dd         |dd                              dS )
z/Negative range element update (character types)r   r   rF   r  r  NrF  r  r  rN  rO  s       rM   r  z$SetItemTestCase.test08_negativeRange  s     Ok&&Kk1l< < : 	-LL+",C "b$!A > 	5+Qr"uX666'RU444"R%#be*==>>>>>re   c                 H   | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          ddd          }t          j	        ||         j
                  dz  dz   }||         j        |_        |||<   |||<   t          j        r0t          d	|d
d                    t          d|d
d                    |                     t          j        |d
d         |d
d                              dS )z/Negative range element update (numerical types)r   r   rF   r  r  Nr   r   r  r  r  rH  rJ  s        rM   r  z$SetItemTestCase.test09_negativeRange  s     k&&Kk1l< < : 	-LL+",C "b$i!	""1$q(aDJ	!A > 	5+Qr"uX666'RU444"R%#be*==>>>>>re   c                    | j         }| j                            | j        j        d|d          }| j        r&|                     d           | j        j        j        }t          d|j        d         dz   d          }t          ddd          }t          j
        ||         j                  dz  d	z   }||         j        |_        |||<   t          j
        ||         j                  dz  d	z   }||         j        |_        |||<   t          j        r0t          d
|dd                    t          d|dd                    |                     t          j        |dd         |dd                              dS )z%Out of range update (numerical types)r   r   rF   r#   r   Nr   r   r   r  r  r  r  )r  r   r2   r-   r  r*  r   rI  r5   rS   r   r   r   r$   r%   rB   r4   )rD   rF   r  rK  s2rL  rng2s          rM   test10_outOfRangez!SetItemTestCase.test10_outOfRange  sf     k&&Kk1l< < : 	-LL+",C !QWQZ\4((1dD!!i!	""1$q(aDJ	!y2$$Q&*rU[
B > 	5+Qr"uX666'RU444"R%#be*==>>>>>re   N)r   r   r   r  r  r  r  r  r  r  r  r  r  rX  r   re   rM   r@  r@    s        7 7 7,' ' ',; ; ;,; ; ;2? ? ?.? ? ?29 9 9.- - -4? ? ?.? ? ?2? ? ? ? ?re   r@  c                       e Zd ZdZ ej        dg          Z ej        g d          Z ej        dgd          Z ej        g dd          Z	dS )SI1NATestCaser   r   r  r  r   r  Nr  r   re   rM   rZ  rZ    r  re   rZ  c                       e Zd ZdZdS )SI1NAOpenTestCaser   Nr  r   re   rM   r\  r\    r  re   r\  c                       e Zd ZdZdS )SI1NACloseTestCaser#   Nr  r   re   rM   r^  r^    r  re   r^  c            	           e Zd ZdZ ej        ddg          Z ej        g dg dg dg dg dg          Z ej        ddgd	          Z ej        g d
g dg dg d
g dg dgd	          Z	dS )SI2NATestCaser  r   r   r  r  r  rF   rI   r   r  r  r%  r*  r2  Nr  r   re   rM   r`  r`    r:  re   r`  c                       e Zd ZdZdS )SI2NAOpenTestCaser   Nr  r   re   rM   rb  rb  5  r  re   rb  c                       e Zd ZdZdS )SI2NACloseTestCaser#   Nr  r   re   rM   rd  rd  9  r  re   rd  c                   &    e Zd Zd Zd Zd Zd ZdS )GeneratorTestCasec                 n   | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }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 r   r   .0rh  s     rM   
<listcomp>z4GeneratorTestCase.test00a_single.<locals>.<listcomp>L      ^^^Aa^^^re   c                     g | ]}|S r   r   ri  s     rM   rk  z4GeneratorTestCase.test00a_single.<locals>.<listcomp>M      are   Result of original iterator:Result of read generator:N)r  r   r2   r-   r  r*  r   r   r$   r%   r8   rD   rF   r  gagarrs        rM   test00a_singlez GeneratorTestCase.test00a_single?  s     Mk&&Kk1l< < : 	-LLNNN+",C ^^^^3> 	50"555-t444T"""""re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          |          }t          |          }t          j	        r t          d|           t          d|           t          ||          D ]-\  }}|                     t          j        ||                     .dS )z<Testing generator access to Arrays, multiple elements (char)r   r   ro  rp  N)r  r   r2   r-   r  r*  r   rq   r   r$   r%   ziprB   r4   rD   rF   r  rr  rs  x_gax_garrs          rM   
test00b_mezGeneratorTestCase.test00b_meS  s     Ok&&Kk1l< < : 	-LLNNN+",C !WWCyy> 	50"555-t444DMM 	; 	;LD&OOFOD&99::::	; 	;re   c                 n   | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }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 r   r   ri  s     rM   rk  z4GeneratorTestCase.test01a_single.<locals>.<listcomp>v  rl  re   c                     g | ]}|S r   r   ri  s     rM   rk  z4GeneratorTestCase.test01a_single.<locals>.<listcomp>w  rn  re   ro  rp  NrD  rq  s        rM   test01a_singlez GeneratorTestCase.test01a_singlei  s     k&&Kk1l< < : 	-LLNNN+",C ^^^^3> 	50"555-t444T"""""re   c                    | j         }| j                            | j        j        d|d          }| j        r%|                                  | j        j        j        }t          |          }t          |          }t          j	        r t          d|           t          d|           t          ||          D ]-\  }}|                     t          j        ||                     .dS )z?Testing generator access to Arrays, multiple elements (numeric)r   r   ro  rp  N)r  r   r2   r-   r  r*  r   rq   r   r$   r%   rv  rB   r4   rw  s          rM   
test01b_mezGeneratorTestCase.test01b_me}  s      k&&Kk1l< < : 	-LLNNN+",C !WWCyy> 	50"555-t444DMM 	; 	;LD&OOFOD&99::::	; 	;re   N)r   r   r   rt  rz  r~  r  r   re   rM   rf  rf  =  sP        # # #(; ; ;,# # #(; ; ; ; ;re   rf  c                       e Zd ZdZ ej        dg          Z ej        g d          Z ej        dgd          Z ej        g dd          Z	dS )GE1NATestCaser   r   r  r  r   r  Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdS )GE1NAOpenTestCaser   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdS )GE1NACloseTestCaser#   Nr  r   re   rM   r  r    r  re   r  c            	           e Zd ZdZ ej        ddg          Z ej        g dg dg dg dg dg          Z ej        ddgd	          Z ej        g d
g dg dg d
g dg dgd	          Z	dS )GE2NATestCaser  r   r   r  r  r  rF   rI   r   r  r  r%  r*  r2  Nr  r   re   rM   r  r    r:  re   r  c                       e Zd ZdZdS )GE2NAOpenTestCaser   Nr  r   re   rM   r  r    r  re   r  c                       e Zd ZdZdS )GE2NACloseTestCaser#   Nr  r   re   rM   r  r    r  re   r  c                       e Zd Zd ZdS )NonHomogeneousTestCasec           	          |                      t          t          f| j        j        dddddgg           |                      t
          j        | j        j        d           dS )z,Test for creation of non-homogeneous arrays.r   testr#   r   r   z/testN)rz   r  r{   r   r2   r+   NoSuchNodeErrorremove_noder   s    rM   r  zNonHomogeneousTestCase.test  sb     	:y1+2C!aV	N 	N 	N",dk.EwOOOOOre   Nr   r   r   r  r   re   rM   r  r    s(        P P P P Pre   r  c                       e Zd Zd ZdS )TruncateTestCasec                     | j                             ddddg          }|                     t          |j        d           dS )z-Test for unability to truncate Array objects.r   r  r   r   N)r   r2   rz   r{   truncate)rD   r  s     rM   r  zTruncateTestCase.test  sA     ))#x!Q@@)V_a88888re   Nr  r   re   rM   r  r    s#        9 9 9 9 9re   r  c                   N     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Z xZS )
PointSelectionTestCasec                 `   t                                                       g d| _        t          j        | j                  }t          j        |t          j                                      | j                  }|| _	        | j
                            | j
        j        d|          | _        d S )N)r   r#   )   )r  r   )r   r  rP   rb   )r   r   limitsrS   prodr5   r   r   rT  r   r   r2   r-   tbarr)rD   r   r   r   s      rM   r   zPointSelectionTestCase.setUp  s    
 
 
 wtz""	$bh///77
CC
[--dk.>OO


re   c                    | j         }| j        }| j        D ]j\  }}||k    ||k     z  }t          j        rt          d|           ||         }||         }|                     t          j        ||k              d           kdS )z/Test for point-selections (read, boolean keys).Selection to test:3NumPy array and PyTables selections does not match.N	r   r  r  r   r$   r%   rB   rS   alltruerD   r   r  value1value2keyrF   rI   s           rM   test01a_readz#PointSelectionTestCase.test01a_read  s     

"k 	G 	GNFFF?uv~6C~ 1*C000c
Ac
AOO
16""EG G G G	G 	Gre   c                 *   | j         }| j        }| j        D ]|\  }}t          j        ||k    ||k     z            }t
          j        rt          d|           ||         }||         }|                     t          j	        ||k              d           }dS )z/Test for point-selections (read, integer keys).r  r  N
r   r  r  rS   wherer   r$   r%   rB   r  r  s           rM   test01b_readz#PointSelectionTestCase.test01b_read  s     

"k 	G 	GNFF(EVO?@@C~ 1*C000c
Ac
AOO
16""EG G G G	G 	Gre   c                 ,   | j         }| j        }| j        D ]}\  }}t          j        ||k    ||k     z            }t
          j        rt          d|           t          j        |d          }| 	                    t          t          f|j        |           ~dS )z-Test for point-selections (read, float keys).r  f4N)r   r  r  rS   r  r   r$   r%   rb   rz   
IndexErrorr{   __getitem__)rD   r   r  r  r  r  fkeys          rM   test01c_readz#PointSelectionTestCase.test01c_read  s     

"k 	P 	PNFF(EVO?@@C~ 1*C0008C&&Dz95u7H$OOOO	P 	Pre   c                    | j         }| j        }| j        D ]i}|j        dk    rt	          |          }t
          j        rt          d|           ||         }||         }t          j	        
                    ||d           jd S )Nr#   r  r  )r   r  working_keysetr?   tupler   r$   r%   rS   r   assert_array_equalrD   r   r  r  rF   rI   s         rM   test01d_readz#PointSelectionTestCase.test01d_read  s    

& 	M 	MCzA~~Cjj~ 1*C000c
Ac
AJ))1KM M M M	M 	Mre   c                     | j         }| j        D ]?}t          j        rt	          d|           |                     t          |j        |           @d S )Nr  r  not_working_keysetr   r$   r%   rz   r  r  rD   r  r  s      rM   test01e_readz#PointSelectionTestCase.test01e_read  sb    
* 	B 	BC~ 1*C000j%*;SAAAA		B 	Bre   c                 >   | j         }| j        }| j        D ]\  }}||k    ||k     z  }t          j        rt          d|           ||         }|dz  ||<   |dz  ||<   |dd         }|dd         }|                     t          j        ||k              d           dS )z0Test for point-selections (write, boolean keys).r  r   N6NumPy array and PyTables modifications does not match.r  	rD   r   r  r  r  r  rK  rF   rI   s	            rM   test02a_writez$PointSelectionTestCase.test02a_write(  s     

"k 	J 	JNFFF?uv~6C~ 1*C000c
AQE#JQE#JaaaAaaaAOO
16""HJ J J J	J 	Jre   c                 b   | j         }| j        }| j        D ]\  }}t          j        ||k    ||k     z            }t
          j        rt          d|           ||         }|dz  ||<   |dz  ||<   |dd         }|dd         }|                     t          j	        ||k              d           dS )z0Test for point-selections (write, integer keys).r  r   Nr  r  r  s	            rM   test02b_writez$PointSelectionTestCase.test02b_write:  s     

"k 	J 	JNFF(EVO?@@C~ 1*C000c
AQE#JQE#JaaaAaaaAOO
16""HJ J J J	J 	Jre   c                 F   | j         }| j        }| j        D ]\  }}t          j        ||k    ||k     z            }t
          j        rt          d|           d||<   d||<   |dd         }|dd         }|                     t          j	        ||k              d           dS )z=Test for point-selections (write, integer values, broadcast).r  r   Nr  r  r  s           rM   test02c_writez$PointSelectionTestCase.test02c_writeL  s     

"k 	J 	JNFF(EVO?@@C~ 1*C000E#JE#JaaaAaaaAOO
16""HJ J J J	J 	Jre   )r   r   r   r   r  r  r  r  r  r  r  r  r  r  s   @rM   r  r    s        P P P P P G G GG G GP P PM M MB B BJ J J$J J J$J J J J J J Jre   r  c                   8    e Zd ZdZddgddggZddgddgddggZdS )	PointSelection0r   r   r#   r  r   r   r  Nr   r   r   r5   r  r  r   re   rM   r  r  _  sI        E	
A	
BN
 
A	
A	
Bre   r  c                   >    e Zd ZdZg dg dgZg dg dg dg dgZdS )	PointSelection1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  Nr  r   re   rM   r  r  l  s\        E   !!!N
 	!     !!!!!!	re   r  c                   D    e Zd ZdZddgddgddggZddgddgddgdd	ggZd
S )PointSelection2)r  r   r  r  r  )r   r  r  r  r  r  Nr  r   re   rM   r  r  z  s^        E			N 
				re   r  c                   8    e Zd ZdZg dg dgZg dg dg dgZdS )PointSelection3)r   r   r   r#   )r  r  r  r  )r  r  r  r  )r  r  r  r  )r  r  r  r  )r  r  r  r  Nr  r   re   rM   r  r    sS        E((()))N
 	)((((()))re   r  c                   8    e Zd ZdZg dg dgZg dg dg dgZdS )PointSelection4)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  r  r  r  Nr  r   re   rM   r  r    sS        E000111N
 	100000111re   r  c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )FancySelectionTestCasec                 2   t                                                       | j        \  }}}ddgt          d|dz
            df|dz
  dddgt          d           dft          |          |dz
  ddgt          d           ft          d|d          t          d|          |dz
  ddgf|dz
  ddgdfdddgddfddgddfddgdt          ft          ddgft          j        ddgd          ddft          j        ddgd	          ddfg| _        t          j        d
dgd          g dddfddgdddgfg ddft          ddgt          fd
dgg| _        ddgddfddgddfg| _	        ddgdddfg| _
        t          j        | j        t
          j                  }t          j        ||z  t
          j                                      ||          }t          |          D ]
}||z  ||<   || _        | j                            | j        j        d|          | _        d S )Nr#   r   r   r   )r#   r   r#   r  r  r  i8FTr   rP   r   i  rb   )r   r   r5   rI  EllipsisrS   rb   r  r  not_working_oobnot_working_too_manyr   r   r   rT  r  r   r   r2   r-   r  )rD   mnor   datarh  r   s          rM   r   zFancySelectionTestCase.setUp  so   *1a VU1ac]]A&c1a^U4[[!,1XX!Q{E$KK01a^^U1a[[1Q31+6qS1a&!VRWaWa"1vXB  !2'XQ  !2'
4 HeT]$///YY1VQAAJ1vx(T]#
 VQVT1 
 VQ1%
!
 28444yQbh///771==q 	  	 AaxE!HH
[--dk.>OO


re   c                     | j         }| j        }| j        D ]Z}t          j        rt          d|           ||         }||         }|                     t          j        ||k              d           [dS )z5Test for fancy-selections (working selections, read).r  r  N	r   r  r  r   r$   r%   rB   rS   r  r  s         rM   r  z#FancySelectionTestCase.test01a_read  s     

& 	G 	GC~ 1*C000c
Ac
AOO
16""EG G G G	G 	Gre   c                     | j         }| j        D ]?}t          j        rt	          d|           |                     t          |j        |           @dS )z9Test for fancy-selections (not working selections, read).r  Nr  r  s      rM   r  z#FancySelectionTestCase.test01b_read  sd     
* 	B 	BC~ 1*C000j%*;SAAAA		B 	Bre   c                     | j         }| j        }| j        D ]`}t          j        rt          d|           |                     t          |j        |           |                     t          |j        |           adS )z7Test for fancy-selections (out-of-bound indexes, read).r  N)	r   r  r  r   r$   r%   rz   r  r  rD   r   r  r  s       rM   r  z#FancySelectionTestCase.test01c_read  s     

' 	B 	BC~ 1*C000j%*;SAAAj%*;SAAAA		B 	Bre   c                     | j         }| j        }| j        D ]g}t          j        rt          d|           |                     t          t          f|j	        |           |                     t          |j	        |           hdS )z3Test for fancy-selections (too many indexes, read).r  N)
r   r  r  r   r$   r%   rz   r  r  r  r  s       rM   r  z#FancySelectionTestCase.test01d_read	  s     

, 	B 	BC~ 1*C000 z:68I3OOOj%*;SAAAA	B 	Bre   c                    | j         }| j        }| j        D ]v}t          j        rt          d|           ||         }|dz  ||<   |dz  ||<   |dd         }|dd         }|                     t          j        ||k              d           wdS )z6Test for fancy-selections (working selections, write).r  r   Nr  r  )rD   r   r  r  rK  rF   rI   s          rM   r  z$FancySelectionTestCase.test02a_write	  s     

& 
	J 
	JC~ 1*C000c
AQE#JQE#JaaaAaaaAOO
16""HJ J J J
	J 
	Jre   c                    | j         }| j        }| j        D ]h}t          j        rt          d|           d||<   d||<   |dd         }|dd         }|                     t          j        ||k              d           idS )zATest for fancy-selections (working selections, write, broadcast).r  r   Nr  r  r  s         rM   r  z$FancySelectionTestCase.test02b_write#	  s     

& 	J 	JC~ 1*C000E#JE#JaaaAaaaA OO
16""HJ J J J	J 	Jre   )r   r   r   r   r  r  r  r  r  r  r  r  s   @rM   r  r    s        :P :P :P :P :PxG G G	B 	B 	B	B 	B 	BB B BJ J J"J J J J J J Jre   r  c                       e Zd ZdZdS )FancySelection1r  Nr   r   r   r5   r   re   rM   r  r  8	  s        EEEre   r  c                       e Zd ZdZdS )FancySelection2)r  r   r   Nr  r   re   rM   r  r  <	          EEEre   r  c                       e Zd ZdZdS )FancySelection3)r  r   r   Nr  r   re   rM   r  r  A	  r  re   r  c                       e Zd ZdZdS )FancySelection4)r   r   r  Nr  r   re   rM   r  r  F	  s        EEEre   r  c                   4     e Zd Z fdZ fdZd Zd Z xZS )CopyNativeHDF5MDAtomc                    t                                                       t          j        d          }t	          j        |d          | _        | j        j        j        | _        t          j
        d          | _        t	          j        | j        d          | _        | j                            | j        j        d          | _        d S )Nzarray_mdatom.h5r   r   r   r   arr2)newname)r   r   r   test_filenamer+   r,   r   r-   r  r)   r*   r   copyhr  )rD   rG   r   s     rM   r   zCopyNativeHDF5MDAtom.setUpM	  s    '(9::l8S11;#'OE**	\$)#666
HMM$*/6MBB			re   c                     | j                                          | j                                         t          | j                                                   t                                                       d S rg   )r   r  r  r   r   rC   r   tearDownr   s    rM   r   zCopyNativeHDF5MDAtom.tearDownV	  sa    
TY   re   c                     |                      | j        j        | j        j                   |                      | j        j        | j        j                   dS )z.Checking that native MD atoms are copied as-isN)r8   r  r9   r  r5   r   s    rM   r  z CopyNativeHDF5MDAtom.test01_copy\	  sF     		77799999re   c                 L   | j                                          t          j        | j        d          | _         | j         j        j        | _        |                     | j        j	        | j        j	                   |                     | j        j
        | j        j
                   dS )z8Checking that native MD atoms are copied as-is (re-open)r   r   N)r  r  r+   r,   r   r-   r  r8   r  r9   r5   r   s    rM   test02_reopenz"CopyNativeHDF5MDAtom.test02_reopenb	  s     	
\$)#666
JO(		77799999re   )r   r   r   r   r   r  r  r  r  s   @rM   r  r  K	  st        C C C C C    : : :: : : : : : :re   r  c                   0     e Zd Z fdZd Zd Zd Z xZS )AccessClosedTestCasec                     t                                                       t          j        d          }| j                            | j        j        d|          | _        d S )Nr  rb   )r   r   rS   r  r   r2   r-   rb   )rD   rF   r   s     rM   r   zAccessClosedTestCase.setUpn	  sG    HX[--dk.>KK


re   c                     | j                                          |                     t          j        | j        j                   d S rg   )r   r  rz   r+   ClosedNodeErrorrb   r3   r   s    rM   	test_readzAccessClosedTestCase.test_readt	  s9    ",djo>>>>>re   c                     | j                                          |                     t          j        | j        j        d           d S Nr   )r   r  rz   r+   r  rb   r  r   s    rM   test_getitemz!AccessClosedTestCase.test_getitemx	  s<    ",dj.DaHHHHHre   c                     | j                                          |                     t          j        | j        j        dd           d S r  )r   r  rz   r+   r  rb   __setitem__r   s    rM   test_setitemz!AccessClosedTestCase.test_setitem|	  s>    ",dj.DaKKKKKre   )r   r   r   r   r	  r  r  r  r  s   @rM   r  r  l	  st        L L L L L? ? ?I I IL L L L L L Lre   r  c                       e Zd Zd ZdS )BroadcastTestc                    d}d}t          j        t           j        |f          }t          j                            |          }| j                            | j        j        d||          }t          j	        |          }t          j
        |                              |          }||d<   |                     t          j        |d         |k                         dS )z<Test correct broadcasting when the array atom is not scalar.)r   r   r   rb   )r9   r5   r   N)rS   r&   r   r+   rZ   r[   r   r2   r-   r  r   rT  rB   all)rD   array_shapeelement_shaper&   r9   h5arrr   r   s           rM   r  zBroadcastTest.test	  s     "(M233w!!%(((()97.2+ ) G G w}%%	$''66auQx501122222re   Nr  r   re   rM   r  r  	  s#        3 3 3 3 3re   r  c                       e Zd ZdZdZ ej        ddgddgg          ZdZdZ	d	Z
ej                            ej                  Zej        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S )TestCreateArrayArgsr   rb   r#   r   r   r   r(   NFc                    | j                             | j        | j        | j        | j                   | j                                          t          j        | j	                  | _         | j         
                    | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S rg   )r   r2   r  r   rL   r(   r  r+   r,   h5fnamer  r3   r8   r5   r9   r&   rB   r   r4   rD   r\   r   s      rM   test_positional_argsz(TestCreateArrayArgs.test_positional_args	  s     TY$*MMMl4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c           
          | j                             | j        | j        d | j        | j        | j        | j        | j                   | j         	                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t%          j        t)          j        | j                  |                     d S rg   )r   r2   r  r   r(   r7   createparentsr9   r5   r  r+   r,   r  r  r3   r8   r&   rB   r   r4   rS   
zeros_likerL   r  s      rM   test_positional_args_atom_shapez3TestCreateArrayArgs.test_positional_args_atom_shape	  s+     TYdj!%1C!%DJ	8 	8 	8 	l4<00$$TZ;;

dj111dj111TY///)49?;;;dh(?(?GGHHHHHre   c                    | j                             | j        | j        | j        | j                   | j                                          t          j        | j	                  | _         | j         
                    | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S )N)r(   rL   )r   r2   r  r   r(   rL   r  r+   r,   r  r  r3   r8   r5   r9   r&   rB   r   r4   r  s      rM   test_kwargs_objz#TestCreateArrayArgs.test_kwargs_obj	  s     TYdj%)X 	! 	/ 	/ 	/l4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c                    | j                             | j        | j        | j        | j        | j                  }| j        |d<   | j                                          t          j
        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S )Nr(   r9   r5   .)r   r2   r  r   r(   r9   r5   rL   r  r+   r,   r  r  r3   r8   r&   rB   r   r4   r  s      rM   test_kwargs_atom_shape_01z-TestCreateArrayArgs.test_kwargs_atom_shape_01	  s%   ((TY/3z.2itz ) K K Xc
l4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c                    | j                             | j        | j        | j        | j        | j                  }| j                                          t          j	        | j
                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t!          j        t%          j        | j                  |                     d S )Nr$  )r   r2   r  r   r(   r9   r5   r  r+   r,   r  r  r3   r8   r&   rB   r   r4   rS   r  rL   r  s      rM   test_kwargs_atom_shape_02z-TestCreateArrayArgs.test_kwargs_atom_shape_02	  s$   ((TY/3z.2itz ) K K 	l4<00$$TZ;;

dj111dj111TY///)49?;;;dh(?(?GGHHHHHre   c                    | j                             | j        | j        | j        | j        | j                  }| j                                          t          j	        | j
                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S )Nr(   rL   r9   )r   r2   r  r   r(   rL   r9   r  r+   r,   r  r  r3   r8   r5   r&   rB   r   r4   r  s      rM   test_kwargs_obj_atomz(TestCreateArrayArgs.test_kwargs_obj_atom	  s   ((TY/3z-1X.2i ) 9 9 	l4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c                    | j                             | j        | j        | j        | j        | j                  }| j                                          t          j	        | j
                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S N)r(   rL   r5   )r   r2   r  r   r(   rL   r5   r  r+   r,   r  r  r3   r8   r9   r&   rB   r   r4   r  s      rM   test_kwargs_obj_shapez)TestCreateArrayArgs.test_kwargs_obj_shape	  s   ((TY/3z-1X/3z ) ; ; 	l4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c                    | j                             | j        | j        | j        | j        | j        | j                  }| j                                          t          j
        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     t#          j        | j        |                     d S Nr(   rL   r9   r5   )r   r2   r  r   r(   rL   r9   r5   r  r+   r,   r  r  r3   r8   r&   rB   r   r4   r  s      rM   test_kwargs_obj_atom_shapez.TestCreateArrayArgs.test_kwargs_obj_atom_shape
  s   ((TY/3z-1X.2i/3z	 ) ; ;
 	l4<00$$TZ;;

dj111dj111TY///)49?;;;%8899999re   c           	          t           j                            t          j        d                    }|                     t          | j        j        | j	        | j
        | j        | j        |           d S )Ncomplexr)  )r+   rZ   r[   rS   r&   rz   r{   r   r2   r  r   r(   rL   rD   r9   s     rM   test_kwargs_obj_atom_errorz.TestCreateArrayArgs.test_kwargs_obj_atom_error"
  si    w!!"(9"5"566)+2*) $
"h# 	 	% 	% 	% 	% 	%re   c           	          | j         | j         z   }|                     t          | j        j        | j        | j        | j        | j        |           d S r,  )	r5   rz   r{   r   r2   r  r   r(   rL   rD   r5   s     rM   test_kwargs_obj_shape_errorz/TestCreateArrayArgs.test_kwargs_obj_shape_error-
  sX    
TZ')+2*) $
"h % 	 	' 	' 	' 	' 	're   c           
          t           j                            t          j        d                    }|                     t          | j        j        | j	        | j
        | j        | j        || j                   d S Nr3  r0  )r+   rZ   r[   rS   r&   rz   r{   r   r2   r  r   r(   rL   r5   r4  s     rM   #test_kwargs_obj_atom_shape_error_01z7TestCreateArrayArgs.test_kwargs_obj_atom_shape_error_018
  sn    w!!"(9"5"566)+2*) $
"h# $
 	 	, 	, 	, 	, 	,re   c           
          | j         | j         z   }|                     t          | j        j        | j        | j        | j        | j        | j	        |           d S r/  )
r5   rz   r{   r   r2   r  r   r(   rL   r9   r7  s     rM   #test_kwargs_obj_atom_shape_error_02z7TestCreateArrayArgs.test_kwargs_obj_atom_shape_error_02D
  s]    
TZ')+2*) $
"h#y % 	 	' 	' 	' 	' 	're   c           
         t           j                            t          j        d                    }| j        | j        z   }|                     t          | j        j	        | j
        | j        | j        | j        ||           d S r:  )r+   rZ   r[   rS   r&   r5   rz   r{   r   r2   r  r   r(   rL   )rD   r9   r5   s      rM   #test_kwargs_obj_atom_shape_error_03z7TestCreateArrayArgs.test_kwargs_obj_atom_shape_error_03P
  sz    w!!"(9"5"566
TZ')+2*) $
"h# % 	 	' 	' 	' 	' 	're   )r   r   r   r  r   rS   rb   rL   r(   r7   r  r+   rZ   r[   r&   r9   r5   r  r   r"  r%  r'  r*  r-  r1  r5  r8  r;  r=  r?  r   re   rM   r  r  	  s2       ED
"(QFQF#
$
$CEIM7ci((DIE: : :I I I : : :: : :"I I I": : :": : :": : :$	% 	% 	%	' 	' 	'
, 
, 
,
' 
' 
'
' 
' 
' 
' 
're   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                                |                     t           j                            t"                               |                     t           j                            t$                               |                     t           j                            t&                               |                     t           j                            t(                               |                     t           j                            t*                               |                     t           j                            t,                               |                     t           j                            t.                               |                     t           j                            t0                               |                     t           j                            t2                               |                     t           j                            t4                               |                     t           j                            t6                               |                     t           j                            t8                               |                     t           j                            t:                               |                     t           j                            t<                               |                     t           j                            t>                               |                     t           j                            t@                               |                     t           j                            tB                               |                     t           j                            tD                               |                     t           j                            tF                               |                     t           j                            tH                               |                     t           j                            tJ                               |                     t           j                            tL                               |                     t           j                            tN                               |                     t           j                            tP                               |                     t           j                            tR                               |                     t           j                            tT                               |                     t           j                            tV                               |                     t           j                            tX                               |                     t           j                            tZ                               |                     t           j                            t\                               |                     t           j                            t^                               |                     t           j                            t`                               |                     t           j                            tb                               |                     t           j                            td                               |                     t           j                            tf                               |                     t           j                            th                               |                     t           j                            tj                               |                     t           j                            tl                               |                     t           j                            tn                               |                     t           j                            tp                               |                     t           j                            tr                               |                     t           j                            tt                               |                     t           j                            tv                               |                     t           j                            tx                               |                     t           j                            tz                               | S )Nr#   )>r   unittest	TestSuiter  addTest	makeSuiter   r   r   r   r   r   r   r   r   r  rc  rZ  r]  r_  ra  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  r>  r\  r^  rb  rd  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )theSuiteniterrh  s      rM   suiterG  ]
  s}   ((**HE5\\ AC AC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23GHHIII223EFFGGG223EFFGGG223CDDEEE 	223GHHIII22.0 0 	1 	1 	1223FGGHHH22-/ / 	0 	0 	022*, , 	- 	- 	-22*, , 	- 	- 	-22') ) 	* 	* 	*223DEEFFF223CDDE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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23EFFGGG223FGGHHH223FGGHHH223FGGHHH223DEEFFF223EFFGGG223DEEFFF223EFFGGG223DEEFFF223EFFGGG223DEEFFF223EFFGGG223DEEFFF223EFFGGG223DEEFFF223EFFGGG223IJJKKK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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22?CCDDD223GHHIII223GHHIII223FGGHHH22=AABBBBOre   __main__rG  )defaultTest)\r<   r)   pathlibr   r"   rS   tablesr+   tables.testsr   PyTablesTestCaser   r   r   r   r   r   r   r   r   r   r   TempFileMixinr   r  r#  rZ  r]  r_  ra  rc  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r<  r>  r@  rZ  r\  r^  r`  rb  rd  rf  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG  r   
parse_argvargvprint_versionsrA  mainr   re   rM   <module>rS     s4   



                     m0 m0 m0 m0 m0F+ m0 m0 m0`                  -                     =                     }       }   HF HF HF HF HF6/1H HF HF HFVA A A A A)=)/)@A A AM/ M/ M/ M/ M/&"6"("9M/ M/ M/`    (C   
    %@   
    %@   
    "=   
z z z z z&.0G z z zzj< j< j< j< j<6')@ j< j< j<Z           |   K4 K4 K4 K4 K4,f.E K4 K4 K4\    *       *       *       *       *       *       *       *       *       +       +       +   y? y? y? y? y?f*F,C y? y? y?x@ @ @ @ @OV%< @ @ @              O O O O OO O O O,              H? H? H? H? H?f*F,C H? H? H?V@ @ @ @ @OV%< @ @ @              O O O O OO O O O,              S; S; S; S; S;,f.E S; S; S;l@ @ @ @ @% @ @ @              O O O O O% O O O,              P P P P PV163J P P P9 9 9 9 9v+V-D 9 9 9HJ HJ HJ HJ HJV163J HJ HJ HJV
 
 
 
 
, 
 
 
    ,       ,   
 
 
 
 
, 
 
 

 
 
 
 
, 
 
 
RJ RJ RJ RJ RJV163J RJ RJ RJj    ,       ,   
    ,   
    ,   
: : : : :62 : : :BL L L L L6/1H L L L*3 3 3 3 3F(&*A 3 3 3(E' E' E' E' E'&.0G E' E' E'PG G GT zFchF
OW----- re   