
    dr|                       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ej                            ej         d           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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 d- d.e          Z" G d/ d0e          Z# G d1 d2e          Z$ G d3 d4e          Z% G d5 d6e          Z& G d7 d8e          Z' G d9 d:e          Z( G d; d<e          Z) G d= d>e          Z* G d? d@e          Z+ej                            ej,         dA           G dB dCe                      Z-ej                            ej,         dA           G dD dEe                      Z.ej                            ej,         dA           G dF dGe                      Z/ej                            ej,         dA           G dH dIe                      Z0ej                            ej,         dA           G dJ dKe                      Z1ej                            ej,         dA          ej                            dL ej2                    vdM           G dN dOe                                  Z3ej                            ej,         dA          ej                            dL ej2                    vdM           G dP dQe                                  Z4ej                            ej,         dA          ej                            dR ej2                    vdS           G dT dUe                                  Z5ej                            ej,         dA          ej                            dV ej2                    vdW           G dX dYe                                  Z6ej                            ej,         dA          ej                            dZ ej2                    vd[           G d\ d]e                                  Z7ej                            ej         d           G d^ d_e                      Z8ej                            ej         d           G d` dae                      Z9ej                            ej:         db           G dc dde                      Z;ej                            ej:         db           G de dfe                      Z< G dg dhe          Z= G di dje          Z> G dk dle          Z? G dm dne          Z@ G do dpe          ZA G dq dre          ZB G ds dte          ZC G du dve          ZD G dw dxe          ZE G dy dze          ZFej        G                     eHed{          d|           G d} d~e                      ZI G d de          ZJ G d de          ZKej        G                     eHed          d           G d de                      ZLej        G                     eHed          d           G d de                      ZM G d de          ZN G d de          ZOej        G                     eHed          d           G d de                      ZPej        G                     eHed          d           G d de                      ZQ G d de          ZR G d dej	        ej
                  ZS G d dej	        ej
                  ZT G d dej	        ej
                  ZU G d dej	        ej
                  ZV G d deV          ZW G d deV          ZX G d dej	        ej
                  ZY G d deY          ZZ G d deY          Z[ G d deY          Z\ G d deY          Z] G d deY          Z^ G d deY          Z_ G d deY          Z` G d deY          Za G d deY          Zb G d deY          Zc G d deY          Zd G d deY          Ze G d dej	        ej
                  Zf G d def          Zg G dÄ def          Zh G dń dej	        ej
                  Zi G dǄ dej	        ej
                  Zj G dɄ dej          Zk G d˄ dej          Zl G d̈́ dej	        ej
                  Zm G dτ dem          Zn G dф dem          Zo G dӄ dej	        ej
                  Zp G dՄ dej	        ej
                  Zq G dׄ deq          Zr G dل deq          Zs G dۄ dej	        ej
                  Zt G d݄ det          Zu G d߄ det          Zv G d dej	        ej
                  Zw G d dej	        ej
                  Zxd Zyezdk    rA ej{        e j|                    ej}                     ej        ~                    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 fd
Zd Zd Zd Zd Zd Zd Zd Z xZS )BasicTestCaseNnumpyint32   r
   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_carray.pyr   zBasicTestCase.setUp   s`    ); 	 K	  	     c           
      x   | 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                  }| j                            |d|| j        ||| j        |          }| j        |_        t+          |j                  | _        | j        t/          j        |j                  z  | _        | j        dk    rn| j        dk    r2t/          j        d| j        z  | j        d|j        j        z  	          }n1t/          j        | j        |j        j        
          }|j        |_        t>          j         rtC          dtE          |                     ||d<   d S )Nstringitemsize)	complevelcomplibshuffle
bitshuffle
fletcher32carray1)atomshapetitlefilters
chunkshapeobjr      azS%sbufferr*   dtyper2   zObject to append -->.)#r   r.   typetb
StringAtomlengthAtom	from_typer   __name__Filterscompressr$   r%   r&   r'   r   create_carrayr*   r-   flavorlistrowshapenpprodobjsizendarrayr)   r"   aranger2   r   verboseprintrepr)r   groupr.   r)   r+   r,   carrayobjects           r   r   zBasicTestCase.populateFile%   s   h;yH$$}dk:::w((33D'*t}%)\%)\(,(,	9 9 9
 **5)04DJ166:o3 + P P  V\**{RWV\%:%::;'!!yH$$4+<*.**/&+2F*FH H H 4<v{7HIII%|> 	8($v,,777sr   c                 `    | j         | j         }nt          j        | j                  j         }|S r   )r*   rA   asarrayr.   r   r*   s     r   
_get_shapezBasicTestCase._get_shapeL   s,    :!JEEJtx((.Er   c                 @   | j         rt          j        | j        d          | _        | j                            d          }|                                 }|                     |j        | j                   |                     |j	        |           |                     |j
        t          |                     |                     |j        | j                   |                     |j        |d                    |                     |j        j        | j                   d S )Nr/carray1r   )r   r5   	open_fileh5fnamer   get_noderO   assertEqualr>   r*   ndimlenr-   nrowsr)   r4   )r   r.   r*   s      r   test00_attributeszBasicTestCase.test00_attributesT   s    ; 	:,t|S99DKk"":..!!T[111E***3u::...999E!H---	22222r   c                    t           j        r,t          dd           t          d| j        j        z             | j        rt          j        | j        d          | _	        | j	        
                    d          }d|_        t           j        rGt          dt          |                     t          d|j                   t          d	| j                   |                                 }| j        d
k    ri| j        dk    r2t#          j        d| j        z  | j        d|j        j                   }n,t#          j        | j        |j        j                  }||_        | j        }| j        | j        dk    r|j        }n
| j        dz   }|j        |k     rt7          |j                  }|| j        || j                                                 }	 |                    | j        || j                  }n\# t>          $ rO | j        d
k    r!t#          j         | j        | j                  }n t#          j         | j        | j                  }Y nw xY wt           j        r_tC          |d          rt          d|j                   t          dt          |                     t          dt          |                     tC          |d          r6| "                    tG          |j                  tG          |                     n(| "                    tG          | j                  d           | "                    |j$        | j$                   | %                    t          j&        ||| j                             dS ))Checking read() of chunked layout arrays.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readCArray...rQ   rR      CArray descr:shape of read array ==>reopening?:r   r    r/   Sr0   r3   Nr   r*   r2   r*   shape should look as:zObject read ==>zShould look like ==>)'r   rF   rG   r   r:   r   r5   rS   rT   r   rU   
nrowsinbufrH   r*   rO   r>   r4   rA   rD   rC   r)   r"   rE   r2   stopstartrY   intstepcopyread
IndexErroremptyhasattrrV   rX   r-   
assertTrueallequalr   rJ   r*   object_rh   r.   datas          r   test01_readCArrayzBasicTestCase.test01_readCArrayb   s6    > 	O$	"""3dn6MMNNN ; 	:,t|S99DK%%j11 > 	./4<<000+V\:::----!! ;'!!yH$$*D4<,?+/:+Ev{/C+E+EG G G )DL8IJJJ %y 9zR|zA~ <$ v|$$D djdi/05577	C;;tz4;;DD 	C 	C 	C{g%%xdj	BBBxdj	BBB		C > 	5sG$$ :-sy999#T$ZZ000($s))4444!! 	1S__c%jj9999 S__a000*DO<<<c4;??@@@@@s   !G/ /AIIc                 p   | j         rt          j        | j        d          | _        | j                            d          }|                                 }d|_        | j        dk    ri| j	        dk    r2t          j        d| j        z  | j        d|j        j                   }n,t          j        | j        |j        j        	          }||_        | j        }| j        | j        dk    r|j        }n
| j        dz   }|j        |k     rt+          |j                  }|| j        || j                                                 }	 t          j        ||j        j        	          }|| j        || j                                                 }|                    | j        || j        |           nR# t4          $ rE | j        dk    rt          j        || j	                  }nt          j        || j	                  }Y nw xY wt7          |d          r6|                     t;          |j                  t;          |                     n#|                     t;          |          d           |                     |j        | j                   |                     tA          j!        ||| j                             d
S )r\   rQ   rR   r_   r   r    r/   rc   r0   r3   Nrd   r   outre   r*   )"r   r5   rS   rT   r   rU   rO   rg   r>   r4   rA   rD   rC   r*   r)   r"   rE   r2   rh   ri   rY   rj   rk   rl   ro   rm   rn   rp   rV   rX   r-   rq   r   rr   rs   s          r   test01_readCArray_out_argumentz,BasicTestCase.test01_readCArray_out_argument   s    ; 	:,t|S99DK%%j11!! ;'!!yH$$*D4<,?+/:+Ev{/C+E+EG G G )DL8IJJJ %y 9zR|zA~ <$ v|$$D djdi/05577	>8E):;;;D
4	127799DKK
D$)K>>>> 	> 	> 	>{g%%xe49===xe49===		> 4!! 	,S__c%jj9999 SZZ+++*DO<<<c4;??@@@@@s   A*F- -AG<;G<c                    t           j        r,t          dd           t          d| j        j        z             t          | d          s&t          | j        | j        | j	                  f| _
        | j        rt          j        | j        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                   }n,t+          j        | j        |j        j                  }||_        |                    | j
                                                  }	 |                    | j
                  }nk# t<          $ r^ t          d           | j        dk    r!t+          j         | j        | j                  }n 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                   t          |d          s(| !                    tE          | j                  d           | !                    |j#        | j#                   | $                    t          j%        ||| j                             dS )z9Checking chunked layout array __getitem__ special method.r]   r^   z"Running %s.test02_getitemCArray...slicesrQ   rR   r`   ra   rb   r    r/   rc   r0   r3   IndexError!r   re   Object read:
Should look like:
r*   Original object shape:Shape read:rf   r   N)&r   rF   rG   r   r:   rp   sliceri   rh   rk   r|   r   r5   rS   rT   r   rU   rH   r*   rO   r4   rA   rD   rC   r)   r"   rE   r2   __getitem__rl   rn   r>   ro   rV   rX   r-   rq   rr   r   rJ   r*   rt   r.   ru   s         r   test02_getitemCArrayz"BasicTestCase.test02_getitemCArray   s    > 	+$	"""6.)* + + + tX&& 	E TY	BBDDK ; 	:,t|S99DK%%j11> 	./4<<000+V\:::----!! 9  jt|(;'+z'A6;+?'A'AC C CGG iFK4EFFFG!GM !!$+..3355	C%%dk22DD 	C 	C 	C-   {g%%xdj	BBBxdj	BBB	C > 	:"DJJ///'c333sG$$ :.
;;;mTZ000-sy999tW%% 	1S__a000*DO<<<c4;??@@@@@s   ,G A%H/.H/c                 	   t           j        r,t          dd           t          d| j        j        z             t          | d          s&t          | j        | j        | j	                  f| _
        | j        rt          j        | j        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                   }n,t+          j        | j        |j        j                  }||_        |                    | j
                                                  }| j        d
