
    dz                       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	        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          Zej                            ej         d           G d de                      Zej                            ej         d           G d  d!e                      Z G d" d#e          Z G d$ d%e          Zej                            ej         d           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 d0 d1e          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/ej                            ej         d           G dH dIe                      Z0ej                            ej         d           G dJ dKe                      Z1ej                            ej         d           G dL dMe                      Z2ej                            ej         d           G dN dOe                      Z3ej                            ej4         dP           G dQ dRe                      Z5ej                            ej4         dP           G dS dTe                      Z6 G dU dVe          Z7 G dW dXe          Z8 G dY dZe          Z9 G d[ d\e          Z: G d] d^e          Z; G d_ d`e          Z< G da dbe          Z= G dc ddej	        ej
                  Z> G de dfej	        ej
                  Z? G dg dhej	        ej
                  Z@ G di dje@          ZA G dk dle@          ZB G dm dnej	        ej
                  ZC G do dpeC          ZD G dq dreC          ZE G ds dteC          ZF G du dveC          ZG G dw dxeC          ZH G dy dzeC          ZI G d{ d|eC          ZJ G d} d~eC          ZK G d deC          ZL G d deC          ZM G d deC          ZN G d deC          ZO G d dej	        ej
                  ZP G d deP          ZQ G d deP          ZR G d dej	        ej
                  ZS G d deS          ZT G d deS          ZU G d dej	        ej
                  ZV G d dej	        ej
                  ZW G d deW          ZX G d deW          ZY G d dej	        ej
                  ZZ G d dej	        ej
                  Z[d Z\e]dk    rA ej^        e j_                    ej`                     ej        a                    d           dS dS )    N)Path)commonc                        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 fd
Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )BasicTestCaseNnumpyint32   r   r   
         zlibc                     t                                                       | j        j        | _        |                                  | j        r| j                                         d S d S N)supersetUph5fileroot	rootgrouppopulateFilereopencloseself	__class__s    8lib/python3.11/site-packages/tables/tests/test_earray.pyr   zBasicTestCase.setUp   sb     ); 	 K	  	     c           
         | j         }| j        }|K| j        dk    rt          j        | j                  }n't          j                            | j                  }nd }| j        j	        }t          j
        | j        | j        | j        | j                  }| j                            |d|| j        ||d|          }| j        |_        t'          |j                  | _        |
d| j        d<   | j        | _        | j        D ]}|dk    r| xj        |z  c_        |j        | _        | xj        | j        z  c_        | j        | j        |j        <   | j        dk    r2t1          j        d| j        z  | j        d	|j        j        z  
          }n6t1          j        | j        |j        j        j                  }| j        |_        t>          j         r9| j        dk    rtC          d|           ntC          dtE          |                     tG          | j$                  D ];}| j        dk    r|%                    |           #|%                    ||z             <d S )Nstringitemsize)	complevelcomplibshuffle
fletcher32earray1r   )atomshapetitlefiltersexpectedrowsobjr      aS%sbufferr(   dtyper1   r   zObject to append -->)&r   r,   typetb
StringAtomlengthAtom	from_typer   __name__Filterscompressr#   r$   r%   r   create_earrayr(   flavorlistrowshapeobjsizeextdim	chunksizenpndarrayr'   r!   aranger1   baser   verboseprintreprrangenappendsappend)	r   groupr,   r'   r)   r*   earrayiobjects	            r   r   zBasicTestCase.populateFile'   sX   h;yH$$}dk:::w((33D'*t}%)\%)\(,9 9 9 **5)04DJ1689s + D D  V\**? DM!{ 	" 	"AAvv!m&'+~fm$9  ZtDL'8&*m&+fk.B&BD D DFF Yt|6;3D3IJJJF=FL> 	<{g%%,f5555,d6ll;;;t}%% 	* 	*AyH$$f%%%%fqj))))		* 	*r   c                 `    | j         | j         }nt          j        | j                  j         }|S r   )r(   rC   asarrayr,   r   r(   s     r   
_get_shapezBasicTestCase._get_shape[   s,    :!JEEJtx((.Er   c                    | j         r|                                  | j                            d          }|                                 }t          |          }| j        | j        z  || j        <   | j	        '|| j        xx         t          | j	                  z  cc<   t          |          }|                     |j        | j                   |                     |j        |           |                     |j        t          |                     |                     |j        || j                            |                     |j        j        | j                   d S )N/earray1)r   _reopenr   get_noderT   r>   rB   rK   rA   r,   lentupleassertEqualr=   r(   ndimnrowsr'   r3   )r   r,   r(   s      r   test00_attributeszBasicTestCase.test00_attributesc   s'   ; 	LLNNNk"":..!!U!^dm;dk8$+#dh--/eT[111E***3u::...E$+$6777	22222r   c           
      	   t           j        r,t          dd           t          d| j        j        z             | j        r|                                  | j                            d          }d|_	        t           j        rGt          dt          |                     t          d|j                   t          d| j                   | j        d	k    r2t          j        d
| j        z  | j        d|j        j        z            }n6t          j        | j        |j        j        j                  }| j        |_        |                    |j        d          }| j        t3          | j                  }nd}|                                 }t7          |          D ]R\  }}||k     rL|                     t          j        |t          j        | j        |                   | j                             XtA          |j!        |z
  | j"        z            }|dk    r2| j        d	k    r|}n$tA          |j!        |z
            }	||	| j"        z  z  }||         }
t           j        r	 | $                    || j%        | j"        z  z   |j&                   |                     t          j        ||
| j                             tG          |d          r9| $                    t3          |j                  t3          |          dz
             n#| $                    t3          |          d           | j'        |j(        j)        k    rFt           j        r:t          d| j        j                   t          d| j'        |j(        j)                   | $                    |j(        j)        | j'                   | j'        dk    r>tU          j+        | j,                  r%| $                    |j(        j,        | j,                   | j-        |j(        j-        k    rFt           j        r:t          d| j        j                   t          d| j-        |j(        j-                   | $                    | j-        |j(        j-                   | j.        |j(        j.        k    rFt           j        r:t          d| j        j                   t          d| j.        |j(        j.                   | $                    | j.        |j(        j.                   TdS )z$Checking enlargeable array iterator.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_iterEArray...rV      EArray descr:shape of read array ==>reopening?:r   r-   r.   r/   r2   r   Nnumber of row ==>r(   shape should look as:zrow in earray ==>Should look like ==>r   zError in compress. Class:zself, earray:zError in shuffle. Class:zError in fletcher32. Class:)/r   rG   rH   r   r9   r   rW   r   rX   
nrowsinbufrI   r(   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   swapaxesrA   r,   rY   rT   	enumerate
assertTrueallequalrR   r=   intnrowrB   hasattrr[   rK   r]   r;   r*   r"   r4   which_lib_versionr#   r$   r%   )r   rN   object_initialrowsr(   idxrowchunkobject__rO   rP   s              r   test01_iterEArrayzBasicTestCase.test01_iterEArrayu   sy    > 	O$	"""3dn6MMNNN ; 	LLNNN%%j11 > 	./4<<000+V\:::---- 9  jT\(9'+}',v{/C'CE E EGG iFK4E4JKKKG MGM""6=!448dh--KKK!! "&)) /	I /	IHC[  DHSM22DK!A !A B B B{2dnDEEEzz9((&HHFK+566A&!t~*=>He_F~ < < [4=4>+II#\+ + +OOFOCEEFFFsG$$ 0  SYUa@@@@   UQ/// } 888V^814>3JKKKot}fn6NOOOV^5t}EEE}q  R%9$,%G%G   !7FFF|v~555&.50$.2IJJJot|V^5KLLLT\6>+ABBB&.";;;;3T^5LMMMotn/1 1 1T_fn.GHHHH_/	I /	Ir   c           
         t           j        r,t          dd           t          d| j        j        z             | j        r|                                  | j                            d          }d|_	        t           j        rGt          dt          |                     t          d|j                   t          d| j                   | j        d	k    r2t          j        d
| j        z  | j        d|j        j        z            }n6t          j        | j        |j        j        j                  }| j        |_        |                    |j        d          }| j        t3          | j                  }nd}|                                 }t7          |                    | j        | j        | j                            D ]\  }}||k     rL|                      t          j!        |t          j"        | j        |                   | j#                             X| j$        dk    rd}ntK          |j&        |z
  | j$        z            }| j        d	k    r|}n$tK          |j&        |z
            }	||	| j$        z  z  }||         }
t           j        r	 | (                    || j)        | j$        z  z   |j*                   |                      t          j!        ||
| j#                             tO          |d          r:| (                    t3          |j                  t3          |          dz
             o| (                    t3          |          d           dS )z<Checking enlargeable array iterator with (start, stop, step)r`   ra   zRunning %s.test02_sssEArray...rV   rb   rc   rd   re   r   r-   r.   r/   r2   r   Nstartstopstepr   rf   r(   )+r   rG   rH   r   r9   r   rW   r   rX   ri   rI   r(   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   rj   rA   r,   rY   rT   rk   iterrowsr{   r|   r}   rl   rm   rR   r=   rB   rn   ro   rp   r[   rK   r]   )r   rN   rr   rs   r(   rt   ru   indexrw   rO   rP   s              r   test02_sssEArrayzBasicTestCase.test02_sssEArray   s9    > 	N$	"""2T^5LLMMM ; 	LLNNN%%j11 > 	./4<<000+V\:::---- 9  jT\(9'+}',v{/C'CE E EGG iFK4E4JKKKG MGM""6=!448dh--KKK!! "&//
7;y7;y #2 #B #B C C #	0 #	0HC [  DHSM22DK!A !A B B B~""V[;6$.HIIyH$$"k122"a4>&9:e_F ~ < < [4=4>+II#\+ + +OOFOCEEFFFsG$$ 0  SYUa@@@@   UQ////G#	0 #	0r   c                 
   t           j        r,t          dd           t          d| j        j        z             | j        t          | j                  | _        | j        t          | j                  | _        | j        t          | j                  | _        | j	        r| 
                                 | j                            d          }d|_        t           j        rGt          dt          |                     t          d|j                   t          d	| j	                   | j        d
k    r2t#          j        d| j        z  | j        d|j        j        z            }n6t#          j        | j        |j        j        j                  }| j        |_        |                    |j        d          }| j        t;          | j                  }nd}| j        }|| j        xx         | j        |z   z  cc<   | j        d
k    r$t#          j        |d|j        j                   }nt#          j        || j                  }|                    d| j                  }|r| j        |d|<   tA          | j                  D ]<}||| j!        z  z   }| j        d
k    r||||| j!        z   <   *||z  |||| j!        z   <   =| j        }| j        r| j        | j        dk    r|j"        }n
| j        dz   }|| j                 |k     r|| j                 }|| j        | j        | j                 #                                }	| j$        dk    r|	                    d| j                  }	n t#          j        | j        | j                  }		 |%                    | j        | j        | j                  }
n0# tL          $ r# t#          j        | j        | j                  }
Y nw xY wt           j        r_tO          |	d          rt          d|	j                   t          dt          |
                     t          dt          |	                     | (                    || j        | j!        z  z   |j"                   | )                    t          j*        |
|	| j$                             | +                                }tO          |
d          ri| (                    t;          |
j                  t;          |                     | j$        dk    r'| (                    |
j        |j        j                   dS dS | (                    t;          |          d           dS )&Checking read() of enlargeable arrays.r`   ra   zRunning %s.test03_readEArray...NrV   rb   rc   rd   re   r   r-   r.   r/   r2   r   Sr(   r1   r   r   r(   rg   Object read ==>rh   ),r   rG   rH   r   r9   r{   rn   r|   r}   r   rW   r   rX   ri   rI   r(   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   rj   rA   r,   rY   rK   emptyrJ   rB   r]   copyr=   read
IndexErrorrp   r[   rl   rm   rT   )r   rN   rr   rs   r?   rw   rO   jr|   rP   ru   r(   s               r   test03_readEArrayzBasicTestCase.test03_readEArray  s    > 	O$	"""3dn6MMNNN :!TZDJ9 DIDI9 DIDI ; 	LLNNN%%j11 > 	./4<<000+V\:::---- 9  jT\(9'+}',v{/C'CE E EGG iFK4E4JKKKG MGM""6=!448dh--KKK=$-+"=>9  xh&@&+*>&@&@B B BHH xhdjAAAH$$Q44 	/&*hHQ{]#t}%% 	= 	=Aa$.00AyH$$181t~--..1811t~--..y= 	B y :##!<DD:>D $t++  , dj49<=BBDDF{g%%DK88XDJdjAAAF	?++dj$)TY??CC 	? 	? 	?(4:>>>CCC	? > 	8vw'' =-v|<<<#T#YY///($v,,777t}t~'EE	' 	' 	'VT[AABBB!!3   	,S^^SZZ888{g%%  v{/CDDDDD &% SZZ+++++s    &N' '*OOc                 
   | j         t          | j                   | _         | j        t          | j                  | _        | j        t          | j                  | _        | j        r|                                  | j                            d          }d|_        | j	        dk    r2t          j        d| j        z  | j        d|j        j        z            }n6t          j        | j        |j        j        j                  }| j        |_        |                    |j        d	          }| j        t/          | j                  }nd	}| j        }|| j        xx         | j        |z   z  cc<   | j	        dk    r$t          j        |d
|j        j                   }nt          j        || j                  }|                    d	| j                  }|r| j        |d	|<   t5          | j                  D ]<}||| j        z  z   }| j	        dk    r||||| j        z   <   *||z  |||| j        z   <   =| j        }| j        r| j        | j         dk    r|j        }n
| j         dz   }|| j                 |k     r|| j                 }|| j         | j        | j                                                 }	| j        dk    r|	                    d	| j                  }	n t          j        | j        | j                  }		 t          j        |j        |j        j                  }
t?          d          gt/          |j                  z  }t?          | j         | j        | j                  ||j         <   |
tC          |                                                   }
|"                    | j         | j        | j        |
           n0# tF          $ r# t          j        | j        | j                  }
Y nw xY wtH          j%        r_tM          |	d          rtO          d|	j                   tO          dtQ          |
                     tO          dtQ          |	                     | )                    || j        | j        z  z   |j                   | *                    tI          j+        |
|	| j                             | ,                                }tM          |
d          ri| )                    t/          |
j                  t/          |                     | j        dk    r'| )                    |
j        |j        j                   dS dS | )                    t/          |          d           dS )r   NrV   rb   r   r-   r.   r/   r2   r   r   r   r   r   r   )outr(   rg   r   rh   )-r{   rn   r|   r}   r   rW   r   rX   ri   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   r(   rj   rA   r,   rY   rK   r   rJ   rB   r]   r   r=   slicemaindimrZ   r   r   r   rG   rp   rH   rI   r[   rl   rm   rT   )r   rN   rr   rs   r?   rw   rO   r   r|   rP   ru   	slice_objr(   s                r   test03_readEArray_out_argumentz,BasicTestCase.test03_readEArray_out_argument  s    :!TZDJ9 DIDI9 DIDI ; 	LLNNN%%j11 9  jT\(9'+}',v{/C'CE E EGG iFK4E4JKKKG MGM""6=!448dh--KKK=$-+"=>9  xh&@&+*>&@&@B B BHH xhdjAAAH$$Q44 	/&*hHQ{]#t}%% 	= 	=Aa$.00AyH$$181t~--..1811t~--..y= 	B y :##!<DD:>D $t++  , dj49<=BBDDF{g%%DK88XDJdjAAAF	?(6<v{/@AAACtFL(9(99I(-dj$)TY(O(OIfn%eI&&',,..CKK
DItycKBBBB 	? 	? 	?(4:>>>CCC	? > 	8vw'' =-v|<<<#T#YY///($v,,777t}t~'EE	' 	' 	'VT[AABBB!!3   	,S^^SZZ888{g%%  v{/CDDDDD &% SZZ+++++s   5CN7 7*O$#O$c                 	   t           j        r,t          dd           t          d| j        j        z             t          | d          s| j        t          | j                  | _        | j        t          | j                  | _        | j	        t          | j	                  | _	        t          | j        | j        | j	                  f| _        | j        r|                                  | j                            d          }t           j        rGt          dt!          |                     t          d|j                   t          d	| j                   | j        d
k    r2t'          j        d| j        z  | j        d|j        j                   }n6t'          j        | j        |j        j        j                  }| j        |_        |                    |j        d          }| j        t?          | j                  }nd}| j        }|| j        xx         | j         |z   z  cc<   | j        d
k    r$t'          j!        |d|j        j                   }nt'          j!        || j                  }|                    d|j                  }|r| j        |d|<   tE          | j                   D ]<}||| j#        z  z   }| j        d
k    r||||| j#        z   <   *||z  |||| j#        z   <   =| j         ro| j$        dk    r|                    d| j                  }n|                    d| j                   |%                    | j                  &                                }n t'          j!        | j        | j                  }	 |%                    | j                  }	n0# tN          $ r# t'          j!        | j        | j                  }	Y nw xY wt           j        rt          dt!          |	                     t          dt!          |                     t          |d          r?t          d| j                   t          d|	j                   t          d|j                   | (                    || j         | j#        z  z   |j)                   | *                    t          j+        |	|| j$                             t          |	d          s*| (                    t?          | j                  d           dS dS )z6Checking enlargeable array __getitem__ special method.r`   ra   z"Running %s.test04_getitemEArray...slicesNrV   rc   rd   re   r   r-   r   r/   r2   r   r   r   Object read:
Should look like:
r(   Original object shape:Shape read:rg   r   ),r   rG   rH   r   r9   rp   r{   rn   r|   r}   r   r   r   rW   r   rX   rI   r(   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   rj   rA   r,   rY   rK   r   rJ   rB   r=   __getitem__r   r   r[   r]   rl   rm   
r   rN   rr   rs   r?   rw   rO   r   rP   ru   s
             r   test04_getitemEArrayz"BasicTestCase.test04_getitemEArray  s    > 	+$	"""6.)* + + + tX&& 		E z% __
y$	NN	y$	NN	 TY	BBDDK ; 	LLNNN%%j11 > 	./4<<000+V\:::---- 9  jt|(;'+}'A6;+?'A'AC C CGG iFK4E4JKKKG MGM""6=!448dh--KKK=$-+"=>9  xh&@&+*>&@&@B B BHH xhdjAAAH$$Q66 	/&*hHQ{]#t}%% 	= 	=Aa$.00AyH$$181t~--..1811t~--..= 
	B{g%%#,,Q<<!!!T[111 ))$+66;;==FFXDJdjAAAF	?$$T[11CC 	? 	? 	?(4:>>>CCC	? > 	="DII...'f666vw'' =.
;;;mSY///-v|<<<t}t~'EE	' 	' 	'VT[AABBBsG$$ 	1S__a00000	1 	1s   N *O
	O
c                    | j         j        dk    rdS t          j        r,t	          dd           t	          d| j         j        z             t          | d          s| j        t          | j                  | _        | j        t          | j                  | _        | j	        t          | j	                  | _	        t          | j        | j        | j	                  f| _        | j        r|                     d           | j                            d	          }t          j        rGt	          d
t!          |                     t	          d|j                   t	          d| j                   | j        dk    r2t'          j        d| j        z  | j        d|j        j                   }n6t'          j        | j        |j        j        j                  }| j        |_        |                    |j        d          }| j        t?          | j                  }nd}| j        }|| j        xx         | j         |z   z  cc<   | j        dk    r$t'          j!        |d|j        j                   }nt'          j!        || j                  }|                    d|j                  }tE          | j                   D ]<}||| j#        z  z   }| j        dk    r||||| j#        z   <   *||z  |||| j#        z   <   =|r| j        |d|<   | j         ro| j$        dk    r|                    d| j                  }n|                    d| j                   |%                    | j                  &                                }n t'          j!        | j        | j                  }| j$        dk    rt'          j'        |          }| j        dk    ret          | d          rd|| j(        <   d|| j)        <   ntU          || j                 j                  dk    rd|dd<   |j+        dk    r
||| j        <   nt          | d          r7|| j)                 dz  dz   || j)        <   || j)                 dz  dz   || j)        <   nctU          || j                 j                  dk    r@|dz  dz   }t'          j,        |j                  dk    r|| j                 dz  dz   || j        <   |%                    | j                  }		 |%                    | j                  }	n?# tZ          $ r2 t	          d           t'          j!        | j        | j                  }	Y nw xY wt          j        rt	          dt!          |	                     t	          dt!          |                     t          |d          r?t	          d| j                   t	          d|	j                   t	          d|j                   | .                    || j         | j#        z  z   |j/                   | 0                    t          j1        |	|| j$                             t          |	d          s*| .                    t?          | j                  d            dS dS )!z6Checking enlargeable array __setitem__ special method.Ellipsis6EArrayTestCaseNr`   ra   z"Running %s.test05_setitemEArray...r   amoderV   rc   rd   re   r   r-   r   r/   r2   r   r   r   wslicexXxr
   rb   zIndexError!r   r   r(   r   r   rg   r   )2r   r9   r   rG   rH   rp   r{   rn   r|   r}   r   r   r   rW   r   rX   rI   r(   r3   rC   rD   r@   r?   r'   r!   rE   r1   rF   rj   rA   r,   rY   rK   r   rJ   rB   r=   r   r   rR   wslizer   sumsizeprodr   r[   r]   rl   rm   r   s
             r   test05_setitemEArrayz"BasicTestCase.test05_setitemEArrayW  sc    >"&??? F> 	+$	"""6.)* + + + tX&& 		E z% __
y$	NN	y$	NN	 TY	BBDDK ; 	#LLcL"""%%j11 > 	./4<<000+V\:::---- 9  jt|(;'+}'A6;+?'A'AC C CGG iFK4E4JKKKG MGM""6=!448dh--KKK=$-+"=>9  xh&@&+*>&@&@B B BHH xhdjAAAH$$Q66t}%% 	= 	=Aa$.00AyH$$181t~--..1811t~--..
  	/&*hHQ{]#= 
	B{g%%#,,Q<<!!!T[111 ))$+66;;==FFXDJdjAAAF;'!!Z''F9  tX&& 
1 ',t{#&+t{##VDK(.//144!qqq	;??*0F4;'tX&& F&,T[&9A&=&At{#&,T[&9A&=&At{##VDK(.//144!a76<((1,,*0*=*AA*EF4;'  --	?$$T[11CC 	? 	? 	?-   (4:>>>CCC	? > 	="DII...'f666vw'' =.
;;;mSY///-v|<<<t}t~'EE	' 	' 	'VT[AABBBsG$$ 	1S__a00000	1 	1s   )T 9U ?U )r9   
__module____qualname__r,   r=   r3   r1   r(   r{   r|   r}   r6   rB   rK   r;   r#   r$   r%   r   r   r   rT   r^   rx   r   r   r   r   r   __classcell__r   s   @r   r   r   
   s.       
CFDEEEDDFIHHGGJF         2* 2* 2*h  3 3 3$TI TI TIlH0 H0 H0To, o, o,bk, k, k,Zb1 b1 b1HD1 D1 D1 D1 D1 D1 D1r   r   c                   &    e Zd ZdZdZdZdZdZdZdS )BasicWriteTestCaser   r   r   r   r   N)	r9   r   r   r3   r(   rB   rK   r}   r    r   r   r   r     s,        DEIHDFFFr   r   c                   J    e Zd ZdZdZdZdZdZdZ e	edz
  ed          Z
dZd	S )
Basic2WriteTestCaser   i4r   r   r   r   r
   r   N)r9   r   r   r3   r1   r(   rB   rK   r}   r   r   r   r   r   r   r   r     sH        DEEIHDU9Q;!,,FFFFr   r   c                       e Zd ZddgZ ej        e          j        j        Z ej        e          j        j	        ZdZ
dZdZdZdS )Basic3WriteTestCaser   r
   r   r   r   Nr9   r   r   r,   rC   rR   r1   namer3   strr(   
chunkshaper}   r   r   r   r   r   r     U        a&C2:c?? %DBJsOO!%EEJDFFFr   r   c                   r    e Zd Z ej        ddg          Zej        j        Zej        j	        ZdZ
dZdZdZdS )Basic4WriteTestCaser   r
   Nr   r   r9   r   r   rC   arrayr,   r1   r   r3   r   r(   r   r}   r   r   r   r   r   r     I        