k    rft          | d          rd|| j        <   d|| j        <   n
tA          || 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        <   nctA          || j
                 j                  dk    r@|dz  dz   }t+          j"        |j                  dk    r|| j
                 dz  dz   || j
        <   t+          j#        ||j        j                  }	 |                    | j
                  }nk# tH          $ r^ t          d           | j%        dk    r!t+          j&        | j        | j                  }n 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                   t          |d          s(| '                    tQ          | j                  d           | '                    |j)        | j)                   | *                    t          j+        ||| j%                             dS )z9Checking chunked layout array __setitem__ special method.r]   r^   z"Running %s.test03_setitemCArray...r|   arR   r`   ra   rb   r    r/   rc   r0   r3   wslicexXxr   Nr
   r_   r}   r   re   r~   r   r*   r   r   rf   r   ),r   rF   rG   r   r:   rp   r   ri   rh   rk   r|   r   r5   rS   rT   r   rU   rH   r*   rO   r4   rA   rD   rC   r)   r"   rE   r2   r   rl   wslizer   sumsizerB   arrayrn   r>   ro   rV   rX   r-   rq   rr   r   s         r   test03_setitemCArrayz"BasicTestCase.test03_setitemCArray"  sO    > 	+$	"""6.)* + + + tX&& 	E TY	BBDDK ; 	:,t|S99DK%%j11> 	./4<<000+V\:::----!! 9  jt|(;'+z'A6;+?'A'AC C CGG iFK4EFFFG!GM !!$+..33559  tX&& .#(DK &+t{##S%+,,11AAA8a<<*-F4;'tX&& F#&t{#3a#7!#;DK &,T[&9A&=&At{##S%+,,11Agk739%%))*0*=*AA*EF4;'(3fk&7888C	C%%dk22DD 	C 	C 	C-   {g%%xdj	BBBxdj	BBB	C > 	:"DJJ///'c333sG$$ :.
;;;mTZ000-sy999tW%% 	1S__a000*DO<<<c4;??@@@@@s   'L A%M*)M*)r:   
__module____qualname__r.   r>   r4   r*   ri   rh   rk   r7   r-   r<   r$   r%   r&   r'   r   r   r   rO   rZ   rv   rz   r   r   __classcell__r   s   @r   r   r   
   s
       
CFDEEDDFJHGGJJF         % % %N  3 3 3FA FA FAP9A 9A 9Av;A ;A ;AzMA MA MA MA MA MA MAr   r   c                   "    e Zd ZdZdZdZdZdZdS )BasicWriteTestCaser   r
   r   r   N)r:   r   r   r4   r*   r-   rk   r    r   r   r   r   r  s'        DEJDFFFr   r   c                   Z    e Zd ZdZdZdZdZ eed         dz
  ed         d          ZdZ	dS )BasicWrite2TestCaser   r   r   r   r   r
   N)
r:   r   r   r4   r*   r-   rk   r   r   r   r   r   r   r   r   z  sF        DEJDU58A:uQx++FFFFr   r   c                   Z    e Zd ZddgZ ej        e          j        j        ZdZ	dZ
dZdZdS )BasicWrite3TestCaser   r
   Nr   r   r:   r   r   r.   rA   rM   r2   namer4   r*   r-   rk   r   r   r   r   r   r     @        a&C2:c?? %DEJDFFFr   r   c                   Z    e Zd Z ej        ddg          Zej        j        ZdZ	dZ
dZdZdS )BasicWrite4TestCaser   r
   Nr   r   r:   r   r   rA   r   r.   r2   r   r4   r*   r-   rk   r   r   r   r   r   r     @        
"(Aq6

C9>DEJDFFFr   r   c                   b    e Zd ZddgddggZ ej        e          j        j        ZdZ	dZ
dZdZdS )BasicWrite5TestCaser   r
   r_      Nr   r   r   r   r   r   r   r   r     I        q6Aq6
C2:c?? %DEJDFFFr   r   c                   Z    e Zd ZddgZ ej        e          j        j        ZdZ	dZ
dZdZdS )BasicWrite6TestCaser   r
   Nr   r   r   r   r   r   r     r   r   r   c                   Z    e Zd Z ej        ddg          Zej        j        ZdZ	dZ
dZdZdS )BasicWrite7TestCaser   r
   Nr   r   r   r   r   r   r     r   r   r   c                   b    e Zd ZddgddggZ ej        e          j        j        ZdZ	dZ
dZdZdS )BasicWrite8TestCaser   r
   r_   r   Nr   r   r   r   r   r   r     r   r   r   c                   &    e Zd ZdZdZdZdZdZdZdS )EmptyCArrayTestCaser   r	   r   r   r   r   N	r:   r   r   r4   r*   r-   ri   rh   rk   r   r   r   r   r     s,        DEJ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 )EmptyCArray2TestCaser   r	   r   r   r   r   N)
r:   r   r   r4   r*   r-   ri   rh   rk   r   r   r   r   r   r     s1        DEJEDDFFFr   r   z%LZO compression library not availablec                   V    e 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 )	SlicesCArrayTestCaser   lzor   r	   r   r
   r_   N
r:   r   r   r<   r$   r4   r*   r-   r   r|   r   r   r   r   r     sK         HGDEJeAq!nneeAq!nn-FFFr   r   c                   8    e Zd ZdZdZdZe eddd          fZdS )EllipsisCArrayTestCaser   r	   r   r   r
   N	r:   r   r   r4   r*   r-   Ellipsisr   r|   r   r   r   r   r     s3        DEJaA'FFFr   r   c                   n    e 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 )	Slices2CArrayTestCaser   r   r   r
   r
   r   r   r   r   r
   Nr   r   r   r   r   r   r     s[         HGDEJeAq!nneeD$55uuQ1~~FFFFr   r   c                   P    e Zd ZdZdZdZ eddd          e eddd          fZdS )Ellipsis2CArrayTestCaser   r   r   r   r
   r   N	r:   r   r   r4   r*   r-   r   r   r|   r   r   r   r   r     sA        DEJeAq!nnhaA7FFFr   r   c                      e 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 )
Slices3CArrayTestCaser   r   r   r
   r_   r   r
   r   r   r   r   r
   r   Nr   r   r   r   r   r   r     s         HGDEJeAq!nnee	4 aA(F eAq!nneeAq$//q!Q@FeAq!nneeAq$//q!Q@FFFr   r   c            
           e 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 )Slices4CArrayTestCaser   )r
   r_   r   r
   r      )r   r   r   r   r   r   r   r
   r   Nr   r_   r      )r:   r   r   r4   r*   r-   r   r|   r   r   r   r   r     s|        DE#JeAq!nneeAtT22EE!QNNeAq!nneeAq!nneeAq!nn>FFFr   r   c                       e 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 )	Ellipsis3CArrayTestCaser   r   r   r   r   Nr   r
   r   r   r   r   r   r     sw        DEJaD))55Aq>>:FeAq!nneeAq$//q!QJFFFr   r   c                       e 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 )	Ellipsis4CArrayTestCaser   r
   r_   r   r   r   r   r   Nr   r
   r   r   r   r   r   r     sg        DEJaD))55Aq>>:FeAq!nnhaA7FFFr   r   c                   P    e Zd ZdZdZdZ eddd           eddd          efZdS )	Ellipsis5CArrayTestCaser   r   r   r   r
   r   r   Nr   r   r   r   r   r      sC        DEJeAq!nneeAq$//:FFFr   r   c                   R    e Zd ZdZdZdZ eddd           eddd          defZdS )	Ellipsis6CArrayTestCaser   r   r   r   r
   r   r   Nr   r   r   r   r   r   '  sG        DEJ eAq!nneeAq$//H=FFFr   r   c                   f    e 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 )