"(Aq6

C9>DIMEEJDFFFr   r   c                       e Zd ZddgZ ej        e          j        j        Z ej        e          j        j	        ZdZ
dZdZdZdS )Basic5WriteTestCaser   r
   r   r   Nr   r   r   r   r   r     r   r   r   c                   r    e Zd Z ej        ddg          Zej        j        Zej        j	        ZdZ
dZdZdZdS )Basic6WriteTestCaser   r
   Nr   r   r   r   r   r   r     r   r   r   c                       e Zd ZddgddggZ ej        e          j        j        Z ej        e          j        j	        ZdZ
dZdZdZdS )	Basic7WriteTestCaser   r
   rb      r   r
   r   r   Nr   r   r   r   r   r     ^        q6Aq6
C2:c?? %DBJsOO!%EEJDFFFr   r   c                       e Zd ZddgddggZ ej        e          j        j        Z ej        e          j        j	        ZdZ
dZdZdZdS )Basic8WriteTestCaser   r
   rb   r   r   r   Nr   r   r   r   r   r   %  r   r   r   c                   J    e Zd ZdZ ej        d          ZdZdZdZdZ	dZ
dZdS )EmptyEArrayTestCaser   r	   r   r   r   r   N)r9   r   r   r3   rC   r1   r(   rB   rK   r{   r|   r}   r   r   r   r   r   /  sB        DBHWEEIHEDDDDr   r   c                   >    e Zd ZdZ ej        d          ZdZdZdZdS )NP_EmptyEArrayTestCaser   z()int32r	   r   r   N)	r9   r   r   r3   rC   r1   r(   rB   rK   r   r   r   r   r   :  s3        DBHYEEIHHHr   r   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdS )Empty2EArrayTestCaser   r	   r   r   r   r   N)r9   r   r   r3   r1   r(   rB   rK   r{   r|   r}   r   r   r   r   r   r   B  s;        DEEIHEDDFFFr   r   z%LZO compression library not availablec                   Z    e Zd ZdZdZdZdZdZdZ e	ddd           e	ddd          fZ
dS )	SlicesEArrayTestCaser   lzor   r	   r   r
   rb   Nr9   r   r   r;   r#   r3   r(   rB   rK   r   r   r   r   r   r   r   N  sP         HGDEIHeAq!nneeAq!nn-FFFr   r   z'BLOSC compression library not availablec                   r    e Zd ZdZdZdZdZdZdZ e	ddd           e	ddd           e	dd	d          fZ
dS )
Slices2EArrayTestCaser   bloscr   r
   r   r   r      r
   Nr   r   r   r   r   r   r   Z  s`         HGDEIHeAq!nneeD$55uuQ1~~FFFFr   r   c                   <    e Zd ZdZdZdZdZe eddd          fZ	dS )EllipsisEArrayTestCaser   r	   r   r
   r   N
r9   r   r   r3   r(   rB   rK   Ellipsisr   r   r   r   r   r   r   f  s8        DEIHaA'FFFr   r   c                   T    e Zd ZdZdZdZdZ eddd          e eddd          fZ	dS )	Ellipsis2EArrayTestCaser   r   r   r   r   r
   r   N
r9   r   r   r3   r(   rB   rK   r   r   r   r   r   r   r   r   o  sF        DEIHeAq!nnhaA7FFFr   r   c                   
   e Zd ZdZdZdZdZdZdZ e	ddd           e	dd	d	           e	dd
d          fZ
 e	ddd           e	dd
d	           e	dd
d          fZ
 e	ddd           e	dd
d	           e	dd
d          fZ
d	S )Slices3EArrayTestCaser   r   r   r
   rb   r   r   r   r   r
   r   Nr   r   r   r   r   r   r   w  s         HGDEIHeAq!nneeAtT22eAq!nnF eAq!nneeAq$//q!Q@FeAq!nneeAq$//q!Q@FFFr   r   c            
           e Zd ZdZdZdZdZ eddd           eddd           edd	d           edd	d           ed
dd           eddd          fZdS )Slices4EArrayTestCaser   )r
   rb   r   r   r      r   r   r   r
   r   Nr   rb      )	r9   r   r   r3   r(   rB   rK   r   r   r   r   r   r   r     s        DEIHeAq!nneeAtT22EE!QNNeAq!nneeAq!nneeAq!nn>FFFr   r   c                       e Zd ZdZdZdZdZe eddd           eddd	          fZ	 edd	d           eddd           eddd	          efZ	dS )
Ellipsis3EArrayTestCaser   r   r   r   r   r   Nr   r
   r   r   r   r   r   r     s|        DEIHaD))55Aq>>:FeAq!nneeAq$//q!QJFFFr   r   c                       e Zd ZdZdZdZdZe eddd           eddd	          fZ	 edd	d          e eddd	          fZ	dS )
Ellipsis4EArrayTestCaser   r   r   r   r   r   Nr   r
   r   r   r   r   r   r     sl        DEIHaD))55Aq>>:FeAq!nnhaA7FFFr   r   c                   T    e Zd ZdZdZdZdZ eddd           eddd	          efZ	d	S )
Ellipsis5EArrayTestCaser   r   r   r   r   r
   r   r   Nr   r   r   r   r   r     sH        DEIHeAq!nneeAq$//:FFFr   r   c                   V    e Zd ZdZdZdZdZ eddd           eddd          defZ	dS )	r   r   r   r   r
   r   r   r   Nr   r   r   r   r   r     sL        DEIH eAq!nneeAq$//H=FFFr   r   c                   j    e Zd ZdZdZdZdZ eddd           eddd           edd	          efZ	dS )
Ellipsis7EArrayTestCaser   r   r   r
   r   r   r   Nrb   r   r   r   r   r   r     sT        DEIHeAq!nneeAq$//q!hGFFFr   r   c                       e Zd ZdZdZdZdZdS )MD3WriteTestCaser   r
   r   rb   r   r
   N)r9   r   r   r3   r(   rB   r}   r   r   r   r   r     s"        DEIDDDr   r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )MD5WriteTestCaser   )r
   r   rb   r   r   r   r   N
r9   r   r   r3   r(   rB   rK   r{   r|   r}   r   r   r   r   r     s3        DE IHEDDDDr   r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )MD6WriteTestCaser   r
   rb   rb   r   r   r   r   r   rb   Nr   r   r   r   r   r     s1        DEIHEDDDDr   r   c                   "    e Zd ZdZdZdZdZdZdS )NP_MD6WriteTestCasez Testing NumPy scalars as indexesr   r   r   r   N)r9   r   r   __doc__r3   r(   rB   rK   r   r   r   r   r     s(        **DEIHHHr   r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )MD6WriteTestCase__r   r	   r   rb   Nr   r   r   r   r   r     s1        DEIHEDDDDr   r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )MD7WriteTestCaser   )r
   rb   rb   r   r   r   rb   r   r   r
   Nr   r   r   r   r   r     s1        D!EIHEDDDDr   r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )MD10WriteTestCaser   
r   r
   rb   r   r   r   r   rb   r
   r   r   r   r   Nr   r   r   r   r  r    s1        D*EIHEDDDDr   r  c                       e Zd ZdZdZdZdZdS )NP_MD10WriteTestCaser   r  r   r   N)r9   r   r   r3   r(   rB   rK   r   r   r   r  r  	  s"        D*EIHHHr   r  c                   "    e Zd ZdZdZdZdZdZdS )ZlibComprTestCaser   r   rb   Nr   )r9   r   r   r;   r#   r{   r|   r}   r   r   r   r  r    s'        HGEDDDDr   r  c                   &    e Zd ZdZdZdZdZdZdZdS )ZlibShuffleTestCaser   r   rb   r   N)	r9   r   r   r$   r;   r#   r{   r|   r}   r   r   r   r	  r	    s,        GHGEDDDDr   r	  c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )BloscComprTestCaser   r   r   d   rb   N
r9   r   r   r;   r#   rB   rK   r{   r|   r}   r   r   r   r  r  #  s3         HGIHEDDDDr   r  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )BloscShuffleTestCaser   r   r  r   rb   r   Nr9   r   r   r;   r$   r#   rB   rK   r{   r|   r}   r   r   r   r  r  /  8         HGGIHEDDDDr   r  c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )LZOComprTestCaser   r   r   r  rb   Nr  r   r   r   r  r  <  s3         HGIHEDDDDr   r  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )LZOShuffleTestCaser   r   r  r   rb   r   Nr  r   r   r   r  r  H  s8         HGGIHEDDDDr   r  z'BZIP2 compression library not availablec                   *    e Zd ZdZdZdZdZdZdZdZ	dS )Bzip2ComprTestCaser   bzip2r  r   rb      Nr  r   r   r   r  r  U  s3         HGIHEDDDDr   r  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )Bzip2ShuffleTestCaser   r  r  r   rb   r   Nr  r   r   r   r  r  a  r  r   r  c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )Fletcher32TestCaser   r   2   r   r   r   N)
r9   r   r   r;   r%   rB   rK   r{   r|   r}   r   r   r   r  r  n  s1        HJIHEDDDDr   r  c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdS )	AllFiltersTestCaser   r   r   r  r
   c   r   N)r9   r   r   r;   r$   r%   r#   rB   rK   r{   r|   r}   r   r   r   r   r   x  s;        HGJGIHEDDDDr   r   c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )FloatTypeTestCasefloat64r	   r   r   rb   r   Nr9   r   r   r3   r1   r(   rB   rK   r{   r|   r}   r   r   r   r#  r#    s6        DEEIHEDDDDr   r#  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )ComplexTypeTestCase
complex128r	   r   r   rb   r   Nr%  r   r   r   r'  r'    s6        DEEIHEDDDDr   r'  c                   ^    e Zd ZdZdZdZdZdZdZdZ	dZ
 edd           edd	          fZd
S )StringTestCaser   r   r	   r   r   rb   r   r   r
   N)r9   r   r   r3   r6   r(   rB   rK   r{   r|   r}   r   r   r   r   r   r*  r*    sT        DFEIHEDDeAqkk55A;;'FFFr   r*  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	String2TestCaser   r   r   r   r   r   r
   N)r9   r   r   r3   r6   r(   rB   rK   r{   r|   r}   r   r   r   r,  r,    s6        DFEIHEDDDDr   r,  c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	S )
StringComprTestCaser   r   )r   r   r   r   r  r   r   r  N)r9   r   r   r3   r6   r(   comprrB   rK   r{   r|   r}   r   r   r   r.  r.    s;        DFEEIHEDDDDr   r.  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )"SizeOnDiskInMemoryPropertyTestCasec                 r    t                                                       d| _        d| _        d| _        d S )Nr   r   )  r   ip  )r   r   
array_sizer   hdf_overheadr   s    r   r   z(SizeOnDiskInMemoryPropertyTestCase.setUp  s2    ! % r   c                     t          j        |d          }| j                            ddt          j                    | j        || j                  | _        d S )Nr   )r"   r#   /rN   )r'   r(   r*   r   )r4   r:   r   r<   	Int32Atomr5  r   r   )r   r"   r*   s      r   create_arrayz/SizeOnDiskInMemoryPropertyTestCase.create_array  sT    *y'BBB[..sH46LNN59_7>:>/	 / K K


r   c                     d}|                      |           |                     | j        j        d           |                     | j        j        d           d S Nr   )r:  r[   r   size_on_disksize_in_memoryr   r"   s     r   test_zero_lengthz3SizeOnDiskInMemoryPropertyTestCase.test_zero_length  sW    	)$$$0!4442A66666r   c                 @   d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             |                     | j        j        d           |                     | j        j        d           d S )Nr   r    	r:  r   rL   rZ   rJ   r   r[   r=  r>  r?  s     r   test_no_compression_one_appendzASizeOnDiskInMemoryPropertyTestCase.test_no_compression_one_append  s    	)$$$
5r++,tq/AABFGGG02DEEE24FGGGGGr   c                    d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             | j                            t          t	          d                    g| j        d         z  dz             |                     | j        j        d           |                     | j        j        d           d S )Nr   r   r   rB  rC  r?  s     r   $test_no_compression_multiple_appendszGSizeOnDiskInMemoryPropertyTestCase.test_no_compression_multiple_appends  s    	)$$$
5r++,tq/AAAEFFF
5r++,tq/AAAEFFF02DEEE24FGGGGGr   c                    d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             t          | j                                                  j	        }| 
                    t          | j        j        |z
            | j        k               |                     | j        j        d           |                     | j        j        | j        j                   d S )Nr   r   r   rB  )r:  r   rL   rZ   rJ   r   r   h5fnamestatst_sizerl   absr=  r6  r[   r>  
assertLess)r   r"   	file_sizes      r   test_with_compressionz8SizeOnDiskInMemoryPropertyTestCase.test_with_compression  s    	)$$$
5r++,tq/AABFGGG&&++--5	
')3448II	K 	K 	K24FGGG
/1JKKKKKr   )
r9   r   r   r   r:  r@  rD  rF  rN  r   r   s   @r   r1  r1    s        ! ! ! ! !K K K7 7 7H H HH H HL L L L L L Lr   r1  c                   f     e Zd Zd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 xZS )OffsetStrideTestCasewr   r   c                 j    t                                                       | j        j        | _        d S r   )r   r   r   r   r   r   s    r   r   zOffsetStrideTestCase.setUp  s$    )r   c                    | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	        d          dd	          }t          j        d
dgddgddgggd          }|                    |ddddf                    t          j        dd
gddgddgddggg          }|                    |ddddf                    |                                }t          j        rTt          d|           t          d|j        d|j                   t          d|d                                                    |                     |j        d           |                     |d                                         ddgddgg           |                     |d                                         ddgdd gg           |                     t%          |d                   d           |                     t%          |d                   d           dS )!z4Checking earray with offseted numpy strings appends.r`   ra   z Running %s.test01a_StringAtom...stringsrb   r    r   r
   r
   Array of stringsr'   r(   r)   r   b12345S3r2   Nr   sabfabcr
   Object read:Nrows in:Second row in earray ==>r      123   45   s   abc   fr   r   rG   rH   r   r9   r   r<   r4   r5   rC   r   rL   r   _v_pathnamer]   tolistr[   rY   r   r   rN   r   ru   s        r   test01a_Stringz#OffsetStrideTestCase.test01a_String  s-    ~> 	P$	"""4t~7NNOOO**402q0I0I0I1:1C + E E HSzE4=4-@ANNNa122hHSzD#;euclKLMMa122h kkmm> 	?.#&&&*f0#v|DDD,c!fmmoo>>>q)))QFE?UFO*LMMMQD&>FD>*JKKKSVa(((SVa(((((r   c                    | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	        d          dd	          }t          j        d
dgddgddgggd          }|                    |dddddf                    t          j        dd
gddgddgddggg          }|                    |dddddf                    |                                }t          j        rTt          d|           t          d|j        d|j                   t          d|d                                                    |                     |j        d           |                     |d                                         ddgddgg           |                     |d                                         d dgd d!gg           |                     t%          |d                   d           |                     t%          |d                   d           dS )"z3Checking earray with strided numpy strings appends.r`   ra   z Running %s.test01b_StringAtom...rT  rb   r    rU  rV  rW  r   rX  rY  rZ  r[  r2   Nr
   r\  r]  r^  r_  r`  ra  rb  rc  r   r   r-      bre  rd  rf  rg  ri  rl  s        r   test01b_Stringz#OffsetStrideTestCase.test01b_String$  s1    ~> 	P$	"""4t~7NNOOO**402q0I0I0I1:1C + E E HSzE4=4-@ANNNa33Q3i   HSzD#;euclKLMMa33Q3i    kkmm> 	?.#&&&*f0#v|DDD,c!fmmoo>>>q)))QD$<%*IJJJQD$<$*HIIISVa(((SVa(((((r   c           	      J   | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	                    dd          }t          j        g dd	
          }|                    |dd                    t          j        ddgd	
          }|                    |dd                    |                                }t          j        rBt          d|           t          d|j        d|j                   t          d|d                    |                     |j        d           |                     t          j        |d         t          j        g dd	
                               |                     t          j        |d         t          j        g dd	
                               |                     t          j        |d         t          j        g dd	
                               dS )z1Checking earray with offseted NumPy ints appends.r`   ra   zRunning %s.test02a_int...EAtomr   rb   array of intsrW  )r   r   r   r   r   rb   r   r   r   ru  r   r2   r
   Nrw  r   r   r   r   r`  ra  rb  Third row in vlarray ==>rb   r   ru  r   r   rG   rH   r   r9   r   r<   r4   r9  rC   r   rL   r   rj  r]   r[   rl   rm   rl  s        r   test02a_intz OffsetStrideTestCase.test02a_intB  s    ~> 	I$	"""-0GGHHH **402f1@ + B B HAAA"$ $ $aeHi,G<<<ae kkmm> 	6.#&&&*f0#v|DDD,c!f555q)))FBHYYYg6668 8 	9 	9 	9FBHYYYg6668 8 	9 	9 	9FBHZZZw7779 9 	: 	: 	: 	: 	:r   c           	      N   | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	                    dd          }t          j        g dd	
          }|                    |ddd                    t          j        ddgd	
          }|                    |ddd                    |                                }t          j        rBt          d|           t          d|j        d|j                   t          d|d                    |                     |j        d           |                     t          j        |d         t          j        g dd	
                               |                     t          j        |d         t          j        g dd	
                               |                     t          j        |d         t          j        g dd	
                               dS )z0Checking earray with strided NumPy ints appends.r`   ra   zRunning %s.test02b_int...rr  rs  rt  rW  ru  rv  rw  rb   rb   rb   r   r2   Nrb   rw  rx  r
   r`  ra  rb  ry  r   ru  r   r~  rz  rl  s        r   test02b_intz OffsetStrideTestCase.test02b_intc  s    ~> 	I$	"""-0GGHHH**402f1@ + B B HAAA"$ $ $a!fHi,G<<<a!f kkmm> 	6.#&&&*f0#v|DDD,c!f555q)))FBHYYYg6668 8 	9 	9 	9FBHYYYg6668 8 	9 	9 	9FBHYYYg6668 8 	9 	9 	9 	9 	9r   c                     | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	                    dd          }t          j        g dd	
          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rTt          d|           t          d|j        j                   t          d|           t          d|j        j                   |                     t          j        ||                     dS )z/Checking earray with byteswapped appends (ints)r`   ra   zRunning %s.test03a_int...rr  rs  rt  rW  r}  r   r2   Nr   Native rows:Byteorder native rows:Swapped rows:Byteorder swapped rows:)r   r   rG   rH   r   r9   r   r<   r4   r9  rC   r   rL   byteswapnewbyteorderr1   	byteorderrl   rm   r   r   rN   r   nativeswappeds         r   test03a_intz OffsetStrideTestCase.test03a_int  sz    ~> 	I$	"""-0GGHHH**402f1@ + B B HAAA"$ $ $aJJLLNNa AAAQQQ-> 	F.&)))*FL,BCCC/7++++W]-DEEE8899999r   c                     | j         }t          j        r,t          dd           t          d| j        j        z             | j                            |dt          j	                    dd          }t          j        g dd	
          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rTt          d|           t          d|j        j                   t          d|           t          d|j        j                   |                     t          j        ||                     dS )z1Checking earray with byteswapped appends (floats)r`   ra   zRunning %s.test03b_float...rr  rs  array of floatsrW  r}  r$  r2   Nr   r  r  r  r  )r   r   rG   rH   r   r9   r   r<   r4   Float64AtomrC   r   rL   r  r  r1   r  rl   rm   r  s         r   test03b_floatz"OffsetStrideTestCase.test03b_float  s|    ~> 	K$	"""/$.2IIJJJ**4020@0@1B + D D HAAA$& & &aJJLLNNa AAAQQQ-> 	F.&)))*FL,BCCC/7++++W]-DEEE8899999r   c                    | j         }t          j        r,t          dd           t          d| j        j        z             dddt          j                 }| j        	                    |dt          j                    dd	|
          }t          j        g dd          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rDt          dt          j        j        |j        j                            t          d|j                   |                     t          j        j        |j        j                 t          j                   |                     |j        |           |                     t          j        ||                     dS )z2Checking earray with byteswapped appends (2, ints)r`   ra   zRunning %s.test04a_int...biglittler  r  rr  rs  rt  r'   r(   r)   r  r}  r   r2   Nr   r  Byteorder earray on-disk:)r   r   rG   rH   r   r9   sysr  r   r<   r4   r9  rC   r   rL   r  r  utils
byteordersr1   r[   rl   rm   r   r   r  rN   r   r  r  s          r   test04a_intz OffsetStrideTestCase.test04a_int  s    ~> 	I$	"""-0GGHHH$X66s}E	**402f1@5> + @ @
 HAAA"$ $ $aJJLLNNa AAAQQQ-> 	A*(%fl&<=? ? ?-v/?@@@,V\-CD	( 	( 	()95558899999r   c                     | j         }t          j        r,t          dd           t          d| j        j        z             dddt          j                 }| j        	                    |dt          j                    dd	|
          }|                     d           | j                            d          }t          j        g dd          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rDt          dt          j        j        |j        j                            t          d|j                   |                     t          j        j        |j        j                 t          j                   |                     |j        |           |                     t          j        ||                     dS )z:Checking earray with byteswapped appends (2, ints, reopen)r`   ra   zRunning %s.test04b_int...r  r  r  rr  rs  rt  r  r   r   /EAtomr}  r   r2   Nr   r  r  )r   r   rG   rH   r   r9   r  r  r   r<   r4   r9  rW   rX   rC   r   rL   r  r  r  r  r1   r[   rl   rm   r  s          r   test04b_intz OffsetStrideTestCase.test04b_int  s    ~> 	I$	"""-0GGHHH$X66s}E	**402f1@5> + @ @ 	#%%h//HAAA"$ $ $aJJLLNNa AAAQQQ-> 	A*(%fl&<=? ? ?-v/?@@@,V\-CD	( 	( 	()95558899999r   c                    | j         }t          j        r,t          dd           t          d| j        j        z             dddt          j                 }| j        	                    |dt          j                    dd	|
          }t          j        g dd          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rDt          dt          j        j        |j        j                            t          d|j                   |                     t          j        j        |j        j                 t          j                   |                     |j        |           |                     t          j        ||                     dS )z4Checking earray with byteswapped appends (2, floats)r`   ra   zRunning %s.test04c_float...r  r  r  rr  rs  r  r  r}  r$  r2   Nr   r  r  )r   r   rG   rH   r   r9   r  r  r   r<   r4   r  rC   r   rL   r  r  r  r  r1   r[   rl   rm   r  s          r   test04c_floatz"OffsetStrideTestCase.test04c_float  s    ~> 	K$	"""/$.2IIJJJ$X66s}E	**4020@0@1B5> + @ @
 HAAA$& & &aJJLLNNa AAAQQQ-> 	A*(%fl&<=? ? ?-v/?@@@,V\-CD	( 	( 	()95558899999r   c                     | j         }t          j        r,t          dd           t          d| j        j        z             dddt          j                 }| j        	                    |dt          j                    dd	|
          }|                     d           | j                            d          }t          j        g dd          }|                    |           |                                }|                                }|                    |           |ddddf         }|ddddf         }t          j        rDt          dt          j        j        |j        j                            t          d|j                   |                     t          j        j        |j        j                 t          j                   |                     |j        |           |                     t          j        ||                     dS )z<Checking earray with byteswapped appends (2, floats, reopen)r`   ra   zRunning %s.test04d_float...r  r  r  rr  rs  r  r  r   r   r  r}  r$  r2   Nr   r  r  )r   r   rG   rH   r   r9   r  r  r   r<   r4   r  rW   rX   rC   r   rL   r  r  r  r  r1   r[   rl   rm   r  s          r   test04d_floatz"OffsetStrideTestCase.test04d_float1  s    ~> 	K$	"""/$.2IIJJJ$X66s}E	**4020@0@1B5> + @ @ 	#%%h//HAAA$& & &aJJLLNNa AAAQQQ-> 	A*(%fl&<=? ? ?-v/?@@@,V\-CD	( 	( 	()95558899999r   )r9   r   r   r   r;   r#   r   rm  rp  r{  r  r  r  r  r  r  r  r   r   s   @r   rP  rP    s        DHG* * * * *) ) )<) ) )<: : :B9 9 9@: : :@: : :@": ": ":H$: $: $:L": ": ":H$: $: $: $: $: $: $:r   rP  c                   >    e Zd Zd Zd 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                    }| j                            | j        j	        d|dd          }|
                    t          j        dd	gd
dggd                     | j        rBt           j        rt          d           |                     d           | j        j	        j        }|                    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        |j        j                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j         |j                    |                     tC          |j                  tC          |j                             dS )zChecking EArray.copy() method.r`   ra   zRunning %s.test01_copy...array1r   title array1rW    r
   rb     int16r2   (closing file version)r   r   r8  array2	array1-->	array2-->attrs array1-->attrs array2-->N)"r   rG   rH   r   r9   r4   	Int16Atomr   r<   r   rL   rC   r   r   rW   r  r   r  r   rI   attrsrl   rm   r[   r]   r(   rA   r=   r'   r1   r3   r!   r)   r   r   r'   r  r  s       r   test01_copyzCopyTestCase.test01_copyZ  s    > 	I$	"""-0GGHHH |~~**4;+;X04F1? + A A 	bha1c(37CCCDDD: 	-~ 0.///LLcL"""[%,F 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v|444666666*FK,=>>>)6;+;<<<-v{/CDDDv|444V[))3v{+;+;<<<<<r   c                 j   t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }|
                    t          j        dd	gd
dggd                     | j        rBt           j        rt          d           |                     d           | j        j	        j        }| 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        |j        j                   |                     |j        j         |j        j                    |                     |j        j!        |j        j!                   |                     |j"        |j"                   |                     tG          |j                  tG          |j                             dS )z/Checking EArray.copy() method (where specified)r`   ra   zRunning %s.test02_copy...r  r   r  rW  r  r
   rb   r  r  r2   r  r   r   r8  group1r  r  r  r  r  N)$r   rG   rH   r   r9   r4   r  r   r<   r   rL   rC   r   r   rW   r  create_groupr   r  r  r   rI   r  rl   rm   r[   r]   r(   rA   r=   r'   r1   r3   r!   r)   r   )r   r'   r  r  r  s        r   test02_copyzCopyTestCase.test02_copy  s    > 	I$	"""-0GGHHH |~~**4;+;X04F1? + A A 	bha1c(37CCCDDD: 	-~ 0.///LLcL"""[%,F ))#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v|444666666*FK,=>>>)6;+;<<<-v{/CDDDv|444V[))3v{+;+;<<<<<r   c                 X   t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }d|_
        |                    d	           | j        rBt           j        rt          d
           |                     d           | j        j	        j        }|                    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                   |                     |j        |j                   |                     |j        |j                   |                     |j
        |j
                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        |j                   |                     t;          |j                  t;          |j                             dS )z-Checking EArray.copy() method (python flavor)r`   ra   zRunning %s.test03b_copy...r  r   r  rW  python))r  r
   )rb   r  r  r   r   r8  r  r  r  N)r   rG   rH   r   r9   r4   r  r   r<   r   r=   rL   r   rW   r  r   r  rI   r  r[   r   r]   r(   rA   r'   r1   r3   r!   r)   r   r  s       r   test03a_copyzCopyTestCase.test03a_copy  s    > 	J$	""".1HHIII|~~**4;+;X04F1? + A A !*+++: 	-~ 0.///LLcL"""[%,F S(++: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	666v|444v|444666666*FK,=>>>)6;+;<<<-v{/CDDDv|444V[))3v{+;+;<<<<<r   c                 h   t           j        r,t          dd           t          d| j        j        z             t          j        d          }| j                            | j        j	        d|dd	          }d
|_
        |                    ddgddgg           | j        rBt           j        rt          d           |                     d           | j        j	        j        }|                    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                   |                     |j        |j                   |                     |j        |j                   |                     |j
        |j
                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        |j                   |                     t;          |j                  t;          |j                             dS )z4Checking EArray.copy() method (python string flavor)r`   ra   zRunning %s.test03d_copy...rb   r    r  r   r  rW  r  45623457r  r   r   r8  r  r  r  N)r   rG   rH   r   r9   r4   r5   r   r<   r   r=   rL   r   rW   r  r   r  rI   r  r[   r   r]   r(   rA   r'   r1   r3   r!   r)   r   r  s       r   test03b_copyzCopyTestCase.test03b_copy  s    > 	J$	""".1HHIII}a(((**4;+;X04F1? + A A !s|c5\2333: 	-~ 0.///LLcL"""[%,F S(++: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	666 	v|444v|444666666*FK,=>>>)6;+;<<<-v{/CDDDv|444V[))3v{+;+;<<<<<r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        d          }| j                            | j        j	        d|dd	          }d
|_
        |                    t          j        ddgddggd                     | j        rBt           j        rt          d           |                     d           | j        j	        j        }|                    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        |                                |                                                     |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j
        |j
                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j         |j                    |                     tC          |j                  tC          |j                             dS )z-Checking EArray.copy() method (String flavor)r`   ra   zRunning %s.test03e_copy...r   r    r  r   r  rW  r   r  r  r  r  S4r2   r  r   r   r8  r  r  r  N)"r   rG   rH   r   r9   r4   r5   r   r<   r   r=   rL   rC   r   r   rW   r  r   r  rI   r  rl   rm   r   r[   r]   r(   rA   r'   r1   r3   r!   r)   r   r  s       r   test03c_copyzCopyTestCase.test03c_copy   s    > 	J$	""".1HHIII}a(((**4;+;X04F1? + A A  bhsEl;4HHHIII: 	-~ 0.///LLcL"""[%,F S(++: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	v{{}}EEFFFv|444v|444666666*FK,=>>>)6;+;<<<-v{/CDDDv|444V[))3v{+;+;<<<<<r   c                 f   t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }|
                    t          j        dd	gd
dggd                     d|j        _        d	|j        _        | j        rBt           j        rt          d           |                     d           | j        j	        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 )z6Checking EArray.copy() method (checking title copying)r`   ra   zRunning %s.test04_copy...r  r   r  rW  r  r
   rb   r  r  r2   attr1r  r   r   r8  r  ztitle array2)r)   ztitle of destination array-->N)r   rG   rH   r   r9   r4   r  r   r<   r   rL   rC   r   r  r  attr2r   rW   r  r   r  r)   r[   r  s       r   test04_copyzCopyTestCase.test04_copyO  s    > 	I$	"""-0GGHHH |~~**4;+;X04F1? + A A 	bha1c(37CCCDDD$: 	-~ 0.///LLcL"""[%,F S(.AA: 	-~ 0.///LLNNN[%,F[%,F > 	A16<@@@~66666r   c                    t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }|
                    t          j        dd	gd
dggd                     d|j        _        d	|j        _        | j        rBt           j        rt          d           |                     d           | j        j	        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 )z6Checking EArray.copy() method (user attributes copied)r`   ra   zRunning %s.test05_copy...r  r   r  rW  r  r
   rb   r  r  r2   r  r  r   r   r8  r  r   copyuserattrsr  r  N)r   rG   rH   r   r9   r4   r  r   r<   r   rL   rC   r   r  r  r  r   rW   r  r   r  rI   r[   r  s       r   test05_copyzCopyTestCase.test05_copyu  s    > 	I$	"""-0GGHHH |~~**4;+;X04F1? + A A 	bha1c(37CCCDDD$: 	-~ 0.///LLcL"""[%,F S(!<<: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	+W555+Q/////r   c                 2   t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }|
                    t          j        dd	gd
dggd                     d|j        _        d	|j        _        | j        rBt           j        rt          d           |                     d           | j        j	        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 )z:Checking EArray.copy() method (user attributes not copied)r`   ra   zRunning %s.test05b_copy...r  r   r  rW  r  r
   rb   r  r  r2   r  r  r   r   r8  r  r   r  r  r  r  N)r   rG   rH   r   r9   r4   r  r   r<   r   rL   rC   r   r  r  r  r   rW   r  r   r  rI   r[   rp   r  s       r   test05b_copyzCopyTestCase.test05b_copy  s    > 	J$	""".1HHIII |~~**4;+;X04F1? + A A 	bha1c(37CCCDDD$: 	-~ 0.///LLcL"""[%,F S(!<<: 	-~ 0.///LLNNN[%,F[%,F> 	9#T&,%7%7888#T&,%7%7888 	w77;;;w77;;;;;r   N)r9   r   r   r  r  r  r  r  r  r  r  r   r   r   r  r  X  s        1= 1= 1=f2= 2= 2=h-= -= -=^.= .= .=`-= -= -=^$7 $7 $7L'0 '0 '0R'< '< '< '< '<r   r  c                       e Zd ZdZdS )CloseCopyTestCaser   Nr9   r   r   r   r   r   r   r  r            EEEr   r  c                       e Zd ZdZdS )OpenCopyTestCaser   Nr  r   r   r   r  r    r  r   r  c                       e Zd ZdZd Zd ZdS )CopyIndexTestCaser
   c                 P   t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }t          j        dd	
          }d|_        |                    |           | j        |_        |                    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 EArray.copy() method with indexes.r`   ra   zRunning %s.test01_index...r  r   r  rW     r   r2   r  r
   r8  r  rz   r  r  r  r  nrows in array2-->and it should be-->r   N)r   rG   rH   r   r9   r4   r9  r   r<   r   rC   rE   r(   rL   ri   r   r{   r|   r}   r   rI   r  rl   rm   r]   r[   r   r'   r  rr  r2s         r   test01_indexzCopyIndexTestCase.test01_index  s    > 	J$	""".1HHIII |~~**4;+;X04F1? + A A Ic)))a !O 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3r   c                    t           j        r,t          dd           t          d| j        j        z             t          j                    }| j                            | j        j	        d|dd          }t          j        dd	
          }d|_        |                    |           | j        |_        |                    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 EArray.copy() method with indexes (close file version)r`   ra   z Running %s.test02_indexclosef...r  r   r  rW  r  r   r2   r  r8  r  rz   r  r  r  r  r  r  r   N)r   rG   rH   r   r9   r4   r9  r   r<   r   rC   rE   r(   rL   ri   r   r{   r|   r}   rW   r  r  r   rI   r  rl   rm   r]   r[   r  s         r   test02_indexclosefz$CopyIndexTestCase.test02_indexclosef  s    > 	P$	"""4t~7NNOOO |~~**4;+;X04F1? + A A Ic)))a !O 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3r   N)r9   r   r   ri   r  r  r   r   r   r  r    s8        J&4 &4 &4P+4 +4 +4 +4 +4r   r  c                       e Zd ZdZdZdZdZdS )CopyIndex1TestCaser   r   r   Nr9   r   r   ri   r{   r|   r}   r   r   r   r  r  )  "        JEDDDDr   r  c                       e Zd ZdZdZdZdZdS )CopyIndex2TestCaser
   r   r   r   Nr  r   r   r   r  r  0  s"        JEDDDDr   r  c                       e Zd ZdZdZdZdZdS )CopyIndex3TestCaserb   r   r   Nr  r   r   r   r  r  7  r  r   r  c                       e Zd ZdZdZdZdZdS )CopyIndex4TestCaser   r   r   r   Nr  r   r   r   r  r  >  r  r   r  c                       e Zd ZdZdZdZdZdS )CopyIndex5TestCaser
   rb   r   r   Nr  r   r   r   r  r  E  r  r   r  c                       e Zd ZdZdZdZdZdS )CopyIndex6TestCaser
   rb   r   Nr  r   r   r   r  r  L  r  r   r  c                       e Zd ZdZdZdZdS )CopyIndex7TestCaser   r   r   Nr9   r   r   r{   r|   r}   r   r   r   r  r  S  s        EDDDDr   r  c                       e Zd ZdZdZdZdS )CopyIndex8TestCaser   r   r   Nr  r   r   r   r  r  Y  s        EDDDDr   r  c                       e Zd ZdZdZdZdS )CopyIndex9TestCaserb   r   r   Nr  r   r   r   r  r  _  s        EDDDDr   r  c                       e Zd ZdZdZdZdZdS )CopyIndex10TestCaser   rb   r   r
   Nr  r   r   r   r  r  e  r  r   r  c                       e Zd ZdZdZdZdS )CopyIndex11TestCaser   r
   Nr  r   r   r   r  r  l  s        EDDDDr   r  c                       e Zd ZdZdZdZdS )CopyIndex12TestCaser   Nr   r  r   r   r   r  r  r  s        EDDDDr   r  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )TruncateTestCasec                 "   t                                                       t          j        d          }| j                            | j        j        d|dd          }|                    t          j	        ddgdd	ggd
                     d S )Nrb   )dfltr  r   r  rW  r  r
   r  r  r2   )
r   r   r4   r  r   r<   r   rL   rC   r   )r   r'   r  r   s      r   r   zTruncateTestCase.setUpz  s     |###**4;+;X04F1? + A A 	bha1c(37CCCDDDDDr   c           	         | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    t          j        |dd         t          j        g d                              dd                               dS )z8Checking EArray.truncate() method (truncating to 0 rows)r   r  r  Nr  r2   r
   )r   r   r  truncater   r   rG   rH   rW   r   rl   rm   rC   r   reshaper   r  s     r   test00_truncatez TruncateTestCase.test00_truncate  s     !(: 	-~ 0.///LLNNN[%,F> 	.+v{{}}---111Irx'222::1a@@B B 	C 	C 	C 	C 	Cr   c           	         | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    t          j        |	                                t          j        ddggd                               dS )	z8Checking EArray.truncate() method (truncating to 1 rows)r   r  r  r  r
   r  r2   Nr   r   r  r  r   r   rG   rH   rW   r   rl   rm   rC   r   r  s     r   test01_truncatez TruncateTestCase.test01_truncate  s     !(: 	-~ 0.///LLNNN[%,F> 	.+v{{}}---KKMM28c1XJg>>>@ @ 	A 	A 	A 	A 	Ar   c           
         | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    t          j        |	                                t          j        ddgddggd                               d	S )
z?Checking EArray.truncate() method (truncating to == self.nrows)r
   r  r  r  rb   r  r  r2   Nr  r  s     r   test02_truncatez TruncateTestCase.test02_truncate  s     !(: 	-~ 0.///LLNNN[%,F> 	.+v{{}}---KKMM28c1X3x$8HHHJ J 	K 	K 	K 	K 	Kr   c           
         | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    |j        d           |                     t          j        |dd         t          j        ddgddggd	
                               |                     t          j        |dd         t          j        ddgddggd	
                               dS )z>Checking EArray.truncate() method (truncating to > self.nrows)r   r  r  Nr
   r  rb   r  r  r2   )r   r   r  r  r   r   rG   rH   rW   r   r[   r]   rl   rm   rC   r   r  s     r   test03_truncatez TruncateTestCase.test03_truncate  sL    !(: 	-~ 0.///LLNNN[%,F> 	.+v{{}}---q)))2A2J3(QH!5WEEEG G 	H 	H 	H 	122J1a&1a&!1AAAC C 	D 	D 	D 	D 	Dr   )	r9   r   r   r   r  r  r
  r  r   r   s   @r   r  r  x  s        	E 	E 	E 	E 	EC C C&A A A&K K K&D D D D D D Dr   r  c                       e Zd ZdZdS )TruncateOpenTestCaser   Nr  r   r   r   r  r    r  r   r  c                       e Zd ZdZdS )TruncateCloseTestCaser   Nr  r   r   r   r  r    r  r   r  c                   0     e Zd ZdZdZdZ fdZd Z xZS )Rows64bitsTestCaser   @B i  c           
         t                                                       | j                            | j        j        dt          j                    dt          j        dd          | j        | j	        z            }t          j        | j        d          }t          | j	                  D ]}|                    |           d S )	Nr   r   r   r   )r#   r"   )r'   r(   r*   r+   int8r2   )r   r   r   r<   r   r4   Int8Atomr:   narowsnanumberrC   rE   rJ   rL   )r   r   narO   r   s       r   r   zRows64bitsTestCase.setUp  s     ))KgdJu::: t}4 * 6 6 Yt{&111t}%% 	 	ALL	 	r   c           
         | j         j        j        }| j        rt          j        ret          d           t          d|j        t          |j                             t          d|j        dz  d           t          d|j	                   | 
                                 | j         j        j        }t          j        rt          d           t          j        rt          d|j        t          |j                             t          d|j        dz  d           t          d|j	                   t          d|dd	                    | j        d
z  }|dk    r|d
z  }|dz
  }t          dt          j        ||d                     | j        | j        z  }|                     |j        |           |                     |j	        |f           |                     t	          j        |d	d         t          j        dd                               | j        d
z  }|dk    r|d
z  }|dz
  }|                     t	          j        |dd	         t          j        ||d                               d	S )z2Some basic checks for earrays exceeding 2**31 rowszBefore closingzEntries:r  MillionszShape:zAfter re-openzLast 10 elements-->iN      r   zShould look like-->r  r2   )r   r   r   r   r   rG   rH   r]   r3   r(   rW   r  rC   rE   r  r[   rl   rm   )r   r   r|   r{   r]   s        r   test01_basiccheckz$Rows64bitsTestCase.test01_basiccheck  sc     &: 	'~ -&'''j%+tEK/@/@AAAj%+"=zJJJh,,, LLNNNK$*E~ 'o&&& > 		O*ek4+<+<===*ek[9:FFF(EK((('stt555;$Dczz2IE'5$f)M)M)MNNNdm+e,,,uh///#2#J	"F3335 5 	6 	6 	6 {S #::CKDr	#$$K5$f===? ? 	@ 	@ 	@ 	@ 	@r   )	r9   r   r   	open_moder  r  r   r  r   r   s   @r   r  r    s]        IFH    ".@ .@ .@ .@ .@ .@ .@r   r  c                       e Zd ZdZdS )Rows64bitsTestCase1r   Nr  r   r   r   r!  r!  (	  r  r   r!  c                       e Zd ZdZdS )Rows64bitsTestCase2r   Nr  r   r   r   r#  r#  ,	  r  r   r#  c                   .     e Zd ZdZ fdZd Zd Z xZS )ZeroSizedTestCaser   c                     t                                                       | j                            ddt	          j                    d          }|                    dgdgdgg           d S )Nr8  testrb   r   r'   r(   r   r
   rb   )r   r   r   r<   r4   r9  rL   )r   ear   s     r   r   zZeroSizedTestCase.setUp4	  si     [&&sF,.LNN& ' J J 			A3aS/"""""r   c                     | j         }|j        j        }t          j        dd          }|                    |           |                     |j        dd           dS )zAppending zero length array.r(  r   r   r   zThe number of rows should be 1.N)r   r   r'  rC   r   rL   r[   r]   r   filehr*  arrs       r   test01_canAppendz"ZeroSizedTestCase.test01_canAppend=	  sX     Z_hV7333
		#1&GHHHHHr   c                     | j         }|j        j        }t          j        dd          }|                     t          |j        |           dS )z1Appending zero length array with wrong dimension.)rb   r   rb   r   r   N)r   r   r'  rC   r   assertRaises