Ellipsis7CArrayTestCaser   r   r   r   r
   r   r   Nr_   r   r   r   r   r   r   1  sO        DEJeAq!nneeAq$//q!hGFFFr   r   c                       e Zd ZdZdZdZdZdS )MD3WriteTestCaser   )r
   r
   r_   )r   r   r   r
   N)r:   r   r   r4   r*   r-   rk   r   r   r   r   r   8  s"        DEJDDDr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )MD5WriteTestCaser   )r
   r
   r_   r   r   )r   r   r   r   r   r   r   Nr   r   r   r   r   r   ?  s.        DE !JEDDDDr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )MD6WriteTestCaser   )r
   r_   r_   r
   r   r   )r   r   r   r   r   r   r   r   r_   Nr   r   r   r   r   r   K  s,        DE#JEDDDDr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )MD6WriteTestCase__r   r	   )r   r   r   r_   Nr   r   r   r   r   r   T  s,        DEJEDDDDr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )MD7WriteTestCaser   )r
   r_   r_   r   r   r
   r_   )r   r   r   r   r   r   r   r   r   r
   Nr   r   r   r   r   r   ]  s,        D!E-JEDDDDr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )MD10WriteTestCaser   )
r   r
   r_   r   r   r   r   r_   r
   r
   )
r   r   r   r   r   r   r   r   r   r   rd   r   Nr   r   r   r   r   r   f  s,        D*E/JEDDDDr   r   c                   "    e Zd ZdZdZdZdZdZdS )ZlibComprTestCaser   r   r_   Nr   )r:   r   r   r<   r$   ri   rh   rk   r   r   r   r   r   o  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   r_   r   N)	r:   r   r   r%   r<   r$   ri   rh   rk   r   r   r   r   r   x  s,        GHGEDDDDr   r   z'BLOSC compression library not availablec                   &    e Zd ZdZdZdZdZdZdZdS )BloscComprTestCaser   bloscr   r   r_   r   N	r:   r   r   r<   r$   r-   ri   rh   rk   r   r   r   r   r     s.         HGJ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 )	BloscShuffleTestCase      r   r   d   r   r_   r   r   Nr:   r   r   r*   r<   r%   r$   r-   ri   rh   rk   r   r   r   r   r     8         EHGGJ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 )	BloscBitShuffleTestCaser   r   r      r   r
      r   N)r:   r   r   r*   r<   r&   r$   r-   ri   rh   rk   r   r   r   r   r     s8         EHJGJ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 )	BloscFletcherTestCase)r   i,  r   r   r   r_   r   r   N)r:   r   r   r*   r<   r%   r'   r$   r-   ri   rh   rk   r   r   r   r   r     s=         EHGJGJ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 )	BloscBloscLZTestCaser   r   zblosc:blosclzr   r
   r   r   Nr   r   r   r   r   r     s8         EHGGJEDDDDr   r   lz4zlz4 requiredc                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscLZ4TestCaser   r   z	blosc:lz4r   r_   r   r   Nr   r   r   r   r   r     s8        
 EHGGJ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 )	BloscLZ4HCTestCaser   r   zblosc:lz4hcr   r_   r   r   Nr   r   r   r   r   r     s8        
 EHGGJEDDDDr   r   snappyzsnappy requiredc                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscSnappyTestCaser   r   zblosc:snappyr   r_   r   r   Nr   r   r   r   r  r    s8        
 EHGGJEDDDDr   r  r   zzlib requiredc                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscZlibTestCaser   r   z
blosc:zlibr   r_   r   r   Nr   r   r   r   r  r    8        
 EHGGJEDDDDr   r  zstdzzstd requiredc                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	BloscZstdTestCaser   r   z
blosc:zstdr   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ZdZdS )LZOComprTestCaser   r   r   r_   r   Nr   r   r   r   r  r    s.         HGJ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   r_   r   r   Nr   r   r   r   r  r    s8         EHGGJ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   r   bzip2r   r_   r      N)
r:   r   r   r*   r<   r$   r-   ri   rh   rk   r   r   r   r  r  &  s3         EHGJ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   r_   r   r   Nr   r   r   r   r  r  2  r   r   r  c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )	Fletcher32TestCase)<   2   r   r   r  r  r   r   r   N)
r:   r   r   r*   r<   r'   r-   ri   rh   rk   r   r   r   r  r  ?  s1        EHJJ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 )AllFiltersTestCaser   r   )r   r   r
   c   r   N)r:   r   r   r<   r%   r'   r$   r-   ri   rh   rk   r   r   r   r  r  I  s6        HGJGJEDDDDr   r  c                   &    e Zd ZdZdZdZdZdZdZdS )FloatTypeTestCasefloat64r	   r   r_   r   r   Nr   r   r   r   r  r  T  s,        DEJEDDDDr   r  c                   &    e Zd ZdZdZdZdZdZdZdS )ComplexTypeTestCase
complex128r	   r   r_   r   r   Nr   r   r   r   r   r   ]  s,        DEJEDDDDr   r   c                   Z    e 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_   r   r   r   r
   N)r:   r   r   r4   r7   r*   r-   ri   rh   rk   r   r|   r   r   r   r#  r#  f  sO        DFEJ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S )	String2TestCaser    r   )r
   r   r   r   r   r
   N)
r:   r   r   r4   r7   r*   r-   ri   rh   rk   r   r   r   r%  r%  r  s1        DFEJ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 )	StringComprTestCaser    r   )r   r
   r   r   )r  r  r
   rd   r   N)r:   r   r   r4   r7   r*   comprr-   ri   rh   rk   r   r   r   r'  r'  |  s6        DFEEJ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 )	Int8TestCaseint8r	   r   r  rd   r   r   Nr:   r   r   r4   r*   r<   r%   r-   ri   rh   rk   r   r   r   r*  r*    s6        DEHGJ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 )Int16TestCaseint16r	   r   r  r   Nr,  r   r   r   r.  r.    s6        DEHGJ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 )	Int32TestCaser   r	   r   r  rd   r   r   Nr,  r   r   r   r1  r1    s6        DEHGJEDDDDr   r1  Float16AtomzFloat16Atom not availablec                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float16TestCasefloat16r   r   r   rd   r   r   Nr,  r   r   r   r4  r4    8         DEHGJEDDDDr   r4  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float32TestCasefloat32r6  r   r7  rd   r   r   Nr,  r   r   r   r:  r:    6        DEHGJ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 )	Float64TestCaser  r6  r   r7  rd   r   r   Nr,  r   r   r   r>  r>    r<  r   r>  Float96AtomzFloat96Atom not availablec                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float96TestCasefloat96r6  r   r7  rd   r   r   Nr,  r   r   r   rA  rA    r8  r   rA  Float128AtomzFloat128Atom not availablec                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Float128TestCasefloat128r6  r   r7  rd   r   r   Nr,  r   r   r   rE  rE    s8         DEHGJEDDDDr   rE  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex64TestCase	complex64)r   r   r   rd   r   r   Nr,  r   r   r   rH  rH    s6        DEHGJEDDDDr   rH  c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex128TestCaser!  r7  r   r   rd   r   r   Nr,  r   r   r   rK  rK    s6        DEHGJEDDDDr   rK  Complex192AtomzComplex192Atom not availablec                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex192TestCase
complex192r7  r   r   rd   r   r   Nr,  r   r   r   rN  rN    8         DEHGJEDDDDr   rN  Complex256AtomzComplex256Atom not availablec                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	Complex256TestCase
complex256r7  r   r   rd   r   r   Nr,  r   r   r   rS  rS  
  rP  r   rS  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 )	ComprTestCaser  r   r6  )   3   r   r   N)r:   r   r   r4   r<   r%   r*   r(  r-   ri   rh   rk   r   r   r   rV  rV    s;        DHGEEJEDDDDr   rV  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )ReadOutArgumentTestsc                     t                                                       d| _        t          j        dd          | _        d S )N  r   r   r#   r$   )r   r   r   r5   r;   r,   r   s    r   r   zReadOutArgumentTests.setUp'  s5    	zAw???r   c                     t          j        | j        d          }| j                            ddt          j                    | j        f| j                  }||d d <   ||fS )Ni8r3   /r   r)   r*   r,   )rA   rE   r   r   r=   r5   	Int64Atomr,   )r   r   