ValueErrorrL   r,  s       r   test02_appendWithWrongShapez-ZeroSizedTestCase.test02_appendWithWrongShapeF	  sH     Z_hYg666*bi55555r   )r9   r   r   r  r   r/  r3  r   r   s   @r   r%  r%  1	  s^        I# # # # #I I I6 6 6 6 6 6 6r   r%  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	MDAtomTestCasec           
          | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }|                    ddgd	d
ggg           | 	                    |j
        d           t          j        rt          d|d                    |                     t          j        |d         t!          j        ddgd	d
ggd                               dS )z@Append a row to a (unidimensional) EArray with a MD tables.Atom.r8  r'  r
   r
   r   r)  r   r   rb   r   r   First row-->r   r   Nr   r<   r4   r9  r   rW   r   r'  rL   r[   r]   r   rG   rH   rl   rm   rC   r   r   r*  s     r   test01a_appendzMDAtomTestCase.test01a_appendR	  s    [&&sF,.L,@,@ ' N N; 	'LL!&B
		QFQF#$%%%1%%%> 	)."Q%(((qE28aVaV,d335 5 	6 	6 	6 	6 	6r   c           
         | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }|                    dggdggd	ggg           | 	                    |j
        d	           t          j        rt          d
|d                    |                     t          j        |d         t!          j        d	d	gd	d	ggd                               dS )zOAppend several rows to a (unidimensional) EArray with a MD
        tables.Atom.r8  r'  r7  r   r)  r   r   r
   rb   Third row-->r   Nr9  r:  s     r   test01b_appendzMDAtomTestCase.test01b_appendc	  s	   
 [&&sF,.L,@,@ ' N N; 	'LL!&B
		QC5A3%1#'(((1%%%> 	)."Q%(((qE28aVaV,d335 5 	6 	6 	6 	6 	6r   c                    | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }|                    ddgd	d
gddggg           | 	                    |j
        d           t          j        rt          d|d                    |                     t          j        |d         t!          j        ddgd	d
gddggd                               dS )zJAppend a row to a (multidimensional) EArray with a
        MD tables.Atom.r8  r'  r
   rs  r)  r   r   rb   r   r   r   	   r8  r   r   Nr9  r:  s     r   test02a_appendzMDAtomTestCase.test02a_appendu	  s   
 [&&sF,.L,>,>f ' N N; 	'LL!&B
		QFQFQF+,---1%%%> 	)."Q%(((qE28aVaVaV4d;;= = 	> 	> 	> 	> 	>r   c                 4   | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }|                    ddgd	d
gddggddgddgddggddgd
dgddggg           | 	                    |j
        d           t          j        rt          d|d                    |                     t          j        |d         t!          j        ddgd
dgddggd                               dS )zQAppend several rows to a (multidimensional) EArray with a MD
        tables.Atom.r8  r'  r@  rs  r)  r   r   r  r   irA  r   rb   r   r   iir=  r
   r   Nr9  r:  s     r   test02b_appendzMDAtomTestCase.test02b_append	  sO   
 [&&sF,.L,>,>f ' N N; 	'LL!&B
		QGaWr1g.Gb!Wq"g.Gb!Wq"g.0 	1 	1 	1 	1%%%> 	)."Q%(((qE28b!Wr1g2w7>>@ @ 	A 	A 	A 	A 	Ar   c                 0   | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }t          j	        dd	          
                    d
          }|                    |dz  |dz  |dz  g           |                     |j        d           t          j        rt!          d|d                    |                     t          j        |d         |dz                       dS )zJComplex append of a MD array in a MD EArray with a
        MD tables.Atom.r8  r'  r
   r   )r   r
   rb   r)  r   0   r   r2   r
   rb   r
   r   r   r
   rb   r=  Nr   r<   r4   r9  r   rW   r   r'  rC   rE   r  rL   r[   r]   r   rG   rH   rl   rm   r   r*  r   s      r   test03a_MDMDMDzMDAtomTestCase.test03a_MDMDMD	  s   
 [&&sFf9M9M-6 ' 8 8; 	'LL!&B Iit,,,44\BB
		1q5!A#qs#$$$1%%%> 	)."Q%(((1q1u5566666r   c                    | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }t          j	        dd	          
                    d
          }|                    |dz             |                    |dz             |                    |dz             |                     |j        d           t          j        rt!          d|ddddf                    |                     t          j        |ddddf         |
                    d          dz                       dS )z@Complex append of a MD array in a MD EArray with a MD atom (II).r8  r'  rI  r   r)  r   rJ  r   r2   )r
   r   rb   r
   r   r   r
   rb   r=  N.rK  rL  rM  s      r   test03b_MDMDMDzMDAtomTestCase.test03b_MDMDMD	  s[    [&&sFf9M9M-6 ' 8 8; 	'LL!&B Iit,,,44_EE
		!a%
		!a%
		!a%1%%%> 	1."QQQ3Y-000111a9()		,(?(?(AC C 	D 	D 	D 	D 	Dr   c           	         | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }t          j	        dd	          
                    d
          }|                    |dz             |                    |dz             |                    |dz             |                     |j        d           t          j        rt!          d|ddddddf                    |                     t          j        |ddddddf         |
                    d          dz                       dS )zAComplex append of a MD array in a MD EArray with a MD atom (III).r8  r'  rI  )r
   rb   r   r)  r   rJ  r   r2   )r
   rb   r   r
   r   r   r
   rb   r=  N.rK  rL  rM  s      r   test03c_MDMDMDzMDAtomTestCase.test03c_MDMDMD	  si    [&&sFf9M9M-6 ' 8 8; 	'LL!&B Iit,,,44_EE
		!a%
		!a%
		!a%1%%%> 	4."QQQ1c\"2333111aaaC<(8()		,(?(?(AC C 	D 	D 	D 	D 	Dr   N)
r9   r   r   r;  r>  rB  rG  rN  rP  rR  r   r   r   r5  r5  P	  s        6 6 6"6 6 6$> > >$A A A(7 7 7&D D D(D D D D Dr   r5  c                       e Zd ZdZdS )MDAtomNoReopenFNr9   r   r   r   r   r   r   rT  rT  	  s        FFFr   rT  c                       e Zd ZdZdS )MDAtomReopenTNrU  r   r   r   rW  rW  	  s        FFFr   rW  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )AccessClosedTestCasec                    t                                                       | j                            | j        j        dt          j                    d          | _        | j                            t          j
        d                     d S )Nr   r3  r)  r   r   )r   r   r   r<   r   r4   r9  r   rL   rC   zerosr   s    r   r   zAccessClosedTestCase.setUp	  so    [..t{/?46LNN5< / > >
 	
"(8,,-----r   c                     | j                                          |                     t          j        | j        j                   d S r   )r   r   r1  r4   ClosedNodeErrorr   r   r   s    r   	test_readzAccessClosedTestCase.test_read	  s9    ",djo>>>>>r   c                     | j                                          |                     t          j        | j        j        d           d S r<  )r   r   r1  r4   r^  r   r   r_  s    r   test_getitemz!AccessClosedTestCase.test_getitem	  s<    ",dj.DaHHHHHr   c                     | j                                          |                     t          j        | j        j        dd           d S r<  )r   r   r1  r4   r^  r   __setitem__r_  s    r   test_setitemz!AccessClosedTestCase.test_setitem	  s>    ",dj.DaKKKKKr   c                     | j                                          |                     t          j        | j        j        t          j        d                     d S )Nr[  )	r   r   r1  r4   r^  r   rL   rC   r\  r_  s    r   test_appendz AccessClosedTestCase.test_append	  sV    ",*+RXh-?-?	A 	A 	A 	A 	Ar   )	r9   r   r   r   r`  rb  re  rg  r   r   s   @r   rY  rY  	  s        . . . . .? ? ?I I IL L LA A A A A A Ar   rY  c                      e Zd Z ej        g dg dg dg          ZdZdZej	        
                    ej                  Zdej        dd         z   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 Z!dS )TestCreateEArrayArgs)r   r
   rb   )r   r   r   )r   r  rA  r8  rN   r   r   Nr)   r4  )r   r
   Fc           
         | j                             | j        | j        | j        | j        | j        | j        | j        | j	                   | 
                                 | j                             | j        | j                  }|                     |j        | j                   |                     |j        | j                   |                     |j        d           |                     |j        | j                   |                     |j        j        | j        j                   |                     |j	        | j	                   d S r<  )r   r<   wherer   r'   r(   r)   r*   r+   r   rW   rX   r[   r]   r1   r   ptarrs     r   test_positional_args_01z,TestCreateEArrayArgs.test_positional_args_01
  s   !!$*di"&)TZ"&*dl"&"3T_	F 	F 	F
 	$$TZ;;dj111dj111a(((TY///)49?;;;)4?;;;;;r   c           
      t   | j                             | j        | j        | j        | j        | j        | j        | j        | j	                  }|
                    | j                   |                                  | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j        j                   |                     |j        | j        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j	        | j	                   |                     t'          j        | j        |                     d S r<  )r   r<   rk  r   r'   r(   r)   r*   r+   r   rL   r,   rW   rX   r   r[   r]   r1   rl   r   rm   r   rm  nparrs      r   test_positional_args_02z,TestCreateEArrayArgs.test_positional_args_02
  s[   ))$*di*.)TZ*.**.,*.*;*./; ; 	TX$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c                 P   | j                             | j        | j        d d | j        | j        | j        | j        | j        | j	        | j
                   |                                  | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j
        j                   |                     |j        | j
        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t)          j        | j
        |                     d S r<  )r   r<   rk  r   r)   r*   r+   r   r  createparentsr,   rW   rX   r   r[   r(   r]   r'   r1   rl   r   rm   rp  s      r   test_positional_args_objz-TestCreateEArrayArgs.test_positional_args_obj.
  sV   !!$*di"&"&*"&,"&"3"&/"&."&"4"&(	, 	, 	, 	$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c                    | j                             | j        | j        | j        | j        | j                   |                                  | j                             | j        | j                  }|	                                }| 
                    |j        | j                   | 
                    |j        | j        j                   | 
                    |j        | j        j        d                    | 
                    |j        | j                   | 
                    |j        j        | j        j                   | 
                    |j        | j                   |                     t!          j        | j        |                     d S )N)r)   r   r,   r   )r   r<   rk  r   r)   r   r,   rW   rX   r   r[   r(   r]   r'   r1   rl   r   rm   rp  s      r   test_kwargs_objz$TestCreateEArrayArgs.test_kwargs_objF
  s?   !!$*ditz-1_&*h 	" 	0 	0 	0 	$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c                 ^   | j                             | j        | j        | j        | j        | j        | j                  }|                    | j	                   | 
                                 | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j	        j                   |                     |j        | j	        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t#          j        | j	        |                     d S N)r)   r   r'   r(   r   )r   r<   rk  r   r)   r   r'   r(   rL   r,   rW   rX   r   r[   r]   r1   rl   r   rm   rp  s      r   test_kwargs_atom_shape_01z.TestCreateEArrayArgs.test_kwargs_atom_shape_01X
  sW   ))$*di04