disk_arrays      r   create_arrayz!ReadOutArgumentTests.create_array,  si    	$)4000[..sG46LNN6:i\7;| / E E
 
111j  r   c                     |                                  \  }}t          j        | j        fd          }|                    |           t          j                            ||           d S )Nr_  rx   )rd  rA   ro   r   rm   testingassert_equal)r   r   rc  
out_buffers       r   test_read_entire_arrayz+ReadOutArgumentTests.test_read_entire_array5  s_     --//zXtymT22
J'''


E22222r   c                 ,   |                                  \  }}t          j        | j        fd          }|d| j        d         }|                     t
          d          5  |                    d| j        d|           d d d            d S # 1 swxY w Y   d S )Nr_  r   r
   zoutput array not C contiguous)rd  rA   ro   r   assertRaisesRegex
ValueErrorrm   )r   r   rc  rh  out_buffer_slices        r   test_read_non_contiguous_bufferz4ReadOutArgumentTests.test_read_non_contiguous_buffer;  s     --//zXtymT22
%a	!m4##J$CE E 	? 	?OOAty!-=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   B		BBc                 t   |                                  \  }}t          j        | j        dz  fd          }|                     t
          |j        d| j        d|           	 |                    d| j        d|           d S # t
          $ r.}|                     dt          |                     Y d }~d S d }~ww xY w)Nr
   r_  r   r   zoutput array size invalid, got)	rd  rA   ro   r   assertRaisesrl  rm   assertInstr)r   r   rc  rh  excs        r   test_buffer_too_smallz*ReadOutArgumentTests.test_buffer_too_smallD  s     --//zXtyA~0$77
*joq$)Q$	& 	& 	&	FOOAty!Z88888 	F 	F 	FMM:CHHEEEEEEEEE	Fs    A? ?
B7	#B22B7)	r:   r   r   r   rd  ri  rn  rt  r   r   s   @r   rZ  rZ  %  s        @ @ @ @ @
! ! !3 3 3? ? ?F F F F F F Fr   rZ  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)i'  r   )r\  r   ip  )r   r   
array_sizer-   hdf_overheadr   s    r   r   z(SizeOnDiskInMemoryPropertyTestCase.setUpR  s2    & % r   c                     t          j        |d          }| j                            ddt          j                    | j        || j                  | _        d S )Nr   r]  r`  	somearray)r)   r*   r,   r-   )r5   r;   r   r=   	Int16Atomrx  r-   r   )r   r#   r,   s      r   rd  z/SizeOnDiskInMemoryPropertyTestCase.create_array[  sT    *y'BBB[..sK46LNN59_7>:>/	 / K K


r   c                     d}|                      |           |                     | j        j        d           |                     | j        j        d           d S )Nr   @ )rd  rV   r   size_on_disksize_in_memoryr   r#   s     r   test_no_dataz/SizeOnDiskInMemoryPropertyTestCase.test_no_datac  sW    	)$$$0!4442ODDDDDr   c                     d}|                      |           d| j        d d <   |                     | j        j        d           |                     | j        j        d           d S )Nr   r   r~  )rd  r   rV   r  r  r  s     r   test_data_no_compressionz;SizeOnDiskInMemoryPropertyTestCase.test_data_no_compressioni  sf    	)$$$
1110/BBB2ODDDDDr   c                    d}|                      |           d| j        d d <   | j                                         t	          | j                                                  j        }|                     t          | j        j
        |z
            | j        k               |                     | j        j
        | j        j        k                |                     | j        j        d           d S )Nr   r~  )rd  r   r   flushr   rT   statst_sizerq   absr  ry  r  rV   r   r#   	file_sizes      r   test_highly_compressible_dataz@SizeOnDiskInMemoryPropertyTestCase.test_highly_compressible_datap  s    	)$$$
111&&++--5	
')3448II	K 	K 	K
/$*2KKLLL2ODDDDDr   c                 ^   d}|                      |           t          j                            dd| j                  | j        d d <   | j                                         t          | j	                  
                                j        }|                     t          | j        j        |z
            | j        k               t!          j        d          "|                     | j        j        d           d S |                     t          | j        j        dz
            dk                d S )Nr   r   g    .Ar   r~  r   )rd  rA   randomrandintrx  r   r   r  r   rT   r  r  rq   r  r  ry  r5   which_lib_versionassertAlmostEqualr  s      r   test_random_dataz3SizeOnDiskInMemoryPropertyTestCase.test_random_data|  s   	)$$$	))!S$/BB
111&&++--5	
')3448II	K 	K 	K ((4""4:#:OLLLLLOODJ+o=>>DF F F F Fr   )
r:   r   r   r   rd  r  r  r  r  r   r   s   @r   rv  rv  O  s        ! ! ! ! !K K KE E EE E E	E 	E 	EF F F F F F Fr   rv  c                   >     e Zd ZdZdZ fdZd Zd Zd Zd Z	 xZ
S )OffsetStrideTestCaser   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             d}| j                            |dt          j	        d          |dd	
          }t          j        ddgddgddgggd          }|dddf         |d<   t          j        ddgddgddgddggg          }|dddf         |d<   |                                }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 carray with offseted NumPy strings appends.r]   r^   zRunning %s.test01a_String...r_   r
   r
   stringsr_   r!   Array of stringsr   r
   r
   r)   r*   r+   r-   r   b12345S3r3   r   r   Nsabfabcr
   Object read:Nrows in:Second row in carray ==>   123   45   s   abc   fr   r   rF   rG   r   r:   r   r=   r5   r6   rA   r   rm   _v_pathnamerY   tolistrV   rX   r   r   r*   rJ   r   ru   s         r   test01a_Stringz#OffsetStrideTestCase.test01a_String  s"    ~> 	L$	"""04>3JJKKK**402q0I0I0I161C6?	 + A A
 HSzE4=4-@ANNNaeHq	HSzD#;euclKLMMaeHq	 {{}}> 	@.$'''*f0#v|DDD,d1gnn.>.>???q)))a))VUOeV_+MNNNa))T6NVTN+KLLLT!Wq)))T!Wq)))))r   c                 B   | j         }t          j        r,t          dd           t          d| j        j        z             d}| 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         |d<   t          j        ddgddgddgddggg          }|ddddf         |d<   |                                }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 carray with strided NumPy strings appends.r]   r^   zRunning %s.test01b_String...r  r  r_   r!   r  r  r  r   r  r  r  r  r3   r   Nr
   r  r  r  r  r   r  r  r  r  r/      br  r  r  r  r  r  s         r   test01b_Stringz#OffsetStrideTestCase.test01b_String  s(    ~> 	L$	"""04>3JJKKK **402q0I0I0I161C6?	 + A A
 HSzE4=4-@ANNNa1fIq	HSzD#;euclKLMMa1fIq	 {{}}> 	@.$'''*f0#v|DDD,d1gnn.>.>???q)))a))T4L5&/+JKKKa))T4L4.+IJJJT!Wq)))T!Wq)))))r   c           	         | j         }t          j        r,t          dd           t          d| j        j        z             d}| j                            |dt          j	                    |dd          }t          j        g d	d
          }|dd         |dd<   t          j        ddgd
          }|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 )z1Checking carray with offseted NumPy ints appends.r]   r^   zRunning %s.test02a_int...r_   r_   CAtomarray of intsr   r_   r  )r   r   r   r   r   r_   r   r   r   r  r   r3   r
   Nr   r  rd   r   r   r   r_   r  r  r  Third row in carray ==>r  r   r   rF   rG   r   r:   r   r=   r5   	Int32AtomrA   r   rm   r  rY   rV   rq   rr   r  s         r   test02a_intz OffsetStrideTestCase.test02a_int  s    ~> 	I$	"""-0GGHHH **402e1@6< + > > HAAA"$ $ $eqsHi,G<<<eqs {{}}> 	6.$'''*f0#v|DDD+T!W555q)))GRXiiiw7779 9 	: 	: 	:GRXiiiw7779 9 	: 	: 	:GRXjjj888: : 	; 	; 	; 	; 	;r   c           	         | j         }t          j        r,t          dd           t          d| j        j        z             d}| j                            |dt          j	                    |dd          }t          j        g d	d
          }|ddd         |dd<   t          j        ddgd
          }|d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 carray with strided NumPy ints appends.r]   r^   zRunning %s.test02b_int...r  r  r  r  r  )r  r  r  r_   r_   r_   r   r3   Nr_   r   r
   r  r  r  r  r  r  r  r   r  r  r  s         r   test02b_intz OffsetStrideTestCase.test02b_int  s    ~> 	I$	"""-0GGHHH **402e1@6< + > > HAAA"$ $ $!fqsHi,G<<<!fqs {{}}> 	6.$'''*f0#v|DDD+T!W555q)))GRXiiiw7779 9 	: 	: 	:GRXiiiw7779 9 	: 	: 	:GRXiiiw7779 9 	: 	: 	: 	: 	:r   )r:   r   r   r<   r$   r   r  r  r  r  r   r   s   @r   r  r    s        HG* * * * *