59_/3y
 * L L 	TX$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c                 ~   | j                             | j        | j        | j        | j        | j        | j                  }|                                  | j         	                    | j        | j                  }| 
                    |j        | j                   | 
                    |j        | j                   | 
                    |j        d           | 
                    |j        | j                   | 
                    |j        j        | j        j                   | 
                    |j        | j                   d S ry  )r   r<   rk  r   r)   r   r'   r(   rW   rX   r[   r]   r1   rl  s     r   test_kwargs_atom_shape_02z.TestCreateEArrayArgs.test_kwargs_atom_shape_02l
  s   ))$*di04
59_/3y
 * L L 	$$TZ;;dj111dj111a(((TY///)49?;;;)4?;;;;;r   c                 *   | j                             | j        | j        | j        | j        | j        | j                  }|                                  | j         	                    | j        | j                  }|
                                }|                     |j        | j                   |                     |j        | j        j                   |                     |j        | j        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t!          j        | j        |                     d S )N)r)   r   r,   r'   r   )r   r<   rk  r   r)   r   r,   r'   rW   rX   r   r[   r(   r]   r1   rl   r   rm   rp  s      r   test_kwargs_obj_atomz)TestCreateEArrayArgs.test_kwargs_obj_atom~
  sB   ))$*di04
59_.2h/3y	 * : : 	$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c                 *   | j                             | j        | j        | j        | j        | j        | j                  }|                                  | j         	                    | j        | j                  }|
                                }|                     |j        | j                   |                     |j        | j        j                   |                     |j        | j        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t!          j        | j        |                     d S )N)r)   r   r,   r(   r   )r   r<   rk  r   r)   r   r,   r(   rW   rX   r   r[   r]   r'   r1   rl   r   rm   rp  s      r   test_kwargs_obj_shapez*TestCreateEArrayArgs.test_kwargs_obj_shape
  sB   ))$*di04
59_.2h04
	 * < < 	$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c           	      6   | j                             | j        | j        | j        | j        | j        | j        | j                  }| 	                                 | j         
                    | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j        j                   |                     |j        | j        j        d                    |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t!          j        | j        |                     d S )N)r)   r   r,   r'   r(   r   )r   r<   rk  r   r)   r   r,   r'   r(   rW   rX   r   r[   r]   r1   rl   r   rm   rp  s      r   test_kwargs_obj_atom_shapez/TestCreateEArrayArgs.test_kwargs_obj_atom_shape
  sG   ))$*di04
59_.2h/3y04
 * < < 	$$TZ;;

dj111dhn555dhnQ&7888TY///)49?;;;)4?;;;%8899999r   c           	          t           j                            t          j        d                    }|                     t          | j        j        | j	        | j
        | j        | j        |           d S )Ncomplex)r)   r,   r'   )r4   r7   
from_dtyperC   r1   r1  	TypeErrorr   r<   rk  r   r)   r,   r   r'   s     r   test_kwargs_obj_atom_errorz/TestCreateEArrayArgs.test_kwargs_obj_atom_error
  si    w!!"(9"5"566)+3*) $
"h# 	 	% 	% 	% 	% 	%r   c           	          | j         | j         z   }|                     t          | j        j        | j        | j        | j        | j        |           d S )N)r)   r,   r(   )	r(   r1  r  r   r<   rk  r   r)   r,   rS   s     r   test_kwargs_obj_shape_errorz0TestCreateEArrayArgs.test_kwargs_obj_shape_error
  sX    
TZ')+3*) $
"h % 	 	' 	' 	' 	' 	'r   c           
          t           j                            t          j        d                    }|                     t          | j        j        | j	        | j
        | j        | j        || j                   d S Nr  r)   r,   r'   r(   )r4   r7   r  rC   r1   r1  r  r   r<   rk  r   r)   r,   r(   r  s     r   #test_kwargs_obj_atom_shape_error_01z8TestCreateEArrayArgs.test_kwargs_obj_atom_shape_error_01
  sn    w!!"(9"5"566)+3*) $
"h# $
 	 	, 	, 	, 	, 	,r   c           
          | j         | j         z   }|                     t          | j        j        | j        | j        | j        | j        | j	        |           d S )Nr  )
r(   r1  r  r   r<   rk  r   r)   r,   r'   rS   s     r   #test_kwargs_obj_atom_shape_error_02z8TestCreateEArrayArgs.test_kwargs_obj_atom_shape_error_02
  s]    
TZ')+3*) $
"h#y % 	 	' 	' 	' 	' 	'r   c           
         t           j                            t          j        d                    }| j        | j        z   }|                     t          | j        j	        | j
        | j        | j        | j        ||           d S r  )r4   r7   r  rC   r1   r(   r1  r  r   r<   rk  r   r)   r,   )r   r'   r(   s      r   #test_kwargs_obj_atom_shape_error_03z8TestCreateEArrayArgs.test_kwargs_obj_atom_shape_error_03
  sz    w!!"(9"5"566
TZ')+3*) $
"h# % 	 	' 	' 	' 	' 	'r   )"r9   r   r   rC   r   r,   rk  r   r4   r7   r  r1   r'   r(   r)   r*   r+   r   r  rt  rn  rr  ru  rw  rz  r|  r~  r  r  r  r  r  r  r  r   r   r   ri  ri  	  s]       
"(IIIyyy)))4
5
5CED7ci((D39QRR= EEGLJIM< < <": : :,: : :0: : :$: : :(< < <$: : :(: : :(: : :*	% 	% 	%	' 	' 	'
, 
, 
,
' 
' 
'
' 
' 
' 
' 
'r   ri  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           j4        rL|                     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                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               | S )Nr   )Ir   unittest	TestSuiterJ   addTest	makeSuiter   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.  r1  rP  r  r   r  r  r  r  r  r  r  r  r  r%  rT  rW  rY  ri  heavyr   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r!  r#  )theSuiteniterns      r   suiter  
  s	   ((**HE 5\\ /J /J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23FGGHHH223FGGHHH223FGGHHH223FGGHHH223FGGHHH223GHHIII223GHHIII223HIIJJJ223IJJKKK223JKKLLL223JKKLLL223DEEFFF223FGGHHH223EFFGGG223GHHIII223CDDEEE223EFFGGG223EFFGGG223GHHIII223DEEFFF223FGGHHH22>BBCCC22?CCDDD223FGGHHH22.0 0 	1 	1 	1223GHHIII223EFFGGG223EFFGGG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23GHHIII223HIIJJJ223DEEFFF22>BBCCC22<@@AAA223GHHIII223GHHIIII| I223HIIJJJ223HIIJJJ223JKKLLL223JKKLLL223JKKLLL223JKKLLL223CDDEEE223CDDEEE223CDDEEE223CDDEEE223DEEFFF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23FGGHHH223FGGHHHOr   __main__r  )defaultTest)br  pathlibr   r   rC   tablesr4   tables.testsr   TempFileMixinPyTablesTestCaser   r   r   r   r   r   r   r   r   r   r   r   r  skipIf	lzo_availr   blosc_availr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r	  r  r  r  r  bzip2_availr  r  r  r   r#  r'  r*  r,  r.  r1  rP  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r5  rT  rW  rY  ri  r  r9   
parse_argvargvprint_versionsmainr   r   r   <module>r     s   



                    Q1 Q1 Q1 Q1 Q1F(&*A Q1 Q1 Q1h           -       -       -       -       -       -       -       -       ]   	 	 	 	 	= 	 	 	 F,,?A A. . . . .= . .A A. F..AC CG G G G GM G GC CG( ( ( ( (] ( ( (8 8 8 8 8m 8 8 8 F..AC CA A A A AM A AC CA,> > > > >M > > >K K K K Km K K K8 8 8 8 8m 8 8 8; ; ; ; ;m ; ; ;> > > > >m > > >H H H H Hm H H H    }   
 
 
 
 
} 
 
 
    }       -              }              =              -    F..AC C      C C F..AC C    =  C C F,,?A A    }  A A F,,?A A      A A F..AC C      C C F..AC C    =  C C       	 	 	 	 	 	 	 	"           -   
( 
( 
( 
( 
(] 
( 
( 
(	 	 	 	 	m 	 	 	    -   4L 4L 4L 4L 4L)=)/)@4L 4L 4LnX: X: X: X: X:6/1H X: X: X:v
m< m< m< m< m<6')@ m< m< m<`           |   V4 V4 V4 V4 V4,f.E V4 V4 V4r    *       *       *       *       *       *       *       *       *       +       +       +   \D \D \D \D \Dv+V-D \D \D \D~    +       ,   
E@ E@ E@ E@ E@-v/F E@ E@ E@P    ,       ,   
6 6 6 6 6,f.E 6 6 6>DD DD DD DD DDV)6+B DD DD DDN    ^       >   A A A A A6/1H A A A6y' y' y' y' y'6/1H y' y' y'xN N Nb zFchF
OW----- r   