* * *B *  *  *D"; "; ";H": ": ": ": ": ": ":r   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )CopyTestCasec                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        dd	gd
dgg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        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                   |                     t?          |j                  t?          |j                             dS )Checking CArray.copy() method.r]   r^   zRunning %s.test01a_copy...r	   array1title array1r    r
   r_     r/  r3   .(closing file version)r   moder`  array2	array1-->	array2-->attrs array1-->attrs array2-->N r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r   _reopenr  rl   r  rm   rH   attrsrq   rr   rV   rY   r*   extdimr>   r)   r2   r4   r+   rr  r   r*   r)   r  r  s        r   test01a_copyzCopyTestCase.test01a_copy$  s    > 	J$	""".1HHIII |~~**KhT V + 5 5 ha1c(37CCCs: 	-~ 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|444V[))3v{+;+;<<<<<r   c                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        d	d
gddgg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        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                   |                     t?          |j                  t?          |j                             |                     |j         |j                    dS )r  r]   r^   zRunning %s.test01b_copy...r	   r  r  r   r  r  r
   r_   r  r/  r3   .z(closing h5fname version)r   r  r`  r  r  r  r  r  N)!r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r   r  r  rl   r  rm   rH   r  rq   rr   rV   rY   r*   r  r>   r)   r2   r4   r+   rr  r-   r  s        r   test01b_copyzCopyTestCase.test01b_copy[  s    > 	J$	""".1HHIII |~~**KhT V + 5 5 ha1c(37CCCs: 	-~ 31222LLcL"""[%,F S(++: 	-~ 31222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|444V[))3v{+;+;<<<*F,=>>>>>r   c                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        d	d
gddggd          |dd
dd
f<   | 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                   |                     t?          |j                  t?          |j                             dS )r  r]   r^   zRunning %s.test01c_copy...r   r  r  r	   r  r  r
   r_   r  r/  r3   Nr  r   r  r`  r  r  r  r  r  r  r  s        r   test01c_copyzCopyTestCase.test01c_copy  s    > 	J$	""".1HHIII |~~**KhT V + 5 5 C8aX"6gFFFrr2A2v: 	-~ 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|444V[))3v{+;+;<<<<<r   c                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        d	d
gddggd          |dd
dd
f<   | 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                    |                     tC          |j                  tC          |j                             dS )z/Checking CArray.copy() method (where specified)r]   r^   zRunning %s.test02_copy...r   r  r  r	   r  r  r
   r_   r  r/  r3   Nr  r   r  r`  group1r  r  r  r  r  )"r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r   r  r  create_grouprl   r  r  rm   rH   r  rq   rr   rV   rY   r*   r  r>   r)   r2   r4   r+   rr  )r   r*   r)   r  r  r  s         r   test02_copyzCopyTestCase.test02_copy  s    > 	I$	"""-0GGHHH |~~**KhT V + 5 5 C8aX"6gFFFrr2A2v: 	-~ 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|444V[))3v{+;+;<<<<<r   c                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }d|_
        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                             |                     |                                |                                           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j
        |j
                   |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        |j                   |                     t7          |j                  t7          |j                             dS )z-Checking CArray.copy() method (python flavor)r]   r^   zRunning %s.test03c_copy...r	   r  r  r  pythonr  r
   r_   r  .r  r   r  r`  r  r  r  N)r   rF   rG   r   r:   r5   r|  r   r=   r   r>   r   r  r  rl   r  rH   r  rV   rm   rY   r*   r  r)   r2   r4   r+   rr  r  s        r   test03a_copyzCopyTestCase.test03a_copy  s    > 	J$	""".1HHIII|~~**KhT V + 5 5 !Qx!S*s: 	-~ 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|444V[))3v{+;+;<<<<<r   c                    t           j        r,t          dd           t          d| j        j        z             d}t          j        d          }| j                            | j        j	        d||dd	          }d
|_
        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d         d         d                              t          d|dd                    t          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                   |                     t7          |j                  t7          |j                             dS )z4Checking CArray.copy() method (string python flavor)r]   r^   zRunning %s.test03d_copy...r	   r   r!   r  r  r  r  45623457.r  r   r  r`  r  ztype value-->Nr   zvalue-->r  r  )r   rF   rG   r   r:   r5   r6   r   r=   r   r>   r   r  r  rl   r  r4   rH   r  rV   rm   rY   r*   r  r)   r2   r+   rr  r  s        r   test03b_copyzCopyTestCase.test03b_copy2  s    > 	J$	""".1HHIII}a(((**KhT V + 5 5 !s|c5\2s: 	-~ 0.///LLcL"""[%,F S(++: 	-~ 0.///LLNNN[%,F[%,F> 	9/4qqq	!Q#8#8999*fQQQi(((#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|444V[))3v{+;+;<<<<<r   c                 8   t           j        r,t          dd           t          d| j        j        z             d}t          j        d          }| j                            | j        j	        d||dd	          }t          j        d
dgddgg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                             |                     t          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 )z0Checking CArray.copy() method (chararray flavor)r]   r^   zRunning %s.test03e_copy...r	   r   r!   r  r  r  r  r  r  r  S4r3   .r  r   r  r`  r  r  r  N) r   rF   rG   r   r:   r5   r6   r   r=   r   rA   r   r   r  r  rl   r  rH   r  rq   rr   rm   rV   rY   r*   r  r>   r)   r2   r4   r+   rr  r  s        r   test03c_copyzCopyTestCase.test03c_copyh  s    > 	J$	""".1HHIII}a(((**KhT V + 5 5 hsEl;4HHHs: 	-~ 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|444V[))3v{+;+;<<<<<r   c                 L   t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        dd	gd
dggd          |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 CArray.copy() method (checking title copying)r]   r^   zRunning %s.test04_copy...r	   r  r  r  r  r
   r_   r  r/  r3   .attr1r  r   r  r`  r  ztitle array2)r+   ztitle of destination array-->N)r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r  r  attr2r   r  r  rl   r  r+   rV   r  s        r   test04_copyzCopyTestCase.test04_copy  s    > 	I$	"""-0GGHHH |~~**KhT V + 5 5 ha1c(37CCCs %: 	-~ 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             d}t          j                    }| j                            | j        j	        d||dd          }t          j        dd	gd
dggd          |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 CArray.copy() method (user attributes copied)r]   r^   zRunning %s.test05_copy...r	   r  r  r  r  r
   r_   r  r/  r3   .r  r  r   r  r`  r  r   copyuserattrsr  r  N)r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r  r  r  r   r  r  rl   r  rH   rV   r  s        r   test05_copyzCopyTestCase.test05_copy  s    > 	I$	"""-0GGHHH |~~**KhT V + 5 5 ha1c(37CCCs %: 	-~ 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                    t           j        r,t          dd           t          d| j        j        z             d}t          j                    }| j                            | j        j	        d||dd          }t          j        dd	gd
dggd          |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 CArray.copy() method (user attributes not copied)r]   r^   zRunning %s.test05b_copy...r	   r  r  r  r  r
   r_   r  r/  r3   .r  r  r   r  r`  r  r   r  r  r  r  N)r   rF   rG   r   r:   r5   r|  r   r=   r   rA   r   r  r  r  r   r  r  rl   r  rH   rV   rp   r  s        r   test05b_copyzCopyTestCase.test05b_copy  s    > 	J$	""".1HHIII |~~**KhT V + 5 5 ha1c(37CCCs %: 	-~ 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)r:   r   r   r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  "  s        1= 1= 1=n3? 3? 3?j1= 1= 1=n2= 2= 2=p-= -= -=f0= 0= 0=l,= ,= ,=d&7 &7 &7P)0 )0 )0V)< )< )< )< )<r   r  c                       e Zd ZdZdS )CloseCopyTestCaser   Nr:   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                 6   t           j        r,t          dd           t          d| j        j        z             d}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 CArray.copy() method with indexes.r]   r^   zRunning %s.test01_index...r   r
   r  r  r	   r  r   r   r3   .r`  r  ri   rh   rk   r  r  r  r  nrows in array2-->and it should be-->r   N)r   rF   rG   r   r:   r5   r  r   r=   r   rA   rE   r*   rg   rl   ri   rh   rk   rm   rH   r  rq   rr   rY   rV   r   r*   r)   r  rQ   r  r2s          r   test01_indexzCopyIndexTestCase.test01_index$  s    > 	J$	""".1HHIII |~~**KhT V + 5 5 Ic)))s !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             d}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                 }|                     |j        |j                   |                     t          j        ||                                                     t           j        r0t          d|j                   t          d|j        d                    |                     |j        d         |j                   dS )z?Checking CArray.copy() method with indexes (close file version)r]   r^   z Running %s.test02_indexclosef...r  r  r  r	   r  r   r   r3   .r`  r  r  r  r  r  r  r  r  r   N)r   rF   rG   r   r:   r5   r  r   r=   r   rA   rE   r*   rg   rl   ri   rh   rk   r  r  r  rm   rH   r  rV   r-   rq   rr   rY   r  s          r   _test02_indexclosefz%CopyIndexTestCase._test02_indexclosefR  s&    > 	P$	"""4t~7NNOOO |~~**KhT V + 5 5 Ic)))s !O S(#':"&)"&)  - - 	!(!(> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 tz$)DI-.*F,=>>>FKKMM::;;; > 	6&555'!555!fl33333r   N)r:   r   r   rg   r  r
  r   r   r   r   r   !  s8        J,4 ,4 ,4\.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r:   r   r   rg   ri   rh   rk   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   rd   r   Nr  r   r   r   r  r    s"        JEDDDDr   r  c                       e Zd ZdZdZdZdZdS )CopyIndex3TestCaser_   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 )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
   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 )CopyIndex6TestCaser
   r_   r   Nr  r   r   r   r  r    r  r   r  c                       e Zd ZdZdZdZdS )CopyIndex7TestCaser   r   r   Nr:   r   r   ri   rh   rk   r   r   r   r  r    s        EDDDDr   r  c                       e Zd ZdZdZdZdS )CopyIndex8TestCaser   rd   r   Nr  r   r   r   r  r    s        EDDDDr   r  c                       e Zd ZdZdZdZdS )CopyIndex9TestCaser_   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   r_   r   r
   Nr  r   r   r   r!  r!    r  r   r!  c                       e Zd ZdZdZdZdS )CopyIndex11TestCaserd   r
   Nr  r   r   r   r#  r#    s        EDDDDr   r#  c                       e Zd ZdZdZdZdS )CopyIndex12TestCaserd   Nr   r  r   r   r   r&  r&    s        EDDDDr   r&  c                   ,     e Zd ZdZdZ fdZd Z xZS )Rows64bitsTestCase@B i  c           
         t                                                       | j        | j        z  f}| j                            | j        j        dt          j                    |t          j	        dd                    }t          j        | j        d          }t          d| j                  }|||<   t          | j        dz
  | j        z  | j        | j        z            }|||<   d S )	Nr   r   r   )r$   r#   ra  r+  r3   r   )r   r   narowsnanumberr   r=   r   r5   Int8Atomr;   rA   rE   r   )r   r*   r   nar  r   s        r   r   zRows64bitsTestCase.setUp  s     t},.))KgeJu::: * < < Yt{&111 !T[!!a4=?DK/1LMMa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 carrays exceeding 2**31 rowszBefore closingzEntries:r)  MillionszShape:zAfter re-openzLast 10 elements-->iN      r   zShould look like:r+  r3   )r   r   r   r   r   rF   rG   rY   r4   r*   r  r+  rA   rE   r,  rV   rq   rr   )r   r   rh   ri   rY   s        r   test01_basiccheckz$Rows64bitsTestCase.test01_basiccheck  si     &: 	'~ -&'''j%+tEK/@/@AAAj%+"=zJJJh,,, LLNNNK$*E~ 'o&&& > 
	M*ek4+<+<===*ek[9:FFF(EK((('stt555;$Dczz2IE%ryF'K'K'KLLLdm+ 	e,,, 	uh/// 	#2#J	"F3335 5 	6 	6 	6 {S #::CKDr	#$$K5$f===? ? 	@ 	@ 	@ 	@ 	@r   )r:   r   r   r+  r,  r   r3  r   r   s   @r   r(  r(    sX        FH    (2@ 2@ 2@ 2@ 2@ 2@ 2@r   r(  c                       e Zd ZdZdS )Rows64bitsTestCase1r   Nr  r   r   r   r5  r5  !  r  r   r5  c                       e Zd ZdZdS )Rows64bitsTestCase2r   Nr  r   r   r   r7  r7  %  r  r   r7  c                   .     e Zd ZdZ fdZd Zd Z xZS )BigArrayTestCase)l    ^e c                     t                                                       | j                            ddt	          j                    | j                   d S )Nr`  r   r)   r*   )r   r   r   r=   r5   r-  r*   r   s    r   r   zBigArrayTestCase.setUp,  sU     	!!#w'){}}DJ 	" 	H 	H 	H 	H 	Hr   c                    |                      | j        j        j        j        | j                   	 |                      t          | j        j        j                  | j        d                    dS # t          $ rE |                     | j        d         t          j	        t                    j        k    d           Y dS w xY w)z&Check that the shape doesn't overflow.r   z3Array length overflowed but ``int`` is wide enough.N)rV   r   r   r   r*   rX   OverflowErrorrq   rA   iinforj   maxr   s    r   test00_shapezBigArrayTestCase.test00_shape3  s     	)/5tzBBB	/S!1!788$*Q-HHHHH 	/ 	/ 	/OODJqMBHSMM,==./ / / / / /	/s   =A0 0AB?>B?c                 X    |                      d           |                                  dS )z6Check that the shape doesn't overflow after reopening.rQ   N)r  rA  r@  s    r   test01_shape_reopenz$BigArrayTestCase.test01_shape_reopen?  s,    Sr   )r:   r   r   r*   r   rA  rC  r   r   s   @r   r9  r9  )  s`        EH H H H H
/ 
/ 
/      r   r9  c                        e Zd Zd Zd Zd ZdS )DfltAtomTestCasec           	         | j                             ddt          j        dd          d           | j        r|                                  | j         j        j        dd         }t          j	        rt          d	|           |                     t          j        |t          j        d
gdz  d                              dd                               dS )z1Check that Atom.dflt is honored (string version).r`  barr   s   abdef)r"   dfltr   r;  NRead values:abdefr   S5r   )r   r=   r5   r6   r   r  r   rG  r   rF   rG   rq   rr   rA   r   reshaper   valuess     r   test00_dfltzDfltAtomTestCase.test00_dfltH  s     	!!R]AHEEE 	" 	 	 	 ; 	LLNNN !%aaa(> 	*.&)))BHgY_d33;;BCCE E 	F 	F 	F 	F 	Fr   c           	      ~   | j                             ddt          j        d          d           | j        r|                                  | j         j        j        dd         }t          j	        rt          d|           |                     t          j        |t          j        dd	                               dS )
z.Check that Atom.dflt is honored (int version).r`  rG  r   rH  r   r;  NrI  i4)r   r=   r5   IntAtomr   r  r   rG  r   rF   rG   rq   rr   rA   onesrM  s     r   test01_dfltzDfltAtomTestCase.test01_dfltZ  s     	!!#u')zq'9'9'9 	" 	K 	K 	K ; 	LLNNN !%aaa(> 	*.&)))$0G0GHHIIIIIr   c           	         | j                             ddt          j        d          d           | j        r|                                  | j         j        j        dd         }t          j	        rt          d|           |                     t          j        |t          j        dd	          dz                       dS )
z0Check that Atom.dflt is honored (float version).r`  rG  g/$?rQ  r   r;  NrI  f8)r   r=   r5   	FloatAtomr   r  r   rG  r   rF   rG   rq   rr   rA   rT  rM  s     r   test02_dfltzDfltAtomTestCase.test02_dfltj  s     	!!R\u555X 	" 	G 	G 	G ; 	LLNNN !%aaa(> 	*.&)))$0G0G0MNNOOOOOr   N)r:   r   r   rO  rU  rY  r   r   r   rE  rE  F  sL        F F F$J J J P P P P Pr   rE  c                       e Zd ZdZdS )DfltAtomNoReopenFNr:   r   r   r   r   r   r   r[  r[  {          FFFr   r[  c                       e Zd ZdZdS )DfltAtomReopenTNr\  r   r   r   r_  r_            FFFr   r_  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )AtomDefaultReprTestCasec           	         d}t          j        d|d          }| j                            dd|d          }| j        r&|                     d	           | j        j        j        }t          j	        rJt          d
t          |d                              t          dt          |j        j                             |                     t          j        |d         t!          j        |d                               |                     t          j        |j        j        t!          j        |d                               dS )z(Testing default values.  Zeros (scalar).r   r_   r   r"   r*   rH  r`  testr   r;  r   First row-->r   Defaults-->r  N)r5   r6   r   r=   r   r  r   re  r   rF   rG   rH   r)   rH  rq   rr   rA   zerosr   Nr)   cas       r   test00a_zerosz%AtomDefaultReprTestCase.test00a_zeros  s    }aqs;;;[&&sFT&JJ; 	'LL!&B> 	5.$r!u++...-bgl!3!34441rx4/@/@AABBBbhq$6G6GHHIIIIIr   c           	      R   d}t          j        d|d          }| j                            dd|d          }| j        r&|                     d	           | j        j        j        }t          j	        r0t          d
|d                    t          d|j        j                   |                     t          j        |d         t          j        |d                               |                     t          j        |j        j        t          j        |d                               dS )z'Testing default values.  Zeros (array).r
   r_   r   rd  r`  re  rf  r;  r   rg  r   rh  r  N)r5   r6   r   r=   r   r  r   re  r   rF   rG   r)   rH  rq   rr   rA   ri  rj  s       r   test00b_zerosz%AtomDefaultReprTestCase.test00b_zeros  s     }aqs;;;[&&sFT&JJ; 	'LL!&B> 	/."Q%(((-...1rx4/@/@AABBBbhq$6G6GHHIIIIIr   c           	      P   d}t          j        |d          }| j                            dd|d          }| j        r&|                     d           | j        j        j        }t          j	        r0t          d	|d
                    t          d|j        j                   |                     t          j        |d
         t          j        |d                               |                     t          j        |j        j        t          j        |d                               dS )zTesting default values.  Ones.r
   r   r*   rH  r`  re  rf  r;  r   rg  r   rh  rR  N)r5   r  r   r=   r   r  r   re  r   rF   rG   r)   rH  rq   rr   rA   rT  rj  s       r   test01a_valuesz&AtomDefaultReprTestCase.test01a_values  s     |!!,,,[&&sFT&JJ; 	'LL!&B> 	/."Q%(((-...1rwq$/?/?@@AAAbga6F6FGGHHHHHr   c           	      `   d}d}t          j        ||          }| j                            dd|d          }| j        r&|                     d           | j        j        j        }t          j	        r0t          d	|d
                    t          d|j        j                   |                     t          j        |d
         t          j        |d          |z                       |                     t          j        |j        j        t          j        |d          |z                       dS )z'Testing default values.  Generic value.r
   gGz\@rq  r`  re  rf  r;  r   rg  r   rh  f4N)r5   Float32Atomr   r=   r   r  r   re  r   rF   rG   r)   rH  rq   rr   rA   rT  )r   rk  genericr)   rl  s        r   test01b_valuesz&AtomDefaultReprTestCase.test01b_values  s    ~AG444[&&sFT&JJ; 	'LL!&B> 	/."Q%(((-...1rwq$/?/?/GHHIIIGL"'!T**724 4 	5 	5 	5 	5 	5r   c           	         d}t          j        |d          }| j                            dd|d          }| j        r&|                     d           | j        j        j        }t          j	        rJt          d	t          |d
                              t          dt          |j        j                             |                     t          j        |j        j        t!          j        |d                               dS )z'Testing default values.  None (scalar).r   Nrq  r`  re  rf  r;  r   rg  r   rh  rR  )r5   r  r   r=   r   r  r   re  r   rF   rG   rH   r)   rH  rq   rr   rA   ri  rj  s       r   test02a_Nonez$AtomDefaultReprTestCase.test02a_None  s     |!$///[&&sFT&JJ; 	'LL!&B> 	5.$r!u++...-bgl!3!3444bhq$6G6GHHIIIIIr   c           	         d}t          j        |d          }| j                            dd|d          }| j        r&|                     d           | j        j        j        }t          j	        r0t          d	|d
                    t          d|j        j                   |                     t          j        |j        j        t          j        |d                               dS )z&Testing default values.  None (array).r
   Nrq  r`  re  rf  r;  r   rg  r   rh  rR  )r5   r  r   r=   r   r  r   re  r   rF   rG   r)   rH  rq   rr   rA   ri  rj  s       r   test02b_Nonez$AtomDefaultReprTestCase.test02b_None  s     |!$///[&&sFT&JJ; 	'LL!&B> 	/."Q%(((-...bhq$6G6GHHIIIIIr   N)	r:   r   r   rm  ro  rr  rw  ry  r{  r   r   r   rb  rb    s        J J J J J J I I I 5 5 5$J J JJ J J J Jr   rb  c                       e Zd ZdZdS )AtomDefaultReprNoReopenFNr\  r   r   r   r}  r}    r]  r   r}  c                       e Zd ZdZdS )AtomDefaultReprReopenTNr\  r   r   r   r  r    r`  r   r  c                       e Zd Zd ZdS )TruncateTestCasec                     | j                             ddt          j                    ddg          }|                     t
          |j        d           dS )z-Test for unability to truncate Array objects.r`  r  r
   r   N)r   r=   r5   rS  rp  	TypeErrortruncate)r   r  s     r   re  zTruncateTestCase.test  sI     **3"*,,AOO)V_a88888r   N)r:   r   r   re  r   r   r   r  r    s#        9 9 9 9 9r   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|d<   |                     |j	        d           t          j        rt          d|d                    |                     t          j        |d         t          j        ddgd	d
ggd                               dS )z9Assign a row to a (unidimensional) CArray with a MD atom.r`  re  r	   rf  r;  r   r   r_   r   r   r   rg  rR  Nr   r=   r5   r  r   r  r   re  rV   rY   r   rF   rG   rq   rr   rA   r   r   rl  s     r   test01a_assignzMDAtomTestCase.test01a_assign  s     [&&sF,.L,@,@ ' N N; 	'LL!&BQ!Q 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ggdggd	ggg|d
d
<   |                     |j	        d	           t          j        rt          d|d                    |                     t          j        |d         t          j        d	d	gd	d	ggd                               d
S )z@Assign several rows to a (unidimensional) CArray with a MD atom.r`  re  r	   )r_   r;  r   r   r
   r_   NThird row-->rR  r  r  s     r   test01b_assignzMDAtomTestCase.test01b_assign	  s    [&&sF,.L,@,@ ' N N; 	'LL!&B#!u%111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|dd<   |                     |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 )z;Assign a row to a (multidimensional) CArray with a MD atom.r`  re  r   r  r;  r   r   r_   r   r   r   	   Nrg  r   rR  r  r  s     r   test02a_assignzMDAtomTestCase.test02a_assign	  s    [&&sF,.L,>,>f ' N N; 	'LL!&Ba&1a&1a&)*1111%%%> 	)."Q%(((1rxVaVaV$d0, 0, - - 	. 	. 	. 	. 	.r   c                    | 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|dd<   |                     |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 )zJAssign several rows to a (multidimensional) CArray with
        a MD atom.r`  re  r   r  r;  r   r   r$  r   ir  rd   r_   r   r   iiNr  r
   rR  r  r  s     r   test02b_assignzMDAtomTestCase.test02b_assign-	  sD   
 [&&sF,.L,>,>f ' N N; 	'LL!&Bb'Ar7RG,q'B7QG,q'B7QG,.111 	1%%%> 	)."Q%(((qE28b!Wr1g2w7>>@ @ 	A 	A 	A 	A 	A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  g|dd<   |                     |j        d           t          j        rt          d|d                    |                     t          j        |d         |dz                       dS )z;Complex assign of a MD array in a MD CArray with a MD atom.r`  re  r
   r   )r_   r
   r_   r;  r   0   rR  r3   )r
   r_   r
   r   r   r
   r_   Nr  r   r=   r5   r  r   r  r   re  rA   rE   rL  rV   rY   r   rF   rG   rq   rr   r   rl  r   s      r   test03a_MDMDMDzMDAtomTestCase.test03a_MDMDMDA	  s    [&&bl622) ' E E; 	'LL!&B Iit,,,44\BBQ!QqS!111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d<   |                     |j        d           t          j        rt          d|ddddf                    |                     t          j        |ddddf         |ddddf                              dS )z@Complex assign of a MD array in a MD CArray with a MD atom (II).r`  re  r  )r
   r_   r_   r;  r      rR  r3   )r
   r_   r_   r
   r   Nr
   r  .r  r  s      r   test03b_MDMDMDzMDAtomTestCase.test03b_MDMDMDT	  s    [&&bl622) ' E E; 	'LL!&B Ik...66GG1111%%%> 	1."QQQ3Y-000111a9qAs|DDEEEEEr   c           
      2   | j                             ddt          j        d          d          }| j        r&|                     d           | j         j        j        }t          j	        dd	          
                    d
          }||dd<   |                     |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ddddf                              dS )zAComplex assign of a MD array in a MD CArray with a MD atom (III).r`  re  r  )r_   r   r
   r;  r   r  rR  r3   )r_   r   r
   r
   r   Nr_   zSecond row-->r   .r  r  s      r   test03c_MDMDMDzMDAtomTestCase.test03c_MDMDMDg	  s#    [&&bl622) ' E E; 	'LL!&B Ik...66GG1111%%%> 	5/2aaaAsl#3444111aaaC<(8!AAAqqq!SL/JJKKKKKr   N)
r:   r   r   r  r  r  r  r  r  r  r   r   r   r  r    s        6 6 6"6 6 6". . ."A A A(7 7 7&F F F&L L L L Lr   r  c                       e Zd ZdZdS )MDAtomNoReopenFNr\  r   r   r   r  r  {	  r]  r   r  c                       e Zd ZdZdS )MDAtomReopenTNr\  r   r   r   r  r  	  r`  r   r  c                       e Zd Zd ZdS )MDLargeAtomTestCasec           	         d}| j                             ddt          j        |          d          }| j        r&|                     d           | j         j        j        }t          j	        rt          d|d	                    |                     t          j        |d	         t          j        |d
                               dS )z*Create a CArray with a very large MD atom.i   r`  re  )r*   rf  r;  r   rg  r   rR  N)r   r=   r5   r  r   r  r   re  r   rF   rG   rq   rr   rA   ri  )r   rk  rl  s      r   test01_createz!MDLargeAtomTestCase.test01_create	  s     [&&sF,.Lq,A,A,A ' O O; 	'LL!&B > 	)."Q%(((1rx4/@/@AABBBBBr   N)r:   r   r   r  r   r   r   r  r  	  s(        C C C C Cr   r  c                       e Zd ZdZdS )MDLargeAtomNoReopenFNr\  r   r   r   r  r  	  r]  r   r  c                       e Zd ZdZdS )MDLargeAtomReopenTNr\  r   r   r   r  r  	  r`  r   r  c                   0     e Zd Z fdZd Zd Zd Z xZS )AccessClosedTestCasec                     t                                                       | j                            | j        j        dt          j                    d          | _        t          j	        d          | j        d<   d S )Nr   r   r;  .)
r   r   r   r=   r   r5   r  r   rA   ri  r   s    r   r   zAccessClosedTestCase.setUp	  sb    [..t{/?46LNN5= / ? ?
 (8,,
3r   c                     | j                                          |                     t          j        | j        j                   d S r   )r   r   rp  r5   ClosedNodeErrorr   rm   r@  s    r   	test_readzAccessClosedTestCase.test_read	  s9    ",djo>>>>>r   c                     | j                                          |                     t          j        | j        j        d           d S Nr   )r   r   rp  r5   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   rp  r5   r  r   __setitem__r@  s    r   test_setitemz!AccessClosedTestCase.test_setitem	  s>    ",dj.DaKKKKKr   )r:   r   r   r   r  r  r  r   r   s   @r   r  r  	  so        - - - - -? ? ?I I IL L L L L L Lr   r  c                       e Zd Z ej        g dg dg dg          ZdZdZej	        
                    ej                  Zej        ZdZdZdZdZd	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z dS )TestCreateCArrayArgs)r   r
   r_   )r   r   r   )r   r  r  r`  rJ   r+   N)r   r
   Fc           	      >   | j                             | j        | j        | j        | j        | j        | j        | j                   | j         	                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        t)          j        | j                  |                     d S r   )r   r=   wherer   r)   r*   r+   r,   r-   r   r5   rS   rT   rU   rm   rV   r2   rq   r   rr   rA   
zeros_liker.   r   ptarrnparrs      r   test_positional_args_01z,TestCreateCArrayArgs.test_positional_args_01	  sF   !!$*di"&)TZ"&*dlDO	M 	M 	M 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;dh(?(?GGHHHHHr   c           	      .   | j                             | j        | j        | j        | j        | j        | j        | j                  }| j	        |d<   | j         
                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t'          j        | j	        |                     d S )N.)r   r=   r  r   r)   r*   r+   r,   r-   r.   r   r5   rS   rT   rU   rm   rV   r2   rq   r   rr   r  s      r   test_positional_args_02z,TestCreateCArrayArgs.test_positional_args_02	  sD   ))$*di*.)TZ*.**.,I I Xc
l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c                 *   | j                             | j        | j        d d | j        | j        | j        | j        | j        | j	        
  
         | j         
                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t+          j        | j	        |                     d S r   )r   r=   r  r   r+   r,   r-   	byteordercreateparentsr.   r   r5   rS   rT   rU   rm   rV   r*   r)   r2   rq   r   rr   r  s      r   test_positional_args_objz-TestCreateCArrayArgs.test_positional_args_obj	  sE   !!$*di"&"&*"&,"&.$2D"&(	, 	, 	, 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c                    | j                             | j        | j        | j        | j        | j                   | j                                          t          j	        | j
                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        | j        |                     d S )N)r+   r-   r.   )r   r=   r  r   r+   r-   r.   r   r5   rS   rT   rU   rm   rV   r*   r)   r2   rq   r   rr   r  s      r   test_kwargs_objz$TestCreateCArrayArgs.test_kwargs_obj	  s6   !!$*ditz-1_&*h 	" 	0 	0 	0 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c                 $   | j                             | j        | j        | j        | j        | j        | j                  }| j        |d<   | j         	                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        | j        |                     d S )Nr+   r-   r)   r*   .)r   r=   r  r   r+   r-   r)   r*   r.   r   r5   rS   rT   rU   rm   rV   r2   rq   r   rr   r  s      r   test_kwargs_atom_shape_01z.TestCreateCArrayArgs.test_kwargs_atom_shape_01	
  sE   ))$*di04
59_/3y
 * L L Xc
l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c                 4   | j                             | j        | j        | j        | j        | j        | j                  }| j                                          t          j
        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t#          j        t'          j        | j                  |                     d S )Nr  )r   r=   r  r   r+   r-   r)   r*   r   r5   rS   rT   rU   rm   rV   r2   rq   r   rr   rA   r  r.   r  s      r   test_kwargs_atom_shape_02z.TestCreateCArrayArgs.test_kwargs_atom_shape_02
  sD   ))$*di04
59_/3y
 * L L
 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;dh(?(?GGHHHHHr   c                    | j                             | j        | j        | j        | j        | j        | j                  }| j                                          t          j
        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        | j        |                     d S )N)r+   r-   r.   r)   )r   r=   r  r   r+   r-   r.   r)   r   r5   rS   rT   rU   rm   rV   r*   r2   rq   r   rr   r  s      r   test_kwargs_obj_atomz)TestCreateCArrayArgs.test_kwargs_obj_atom/
  s9   ))$*di04
59_.2h/3y	 * : :
 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c                    | j                             | j        | j        | j        | j        | j        | j                  }| j                                          t          j
        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        | j        |                     d S )N)r+   r-   r.   r*   )r   r=   r  r   r+   r-   r.   r*   r   r5   rS   rT   rU   rm   rV   r)   r2   rq   r   rr   r  s      r   test_kwargs_obj_shapez*TestCreateCArrayArgs.test_kwargs_obj_shapeB
  s9   ))$*di04
59_.2h04
	 * < <
 	l4<00$$TZ;;

dj111dj111TY///)49?;;;)4?;;;%8899999r   c           	         | j                             | j        | j        | j        | j        | j        | j        | j                  }| j         	                                 t          j        | j                  | _         | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        | j                   |                     |j        | j                   |                     |j        j        | j        j                   |                     |j        | j                   |                     t%          j        | j        |                     d S )N)r+   r-   r.   r)   r*   )r   r=   r  r   r+   r-   r.   r)   r*   r   r5   rS   rT   rU   rm   rV   r2   rq   r   rr   r  s      r   test_kwargs_obj_atom_shapez/TestCreateCArrayArgs.test_kwargs_obj_atom_shapeU
  s>   ))$*di04
59_.2h/3y04
 * < < 	l4<00$$TZ;;

dj111dj111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)   )r5   r8   
from_dtyperA   r2   rp  r  r   r=   r  r   r+   r.   r   r)   s     r   test_kwargs_obj_atom_errorz/TestCreateCArrayArgs.test_kwargs_obj_atom_errori
  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*   rp  r  r   r=   r  r   r+   r.   rN   s     r   test_kwargs_obj_shape_errorz0TestCreateCArrayArgs.test_kwargs_obj_shape_errort
  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*   )r5   r8   r  rA   r2   rp  r  r   r=   r  r   r+   r.   r*   r  s     r   #test_kwargs_obj_atom_shape_error_01z8TestCreateCArrayArgs.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*   rp  r  r   r=   r  r   r+   r.   r)   rN   s     r   #test_kwargs_obj_atom_shape_error_02z8TestCreateCArrayArgs.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  )r5   r8   r  rA   r2   r*   rp  r  r   r=   r  r   r+   r.   )r   r)   r*   s      r   #test_kwargs_obj_atom_shape_error_03z8TestCreateCArrayArgs.test_kwargs_obj_atom_shape_error_03
  sz    w!!"(9"5"566
TZ')+3*) $
"h# % 	 	' 	' 	' 	' 	'r   )!r:   r   r   rA   r   r.   r  r   r5   r8   r  r2   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  	  sQ       
"(IIIyyy)))4
5
5CED7ci((DIEEGJIMI I I": : :&: : :(: : :": : :&I I I&: : :&: : :&: : :(	% 	% 	%	' 	' 	'
, 
, 
,
' 
' 
'
' 
' 
' 
' 
'r   r  c                  ~(   t           j                                        } d}t          |          D ]}|                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                                |                     t           j                            t"                               |                     t           j                            t$                               |                     t           j                            t&                               |                     t           j                            t(                               |                     t           j                            t*                               |                     t           j                            t,                               |                     t           j                            t.                               |                     t           j                            t0                               |                     t           j                            t2                               |                     t           j                            t4                               |                     t           j                            t6                               |                     t           j                            t8                               |                     t           j                            t:                               |                     t           j                            t<                               |                     t           j                            t>                               |                     t           j                            t@                               |                     t           j                            tB                               |                     t           j                            tD                               |                     t           j                            tF                               |                     t           j                            tH                               |                     t           j                            tJ                               |                     t           j                            tL                               |                     t           j                            tN                               |                     t           j                            tP                               |                     t           j                            tR                               |                     t           j                            tT                               |                     t           j                            tV                               |                     t           j                            tX                               |                     t           j                            tZ                               |                     t           j                            t\                               |                     t           j                            t^                               |                     t           j                            t`                               |                     t           j                            tb                               |                     t           j                            td                               |                     t           j                            tf                               |                     t           j                            th                               |                     t           j                            tj                               |                     t           j                            tl                               |                     t           j                            tn                               |                     t           j                            tp                               |                     t           j                            tr                               |                     t           j                            tt                               |                     t           j                            tv                               |                     t           j                            tx                               |                     t           j                            tz                               |                     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           jO        rL|                     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                            t                               |                     t           j                            t                               | S )Nr   )dr   unittest	TestSuiterange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  r  r  r  r  r   r#  r%  r'  r*  r.  r1  r4  r:  r>  rA  rE  rH  rK  rN  rS  rV  r  r  r  rZ  rv  r  r  r  r  r  r  r  r9  r[  r_  r}  r  r  r  r  r  r  r  r  heavyr   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r#  r&  r5  r7  )theSuiteniterns      r   suiter  
  s   ((**HE 5\\ JJ 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23JKKLLL223HIIJJJ223GHHIII223CDDEEE223EFFGGG223FGGHHH223DEEFFF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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<@@AAA22=AABBB22=AABBB22?CCDDD22?CCDDD22?CCDDD22?CCDDD2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2=AABBB223GHHIII223EFFGGG223EFFGGG223GHHIII22.0 0 	1 	1 	1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23CDDEEE223CDDEEE22>BBCCC223JKKLLL223HIIJJJ223CDDEEE22>BBCCC22<@@AAA223FGGHHH223DEEFFF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)syspathlibr   r   rA   tablesr5   tables.testsr   TempFileMixinPyTablesTestCaser   r   r   r   r   r   r   r   r   r   r   r  skipIf	lzo_availr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   blosc_availr   r   r   r   r   blosc_compressor_listr   r   r  r  r	  r  r  bzip2_availr  r  r  r  r  r   r#  r%  r'  r*  r.  r1  
skipUnlessrp   r4  r:  r>  rA  rE  rH  rK  rN  rS  rV  rZ  rv  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r!  r#  r&  r(  r5  r7  r9  rE  r[  r_  rb  r}  r  r  r  r  r  r  r  r  r  r  r  r:   
parse_argvargvprint_versionsmainr   r   r   <module>r     s   



                    eA eA eA eA eAF(&*A eA eA eAP           -       -       -       -       -       -       -       -       =    F,,?A A. . . . .= . .A A.( ( ( ( (] ( ( ( F,,?A AG G G G GM G GA AG8 8 8 8 8m 8 8 8 F,,?A AA A A A AM A AA A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C C    m  C C F..AC C
 
 
 
 
M 
 
C C
 F..AC C    =  C C F..AC C	))+++^= =    }  = =C C F..AC C	))+++^= =      = =C C F..AC C(@(@(B(BB)+ +    -  + +C C F..AC C
*"*,,,o? ?      ? ?C C F..AC C
*"*,,,o? ?      ? ?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   
 
 
 
 
- 
 
 
    =       M       M    GGB6679 9    m  9 9    m       m    GGB6679 9    m  9 9 GGB778: :    }  : :               GGB(899:< <      < < GGB(899:< <      < <	 	 	 	 	M 	 	 	'F 'F 'F 'F 'F6/1H 'F 'F 'FT;F ;F ;F ;F ;F)=)/)@;F ;F ;F|R: R: R: R: R:6/1H R: R: R:jt< t< t< t< t<6')@ t< t< t<n           |   _4 _4 _4 _4 _4,f.E _4 _4 _4D    *       *       *       *       *       *       *       *       *       +       +       +   K@ K@ K@ K@ K@-v/F K@ K@ K@\    ,       ,       v+V-D   :2P 2P 2P 2P 2Pv+V-D 2P 2P 2Pj    '       %   
`J `J `J `J `Jf2F4K `J `J `JF    5       3   9 9 9 9 9v+V-D 9 9 9@L @L @L @L @LV)6+B @L @L @LF    ^       >   
C C C C C&.0G C C C$    -       +   L L L L L6/1H L L L,m' m' m' m' m'6/1H m' m' m'`g g gT zFchF
OW----- r   