
    d                       d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	Z
d dlmZ d Zd Z G d de
j                  Z e
j        dd	d 
           e
j        dd           e
j        dd           e
j        dd           e
j        dd           e
j        dd           e
j        ddd
           e
j        dd           e
j        ddd
           e
j        ddd
          d
Z ee
d          r e
j        d          ed<    ee
d           r e
j        d          ed!<    ee
d"          r e
j        d          ed#<    ee
d$          r e
j        d%d&          ed'<    ee
d(          r e
j        d)d&          ed*<    G d+ d,e
j                  Z G d- d.ej        ej                   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)ej*        +                    ej,         d?           G d@ dAe!                      Z-ej*        +                    ej.         dB           G dC dDe!                      Z/ej*        +                    ej,         d?           G dE dFe!                      Z0ej*        +                    ej.         dB           G dG dHe!                      Z1ej*        +                    ej,         d?           G dI dJe!                      Z2ej*        +                    ej.         dB           G dK dLe!                      Z3ej*        +                    ej,         d?           G dM dNe!                      Z4ej*        +                    ej.         d?           G dO dPe!                      Z5ej*        +                    ej,         d?          ej*        +                    dQ e
j6                    vdR           G dS dTe!                                  Z7ej*        +                    ej.         dB          ej*        +                    dQ e
j8                    vdR           G dU dVe!                                  Z9ej*        +                    ej,         d?          ej*        +                    dQ e
j6                    vdR           G dW dXe!                                  Z:ej*        +                    ej.         dB          ej*        +                    dQ e
j8                    vdR           G dY dZe!                                  Z;ej*        +                    ej,         d?          ej*        +                    d[ e
j6                    vd\           G d] d^e!                                  Z<ej*        +                    ej,         d?          ej*        +                    d_ e
j6                    vd`           G da dbe!                                  Z=ej*        +                    ej.         dB          ej*        +                    d_ e
j8                    vd`           G dc dde!                                  Z>ej*        +                    ej,         d?          ej*        +                    de e
j6                    vdf           G dg dhe!                                  Z?ej*        +                    ej.         dB          ej*        +                    de e
j8                    vdf           G di dje!                                  Z@ej*        +                    ejA         dk           G dl dme!                      ZBej*        +                    ejA         dk           G dn doe!                      ZCej*        +                    ejD         dp           G dq dre!                      ZEej*        +                    ejD         dp           G ds dte!                      ZF G du dve!          ZG G dw dxe!          ZH G dy dze!          ZI G d{ d|e!          ZJ G d} d~e!          ZK G d de!          ZL G d dej        ej                   ZM G d dej        ej                   ZN G d dej        ej                   ZO G d dej        ej                   ZP G d deP          ZQ G d deP          ZR G d deP          ZS G d dej        ej                   ZT G d de
j                  ZU G d dej        ej                   ZV G d deV          ZW G d deV          ZX G d deV          ZY G d deV          ZZ G d dej        ej                   Z[ G d de[          Z\ G d de[          Z] G d de[          Z^ G d de[          Z_ G d dej        ej                   Z` G d de`          Za G d de`          Zb G d dej        ej                   Zc G d dec          Zd G d dec          Ze G d dec          Zf G d dec          Zg G d dec          Zh G d dej        ej                   Zi G d dei          Zj G d dei          Zk G d dei          Zl G d dei          Zm G dÄ dei          Zn G dń dei          Zo G dǄ dei          Zp G dɄ dei          Zq G d˄ dei          Zr G d̈́ dei          Zs G dτ dei          Zt G dф dei          Zu G dӄ dej        ej                   Zv G dՄ dej        ej                   Zw G dׄ dew          Zx G dل de
j                  Zy G dۄ dej        ej                   Zz G d݄ dez          Z{ G d߄ dez          Z| G d dej        ej                   Z} G d dej        ej                   Z~ G d dej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d de          Z G d de          Z G d de          Z G d de          Z G d dej        ej                   Z G d dej        ej                   Z G d de          Z G d de          Z G d d ej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d dej        ej                   Z G d	 d
ej        ej                   Zd Zedk    rC ej        ej                    ej                     ej*                            d           dS dS (      N)Path)commonc                  2    t          j        d          dk    S )NP   )structcalcsize     8lib/python3.11/site-packages/tables/tests/test_tables.pyis_python_64bitr      s    ?31$$r   c                  N    t          j                                        d          S )N64)platformmachineendswithr
   r   r   is_os_64bitr      s    &&t,,,r   c                      e Zd Z ej        ddd          Z ej        dd          Z ej        dd          Z	 ej
        dd	          Z ej        d
d          Z ej        dd          Z ej        ddd          Z ej        dd          Z ej        ddd          Z ej        ddd          Z eed          r ej        d          Z eed          r ej        d          Z eed          r ej        d          Z eed          r ej        dd          Z eed          r ej        dd          ZdS dS ) Record      abcdr   itemsizedfltpos   r   r      @   @      e   T   r                 ?         ?        	   
Float16Col皙@r   
Float96ColFloat128ColComplex192Col   r   r   Complex256Col    N)__name__
__module____qualname__tb	StringColvar1IntColvar2Int16Colvar3
Float64Colvar4
Float32Colvar5	UInt16Colvar6var7BoolColvar8
ComplexColvar9var10hasattrr*   var11r-   var12r.   var13var14var15r
   r   r   r   r      s       2<a888D29!###D2;A1%%%D2=cq)))D2=cq)))D2<QA&&&D2<1555D2:4Q'''D2=&q* * *DBM6+ + +Ewr<   (3'''wr<   (3'''wr=!! )C(((wr?## (v( ( (wr?## (v( ( (( (r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Tr%   r   r&   r'   r(   r)   )
r9   r;   r=   r?   rA   rC   rD   rF   rH   rI   r*   r+   r,   rK   r-   rL   r.   rM   r/   r0   r1   rN   r2   r3   rO   c                      e Zd Z ej        ddd          Zej                            dddd          Zej                            d	dd
d
          Z	ej                            dddd          Z
ej                            dddd          Zej                            dddd          Z ej        ddd          Zej                            dddd          Z ej        dddd          Z ej        dddd          Z eed          rej                            ddd          Z eed           rej                            d!dd          Z eed"          rej                            d#dd          Z eed$          r ej        d%dd&          Z eed'          r ej        d(dd&          Zd)S d)S )*	OldRecordr   r   r   r   int32r
   r   r   int16r   float64r   r    float32r!   uint16r"   r#   r$   boolr%   )shaper   r   r   r&   )r   rY   r   r   r'   r(   r)   r*   float16r+   r-   float96r.   float128r/   r0   )r   rY   r   r2   r3   N)r4   r5   r6   r7   r8   r9   Col	from_typer;   r=   r?   rA   rC   rD   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   r
   r   r   rQ   rQ   Y   s       2<a888D6GR22D6GR22D6Ir3A66D6Ir3A66D6Hb!33D2<1555D6F"1!<<D2=!2V!DDDDBM2RvAFFFEwr<   5  B44wr<   5  B44wr=!! 6  R55wr?## Dr6CCCwr?## Dr6CCCD Dr   rQ   c                        e Zd ZdZdZdZdZdZdZdZ	dZ
dZeZdZdZ fdZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z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( Z0d) Z1d* Z2d+ Z3 xZ4S ),BasicTestCasewThis is the table titled      r   zlib   c                     t                                                       | j        j        | _        |                                  | j                                         d S NsupersetUph5fileroot	rootgrouppopulateFilecloseself	__class__s    r   rk   zBasicTestCase.setUp   N     )r   c                 z   | j         }|d         }g }t          | j                  D ]}g }d| j        |z
  z  }|                    |           |}|                    |           || j        z  }|                    |           t          |d         t          j                  r5|                    t          |          t          ||z            g           n"|                    t          |                     t          |d         t          j                  r9|                    t          j	        t          |          fdz                       n"|                    t          |                     |                    |dz	  dz  |dz  dz  z              |d	         }	|                    |	           t          |d
         t          j                  r|                    ddg           n|                    d           t          |d         t          j                  r;|                    dt          |          dz  z   t          |          dz   g           n%|                    t          |          dz              t          |d         t          j                  r;|                    t          |          dz   dt          |          dz  z   g           n(|                    dt          |          dz  z              t          t          d          r{t          |d         t          j                  r9|                    t          j	        t          |          fdz                       n"|                    t          |                     t          t          d          r{t          |d         t          j                  r9|                    t          j	        t          |          fdz                       n"|                    t          |                     t          t          d          r{t          |d         t          j                  r9|                    t          j	        t          |          fdz                       n"|                    t          |                     t          t          d          rt          |d         t          j                  r;|                    t          |          dz   dt          |          dz  z   g           n(|                    dt          |          dz  z              t          t          d          rt          |d         t          j                  r;|                    t          |          dz   dt          |          dz  z   g           n(|                    dt          |          dz  z              |                    t          |                     t          j        	                    ||j        | j                  | _        d S )Nr   %04dr?   rA   r   r         rF   
   rH           r&                   rI   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   )dtyperY   )recordtemplaterangeexpectedrowsappendmaxshort
isinstancenpndarrayfloatarrayrJ   r7   tuplerecr}   record)
rr   r   rowbuflistitmplistr9   r;   r=   rD   s
             r   initRecArrayzBasicTestCase.initRecArray   s"   $Qit()) :	+ :	+AGT.23DNN4   DNN4   t}$DNN4   #f+rz22 )a%A,,78888uQxx(((#f+rz22 )rxqA667777uQxx(((NNTQY$.DAI3GHIII8DNN4   #f+rz22 #2w''''r"""#f+rz22 ,588B;a=>>>>uQxx{+++#g,
33 0aQq"_=>>>>q588B;///r<(( -c'lBJ77 -NN28U1XXKM#:#:;;;;NN588,,,r<(( -c'lBJ77 -NN28U1XXKM#:#:;;;;NN588,,,r=)) -c'lBJ77 -NN28U1XXKM#:#:;;;;NN588,,,r?++ 4c'lBJ77 4NNE!HHRKU1XXb[#ABBBBNN1uQxx{?333r?++ 4c'lBJ77 4NNE!HHRKU1XXb[#ABBBBNN1uQxx{?333NN5>>****fll7&,)-): # < <r   c           
      N   | j         }| j        r|                                  t          d          D ]q}t	          j        | j        | j        | j        | j	        | j
                  }|dk     rt          j        }ndddt          j                 }| j                            |dt          |          z   | j        | j        || j        |          }| j        s|j        }t          | j                  D ]n}d	| j        |z
  z  }|                    d
          |d<   |d                             d
          |d<   ||d<   || j        z  |d<   t-          |d         t.          j                  r%t3          |          t3          ||z            g|d<   nt3          |          |d<   t-          |d         t.          j                  rddg|d<   nd|d<   t-          |d         t.          j                  r+dt3          |          dz  z   t3          |          dz   g|d<   nt3          |          dz   |d<   t-          |d         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d<   ndt3          |          dz  z   |d<   t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t          d          r[t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t          d          r[t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t          d           r[t-          |d!         t.          j                  r)t/          j        t3          |          fdz            |d!<   nt3          |          |d!<   t7          t          d"          rct-          |d#         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d#<   ndt3          |          dz  z   |d#<   t7          t          d$          rct-          |d%         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d%<   ndt3          |          dz  z   |d%<   |d         d&z	  d'z  |d         d&z  d(z  z   |d)<   |                                 p|                                 | j                            |d*t          |          z             }	|	}sd S )+Nr    )	complevelshuffle
bitshuffle
fletcher32complibr   biglittler   r   table)titlefiltersr   	byteorderrv   asciir9   ry   rD   r;   r=   r?   rF   r   r   rH   r{   r&   r|   rI         ?rA   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   r   rw   rx   rC   group)rn   recarrayinitr   r   r7   Filterscompressr   r   r   r   sysr   rl   create_tablestrr   r   r   r   encoder   r   r   r   r   r   rJ   r   flushcreate_group)
rr   r   jfilterpropsr   r   r   r   sgroup2s
             r   ro   zBasicTestCase.populateFile   s,    	 q V	 V	A*t}-1\0404-1\	; ; ;K
 1uuM		 (-X>>s}M	K,,UGCFFN-1[37:5@:>:K7@ - B BE $ =!it011 9! 9!A$"3a"78A"#((7"3"3CK"#B%,,w"7"7CK"#CK"#dm"3CK!#f+rz:: /',Qxxq1u&>F&+AhhF!#f+rz:: ('(!fF&'F!#f+rz:: 3')%((2+~uQxx|&DF&+AhhslF!#g,
;; 6(-abq"n'EG')%((2+~G!#f+rz:: /&(ha{1}&=&=F&+AhhFr<00 4%c'lBJ?? 4+-8U1XXKM+B+BCLL+088CLr<00 4%c'lBJ?? 4+-8U1XXKM+B+BCLL+088CLr=11 4%c'lBJ?? 4+-8U1XXKM+B+BCLL+088CLr?33 ;%c'lBJ?? ;,1!HHRKU1XXb[+ICLL+,uQxx{?CLr?33 ;%c'lBJ?? ;,1!HHRKU1XXb[+ICLL+,uQxx{?CL &)[A%5$=%([A%5$?$ACK JJLLLL KKMMM[--eWSVV^DDFEEmV	 V	r   c           	         t          j        | j                  | _        | j                            d          j        t          | j        t                    r| j        nt          | j        t          j
                  r4t           j                            | j        j                  \  }}|j        nZt          | j        t          j                  r/t           j                            | j                  \  }}|j        n| j        j        d}d t          d|dz             D             }d}t!          ||dz             D ]I\  }}|                                dz   }t%          t           |          r|                    d|z             J|                     |t+          j                             |                     |t+          j                             |D ]<}	|                     j        |	         j                            |	          u            =fd|D             }
|                     |
fd	|D                        |                     |
fd
|D                        fd|D             }
|                     |
fd|D                        |                     |
fd|D                        |D ]'}t8          j        rt=          d|         j        tA          |         j                             t=          dj!        |         tA          j!        |                              t=          dj"        |         tA          j"        |                              |                     t9          j#        j!        |         |         j                             |                     t9          j#        j"        |         |         j                             )|                     |t+          j$                             |D ]W}|         }j        |         }|                     |j        |j                   |                     |j         |j                    XdS )z2Checking table description and descriptive fields./table0rz   c                     g | ]}d |z  S )var%dr
   ).0ns     r   
<listcomp>z4BasicTestCase.test00_description.<locals>.<listcomp>A  s    III1IIIr   r   )rZ   r[   r\   
complex192
complex256r]   r   c                 *    g | ]}|         j         S r
   r}   r   colnamecolumnss     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>Q  s1     7 7 7$ !)/ 7 7 7r   c                 *    g | ]}j         |         S r
   )	coldtypesr   vtbls     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>T  s     BBBq#-*BBBr   c                 *    g | ]}j         |         S r
   )	_v_dtypesr   r   descs     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>V  s     CCC$.+CCCr   c                 *    g | ]}|         j         S r
   )typer   s     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>Y  s1     7 7 7$ !). 7 7 7r   c                 *    g | ]}j         |         S r
   )coltypesr   s     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>\  s    AAAa#,q/AAAr   c                 *    g | ]}j         |         S r
   )_v_typesr   s     r   r   z4BasicTestCase.test00_description.<locals>.<listcomp>^  s     BBBq$-*BBBr   zdflt-->zcoldflts-->zdesc.dflts-->N)%r7   	open_fileh5fnamerl   get_nodedescriptionr   r   dictr   r   descr_from_dtyper}   _v_colobjectsr   r   	enumerate
capitalizerJ   r   assertEquallistcolnames_v_names
assertTruecolinstancescols_f_colr   verboseprintr   r   coldflts_v_dfltsareArraysEqual_v_pathnames)rr   descr_fix_n_columnexpectedNamestypesr   typenamenamer   expectedTypesr   colNameexpectedColcolr   r   r   s                  @@@r   test00_descriptionz BasicTestCase.test00_description(  s    l4<00k""9--dk4(( 
	*kGGRZ00 	*~66t{7HIIHE1)GGRX.. 	*~66t{CCHE1)GG k)G IIeA|a7G.H.HIIIN$UL1,<== 	2 	2KAx&&((50Dr4   2$$Wq[111S\(:(:;;;T](;(;<<< % 	9 	9GOOC,W5"xw778 9 9 9 97 7 7 7(57 7 7BBBBMBBB	D 	D 	DCCCC]CCC	E 	E 	E7 7 7 7(57 7 7AAAA=AAA	C 	C 	CBBBBMBBB	D 	D 	D  		J 		JA~ .i$wqz2G2GHHHmS\!_d3<?6K6KLLLot}Q'74=+,,. . .OO%cl1owqzGGI I IOO%dmA&6
HHJ J J J 	T->(?(?@@@ % 	9 	9G!'*K$W-C[.	:::[-sx8888	9 	9r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d|_
        d |                                D             }t           j        rOt          d|j        d	|j                   t          d
|d                    t          dt          |                     | j        dz
  }t!          |                                          d         }|                     |d         |d         |d         fd|df           t%          |d         t&          j                  r]|                     t          j        |d         t'          j        t1          |          fdz  t&          j                                       n)|                     |d         t1          |                     t%          |d         t&          j                  rq|                     t          j        |d         t'          j        dt1          |          dz  z   t1          |          dz   gt&          j                                       n,|                     |d         t1          |          dz              |                     t          |          d           dS )zChecking table read.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test01_readTable...rr   r    c                 6    g | ]}|d          dk     |d          S r;   rd   r
   r   r   s     r   r   z2BasicTestCase.test01_readTable.<locals>.<listcomp>  *    NNN#S[2=M=M#f+=M=M=Mr   Nrows in:Last record in table ==>ry   $Total selected records in table ==> r   r9   r;   rD      0001   1rA   r   rH   r{   r&   r|   rd   N)r   r   r   rs   r4   r7   r   r   rl   r   
nrowsinbufiterrows_v_pathnamenrowslenr   r   r   r   r   r   r   allequalr   r   rV   	complex64rr   r   resultr   r   s        r   test01_readTablezBasicTestCase.test01_readTablew  s    > 	N$	"""2T^5LLMMM l4<55$$Y// NN)9)9NNN> 	G*e/ekBBB,eBi8888#f++FFF!A%5>>##$$R(#f+s6{CK@!5$/	1 	1 	1c&k2:.. 	8OOFOFRXuU||oa&7DDF F G G G G S[%,,777c&k2:.. 	>OOFOFRXr%,,s*:':E%LL<L&M&(l4 45 5 6 6 6 6 c&kE%LL,<===Vb)))))r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d|_
        d |                                D             }|d         }t           j        rIt          d	|j        d
|j                   t          d|           t          dt          |                     d}d| j        |z
  z  }|                    d          }|                     |d         |d         |d         f||df           t%          |d         t&          j                  r]|                     t          j        |d         t'          j        t1          |          fdz  t&          j                                       n)|                     |d         t1          |                     t%          |d         t&          j                  rq|                     t          j        |d         t'          j        dt1          |          dz  z   t1          |          dz   gt&          j                                       n,|                     |d         t1          |          dz              |                     t          |          d           dS )z0Checking table read (using Row.fetch_all_fields)r   r   z&Running %s.test01a_fetch_all_fields...r   r   r    c                 N    g | ]"}|d          dk     |                                 #S r   )fetch_all_fieldsr   s     r   r   z:BasicTestCase.test01a_fetch_all_fields.<locals>.<listcomp>  s<     ' ' 'S[2%% &&((%%%r   ry   r   r   r   r      rv   r   r9   r;   rD   r   rA   r   rH   r{   r&   r|   rd   Nr   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rV   r  rr   r   r  r   r   strnrowss         r   test01a_fetch_all_fieldsz&BasicTestCase.test01a_fetch_all_fields  s    > 	+$	""":.)* + + + l4<55$$Y// ' 'ENN4D4D ' ' 'Rj> 	G*e/ekBBB,c2228#f++FFFT.67??7++#f+s6{CK@"E40	2 	2 	2c&k2:.. 	8OOFOFRXuU||oa&7DDF F G G G G S[%,,777c&k2:.. 	<OOFOF"U5\\#--uU||C/?@' '( ( ) ) ) )
 S[%,,s*:;;;Vb)))))r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d|_
        d |                                D             }t           j        rIt          d|j        d	|j                   t          d
t          |                     t          d|           |                     t          |          d           |                     |t!          t#          d                               dS )z(Checking table read (using Row[integer])r   r   zRunning %s.test01a_integer...r   r   r    c                 6    g | ]}|d          dk     |d         S )r;   rd   r   r
   r   s     r   r   z1BasicTestCase.test01a_integer.<locals>.<listcomp>  s4     ' ' 'S[2%% a&%%%r   r   r   r   zAll results ==>rd   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   r   r   r   rr   r   r  s      r   test01a_integerzBasicTestCase.test01a_integer  s$    > 	M$	"""1DN4KKLLL l4<55$$Y// ' 'ENN$4$4 ' ' '> 	-*e/ekBBB8#f++FFF#V,,,Vb)))eBii11111r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d|_
        d |                                D             }|d         }t           j        rIt          d	|j        d
|j                   t          d|           t          dt          |                     d}d| j        |z
  z  }|                    d          }|                     |dd         |df           |                     |d         d           t%          |d         t&          j                  r]|                     t          j        |d         t'          j        t1          |          fdz  t&          j                                       n|                     |d         |           t%          |d         t&          j                  rq|                     t          j        |d         t'          j        dt1          |          dz  z   t1          |          dz   gt&          j                                       n,|                     |d         t1          |          dz              |                     t          |          d           dS )z$Checking table read (using Row[::2])r   r   zRunning %s.test01a_extslice...r   r   r    c                 <    g | ]}|d          dk     |ddd         S )r;   rd   Nr   r
   r   s     r   r   z2BasicTestCase.test01a_extslice.<locals>.<listcomp>  s:     ' ' 's[2%% ccc(%%%r   ry   r   r   r   r   r  rv   r   Nr   r   r   r{   r&   r|   rd   r	  r
  s         r   test01a_extslicezBasicTestCase.test01a_extslice  s    > 	N$	"""2T^5LLMMM l4<55$$Y// ' 'enn&6&6 ' ' 'Rj> 	G*e/ekBBB,c2228#f++FFFT.67??7++RaR8R.111Q&&&c!fbj)) 	,OOFOA%,,!2BJ??A A B B B B SVU+++c!fbj)) 	7OOFOA"U5\\#%5"5uU||C7G!H!#/ /0 0 1 1 1 1 SVU5\\#%5666Vb)))))r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }| 
                    t                    5  d |D             }t           j        rt          d|           ddd           dS # 1 swxY w Y   dS )	z+Checking table read (using Row['no-field'])r   r   zRunning %s.test01a_nofield...r   r   c                     g | ]
}|d          S )zno-fieldr
   r   s     r   r   z1BasicTestCase.test01a_nofield.<locals>.<listcomp>  s    777#c*o777r   result:N)r   r   r   rs   r4   r7   r   r   rl   r   assertRaisesKeyErrorr  s      r   test01a_nofieldzBasicTestCase.test01a_nofield  s    > 	M$	"""1DN4KKLLL l4<55$$Y//
 x(( 	) 	)77777F~ )i(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   )CC	Cc                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }| 
                    t                    5  d |D             }t           j        rt          d|           ddd           dS # 1 swxY w Y   dS )	z#Checking table read (using Row[{}])r   r   z"Running %s.test01a_badtypefield...r   r   c                     g | ]
}|i          S r
   r
   r   s     r   r   z6BasicTestCase.test01a_badtypefield.<locals>.<listcomp>%  s    ///#c"g///r   r  N)r   r   r   rs   r4   r7   r   r   rl   r   r  	TypeErrorr  s      r   test01a_badtypefieldz"BasicTestCase.test01a_badtypefield  s    > 	+$	"""6.)* + + + l4<55$$Y//
 y)) 	) 	)/////F~ )i(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r  c                 R   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d|_
        d |                                D             }t           j        rt          d|j        d	|j                   t          d
|d                    t          d|d         d         d           t          d|j                   t          dt          |                     |j        }t          |                                          d         }t!          |d         t"          j                  rt"          j                            |d         t#          j        t-          d          fdz  t"          j                             t"          j                            |d         t#          j        t-          d          fdz  t"          j                             t"          j                            |d         t#          j        t-          d          fdz  t"          j                             t"          j                            |d         t#          j        t-          d          fdz  t"          j                             t"          j                            |d         t#          j        t-          d          fdz  t"          j                             t"          j                            |d         t#          j        t-          |dz
            fdz  t"          j                             n,|                     |d         t-          |dz
                       d |                                D             }t!          |d         t"          j                  rwt"          j                            |d         t#          j        t-          d          dz   dt-          d          dz  z   gt"          j                             t"          j                            |d         t#          j        t-          d          dz   dt-          d          dz  z   gt"          j                             t"          j                            |d         t#          j        t-          d          dz   dt-          d          dz  z   gt"          j                             t"          j                            |d         t#          j        t-          d          dz   dt-          d          dz  z   gt"          j                             t"          j                            |d         t#          j        t-          d          dz   dt-          d          dz  z   gt"          j                             t"          j                            |d         t#          j        t-          |dz
            dz   dt-          |dz
            dz  z   gt"          j                             n2|                     |d         dt-          |dz
            dz  z              |                     t          |          d           dS )z<Checking table read and cuts (multidimensional columns case)r   r   zRunning %s.test01b_readTable...r   r   r    c                 6    g | ]}|d          dk     |d         S )r;   rd   rA   r
   r   s     r   r   z3BasicTestCase.test01b_readTable.<locals>.<listcomp>7  4     ' ' '#[2%% f+%%%r   r   r   r   ry   zrec['var5'] ==>rA    )endz	nrows ==>r   r   r   r   r   rz   c                 6    g | ]}|d          dk     |d         S )r;   rd   rI   r
   )r   r   s     r   r   z3BasicTestCase.test01b_readTable.<locals>.<listcomp>R  s4     * * *fF^b(( /(((r   rI   r|   r   r&   rd   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   r   r   r   r   testingassert_array_equalr   r   rV   r   
complex128r  s        r   test01b_readTablezBasicTestCase.test01b_readTable)  s    > 	O$	"""3dn6MMNNN l4<55$$Y// ' ')9)9 ' ' '> 	G*e/ekBBB,eBi888#U2Yv%6C@@@@+u{+++8#f++FFF5>>##$$R(c&k2:.. 	<J))q	28U1XXKM2:>>@ @ @J))q	28U1XXKM2:>>@ @ @J))q	28U1XXKM2:>>@ @ @J))q	28U1XXKM2:>>@ @ @J))r
BHeBii\!^RZ@@B B BJ))FRXuU1W~~&7&92:FFH H H H S[%	*:*:;;;* *0@0@ * * *c'lBJ// 	AJ))q	%((3,588B;7GGI I I J))q	%((3,588B;7GGI I I J))q	%((3,588B;7GGI I I J))q	%((3,588B;7GGI I I J))r
%))C-E"IIbL92=IIK K K J))G%a..,buQw1B.BC( () ) ) )
 S\2eE!GnnR.?+?@@@Vb)))))r   c                 *   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }g }|
                    d          D ]J}|
                    d          D ]1}|d         d	k     r#|                    |d         |d         g           2Kt           j        rt          d
|           |                     |ddgddgddgddgg           dS )z#Checking nested iterators (reading)r   r   zRunning %s.test01c_readTable...r   r   r   stopr;   rd   
result ==>r   r   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   rr   r   r  r   rec2s        r   test01c_readTablezBasicTestCase.test01c_readTablel  s*    > 	O$	"""3dn6MMNNN l4<55$$Y// >>q>)) 	? 	?CA.. ? ?<"$$MM3v;V"=>>>? > 	(,'''1a&1a&1a&1a&!ABBBBBr   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }g }|
                    d          D ]?}|                    dd          D ]%}|                    |d	         |d	         g           &@t           j        rt          d
|           |                     |ddgddgddgddgg           dS )z5Checking nested iterators (reading, mixed conditions)r   r   zRunning %s.test01d_readTable...r   r   r   r*  z	var2 < 20r;   r,  r   r   N)r   r   r   rs   r4   r7   r   r   rl   r   r   wherer   r   r-  s        r   test01d_readTablezBasicTestCase.test01d_readTable  s    > 	O$	"""3dn6MMNNN l4<55$$Y// >>q>)) 	; 	;CKa88 ; ;s6{DL9::::;> 	(,'''1a&1a&1a&1a&!ABBBBBr   c           
         t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }g }|
                    d          D ]=}|
                    d          D ]%}|                    |d         |d	         g           &>t           j        rt          d
|           |                     |ddgddgddgddgddgddgg           dS )z4Checking nested iterators (reading, both conditions)r   r   zRunning %s.test01e_readTable...r   r   var3 < 2zvar2 < 3r;   r=   r,  r   r   r   Nr   r   r   rs   r4   r7   r   r   rl   r   r1  r   r   r-  s        r   test01e_readTablezBasicTestCase.test01e_readTable  s3    > 	O$	"""3dn6MMNNN l4<55$$Y// ;;z** 	; 	;CJ// ; ;s6{DL9::::;> 	(,'''a&1a&1a&1a&1a&1a&I	K 	K 	K 	K 	Kr   c           
      6   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }g }|
                    d          D ]K}|
                    d          D ]3}|d         d	k    r n$|                    |d         |d
         g           4Lt           j        rt          d|           |                     |ddgddgddgddgddgddgg           dS )z6Checking nested iterators (reading, break in the loop)r   r   zRunning %s.test01f_readTable...r   r   r4  zvar2 < 4r;   r    r=   r,  r   r   r   Nr5  r-  s        r   test01f_readTablezBasicTestCase.test01f_readTable  sC    > 	O$	"""3dn6MMNNN l4<55$$Y// ;;z** 	; 	;CJ// ; ;<1$$Es6{DL9::::> 	(,'''a&1a&1a&1a&1a&1a&I	K 	K 	K 	K 	Kr   c                 B   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        d | j        	                    d          D             }| 
                    t          |          d           dS )	z+Checking iterator with an evanescent table.r   r   zRunning %s.test01g_readTable...r   c                 6    g | ]}|d          dk     |d          S r   r
   r   s     r   r   z3BasicTestCase.test01g_readTable.<locals>.<listcomp>  r!  r   r   rd   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   )rr   r  s     r   test01g_readTablezBasicTestCase.test01g_readTable  s     > 	O$	"""3dn6MMNNN l4<55' ')=)=i)H)H ' ' ' 	Vb)))))r   c           
      t   t          j        | j        d          | _        | j        j        | _        t          j        r,t          dd           t          d| j	        j
        z             | j                            d          }|j        }t          j        rKt          d|j        d|j                   t          d	|j        j                   t          d
|j                   t%          | j                  D ]N}d| j        |z
  z  }|                    d          |d<   |d                             d          |d<   ||d<   || j        z  |d<   t-          |d         t.          j                  r%t3          |          t3          ||z            g|d<   nt3          |          |d<   t-          |d         t.          j                  rddg|d<   nd|d<   t-          |d         t.          j                  r+dt3          |          dz  z   t3          |          dz   g|d<   nt3          |          dz   |d<   t-          |d         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d<   ndt3          |          dz  z   |d<   t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t           d          r[t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t           d           r[t-          |d!         t.          j                  r)t/          j        t3          |          fdz            |d!<   nt3          |          |d!<   t7          t           d"          r[t-          |d#         t.          j                  r)t/          j        t3          |          fdz            |d#<   nt3          |          |d#<   t7          t           d$          rct-          |d%         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d%<   ndt3          |          dz  z   |d%<   t7          t           d&          rct-          |d'         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d'<   ndt3          |          dz  z   |d'<   |                                 P|                                 d( |                                D             }| j        dz
  }t?          |                                          d         }|                      |d         |d         |d         fd)|d*f           t-          |d         t.          j                  r]| !                    t          j"        |d         t/          j        t3          |          fdz  t.          j#                                       n)|                      |d         t3          |                     | j        d+k    r| j        }nd+}|                      tI          |          d+|z              d,S )-z4Checking whether appending record rows works or not.amoder   r   zRunning %s.test02_AppendRows.../group0/table1Nrows in oldr   Record Format ==>Record Size ==>rv   r   r9   ry   rD   r;   r=   r?   rF   r   r   rH   r{   r&   r|   rI   r   rA   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   c                 6    g | ]}|d          dk     |d          S r   r
   r   r   s     r   r   z3BasicTestCase.test02_AppendRows.<locals>.<listcomp>   %    HHH6R!F)r   r   r   rd   N)%r7   r   r   rl   rm   rn   r   r   r   rs   r4   r   r   r   r   r   _v_nested_formatsrowsizer   
appendrowsr   r   r   r   r   r   r   rJ   r   r   r   r   r   r   r   rV   r   )rr   r   r   r   r   r  r   adds           r   test02_AppendRowszBasicTestCase.test02_AppendRows  s    l4<c:::)> 	O$	"""3dn6MMNNN $$%566i> 	4.%"3S%+FFF%u'8'JKKK#U]333t'' 4	 4	A$/A-.A((7++CKB%,,w//CKCKdm+CK#f+rz22 '$Qxxq1u6F#AhhF#f+rz22   !fFF#f+rz22 +!%((2+~uQxx|<F#AhhslF#g,
33 . %abq"n=G!%((2+~G#f+rz22 ' ha{1}55F#AhhFr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr=)) ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLJJLLLL 	HHU^^%5%5HHH!#5>>##$$R(#f+s6{CK@!5$/	1 	1 	1c&k2:.. 	8OOFOFRXuU||oa&7DDF F G G G G S[%,,777?b  /CCCVb3h/////r   c           
      $   t          j        | j        d          | _        | j        j        | _        t          j        r,t          dd           t          d| j	        j
        z             | j        }t          d          D ]}| j                            |dt          |          z             }| j                            |dt          |          z             }|j        }t          j        rKt          d	|j        d
|j                   t          d|j        j                   t          d|j                   t          | j                  D ],}d| j        |z
  z  |d<   |d         d         |d<   ||d<   || j        z  |d<   t-          |d         t.          j                  r%t3          |          t3          ||z            g|d<   nt3          |          |d<   t-          |d         t.          j                  rddg|d<   nd|d<   t-          |d         t.          j                  r+dt3          |          dz  z   t3          |          dz   g|d<   nt3          |          dz   |d<   t-          |d         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d<   ndt3          |          dz  z   |d<   t-          |d         t.          j                  r)t/          j        t3          |          fdz            |d<   nt3          |          |d<   t7          t           d          r[t-          |d          t.          j                  r)t/          j        t3          |          fdz            |d <   nt3          |          |d <   t7          t           d!          r[t-          |d"         t.          j                  r)t/          j        t3          |          fdz            |d"<   nt3          |          |d"<   t7          t           d#          r[t-          |d$         t.          j                  r)t/          j        t3          |          fdz            |d$<   nt3          |          |d$<   t7          t           d%          rct-          |d&         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d&<   ndt3          |          dz  z   |d&<   t7          t           d'          rct-          |d(         t.          j                  r+t3          |          dz   dt3          |          dz  z   g|d(<   ndt3          |          dz  z   |d(<   |                                 .|                                 | j                                         t          j        | j        d          | _        | j        j        j        }d) |                                 D             }| j        dz
  }| !                    |d         |d         |d         fd*|d+f           t-          |d         t.          j                  r]| "                    t          j#        |d         t/          j        t3          |          fdz  t.          j$                                       n)| !                    |d         t3          |                     | j        d,k    r| j        }nd,}| !                    tK          |          d,|z              d-S ).z8Checking appending records without flushing explicitely.r=  r>  r   r   z Running %s.test02a_AppendRows...r    r   r   rA  r   rB  rC  rv   r9   ry   rD   r;   r=   r?   rF   r   r   rH   r{   r&   r|   rI   r   rA   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z5BasicTestCase._test02a_AppendRows.<locals>.<listcomp>  rF  r   00011rd   N)&r7   r   r   rl   rm   rn   r   r   r   rs   r4   r   r   r   r   r   r   r   rG  rH  rI  r   r   r   r   r   r   rJ   r   r   rp   table0r   r   r   r   rV   r   )	rr   r   group_ir   r   row_ir  r   rJ  s	            r   _test02a_AppendRowsz!BasicTestCase._test02a_AppendRows4  sJ    l4<c:::)> 	P$	"""4t~7NNOOOQxx @	 @	GK((G0DEEEK((G0DEEE)C~ 8ne&7ekJJJ)5+<+NOOO'777t// 3 3$%(?@F!&k"oF#F#dm3Fc&k2:66 /#(<<uu}1E1E"FCKK"',,CKc&k2:66 $#$a&CKK"#CKc&k2:66 3#%eEll2o#5uU||C7G"HCKK"',,s"2CKc'lBJ77 6$)%LL$4bub6H#ICLL#%eEll2o#5CLc&k2:66 /"$(E%LL?1+<"="=CKK"',,CK2|,, 4!#g,
;; 4')xu0A'B'BG',U||G2|,, 4!#g,
;; 4')xu0A'B'BG',U||G2}-- 4!#g,
;; 4')xu0A'B'BG',U||G2// ;!#g,
;; ;(-eRU5\\"_9L'MG'(5<<?':G2// ;!#g,
;; ;(-eRU5\\"_9L'MG'(5<<?':G

KKMMMM 	l4<c::: 'HHU^^%5%5HHH!##f+s6{CK@ %-	/ 	/ 	/c&k2:.. 	8OOFOFRXuU||oa&7DDF F G G G G S[%,,777?b  /CCCVb3h/////r   c                    t          j        | j        d          | _        | j        j        | _        t          j        r,t          dd           t          d| j	        j
        z             | j                            d          }t          j        rKt          d|j        d|j                   t          d	|j        j                   t          d
|j                   d|_        |j        }t'          d|j        z            D ]}d| j        |z
  z  }|                    d          |d<   |d                             d          |d<   ||d<   || j        z  |d<   t/          |d         t0          j                  r%t5          |          t5          ||z            g|d<   nt5          |          |d<   t/          |d         t0          j                  rddg|d<   nd|d<   t/          |d         t0          j                  r+dt5          |          dz  z   t5          |          dz   g|d<   nt5          |          dz   |d<   t/          |d         t0          j                  r+t5          |          dz   dt5          |          dz  z   g|d<   ndt5          |          dz  z   |d<   t/          |d         t0          j                  r)t1          j        t5          |          fdz            |d<   nt5          |          |d<   t9          t           d          r[t/          |d          t0          j                  r)t1          j        t5          |          fdz            |d <   nt5          |          |d <   t9          t           d!          r[t/          |d"         t0          j                  r)t1          j        t5          |          fdz            |d"<   nt5          |          |d"<   t9          t           d#          r[t/          |d$         t0          j                  r)t1          j        t5          |          fdz            |d$<   nt5          |          |d$<   t9          t           d%          rct/          |d&         t0          j                  r+t5          |          dz   dt5          |          dz  z   g|d&<   ndt5          |          dz  z   |d&<   t9          t           d'          rct/          |d(         t0          j                  r+t5          |          dz   dt5          |          dz  z   g|d(<   ndt5          |          dz  z   |d(<   |                                 | j                                         t          j        | j        d)          | _        | j                            d          }d|_        |j        }d* |D             }| j                                         t          j        | j        d          | _        | j                            d          }d|_        |j        }| j                                         t          j        | j        d)          | _        | j                            d          }d|_        d+ |                                D             }t          j        r-t          d,tA          |                     t          d-|           | !                    tA          |          d.d|j        z  z              | !                    |g d/           d0 |                                D             }t          j        r-t          d1tA          |                     t          d2|           | !                    |g d3           d4S )5z:Checking whether appending *and* reading rows works or notr=  r>  r   r   z Running %s.test02b_AppendRows...r@  rA  r   rB  rC  r    rv   r   r9   ry   rD   r;   r=   r?   rF   r   r   rH   r{   r&   r|   rI   r   rA   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   r   c                     g | ]
}|d          S r;   r
   )r   row2s     r   r   z4BasicTestCase.test02b_AppendRows.<locals>.<listcomp>  s    555td6l555r   c                 6    g | ]}|d          dk     |d          S r   r
   )r   row3s     r   r   z4BasicTestCase.test02b_AppendRows.<locals>.<listcomp>  s1     
 
 
!f9J9JDL9J9J9Jr   Result length ==>Result contents ==>rd   )r   r   r   r    r   r"   r$   r%   r   r)   rz                  r'         r  r   r   r   r    r   r"   r$   r%   r   c                 6    g | ]}|d          dk     |d         S )r;   rd   rD   r
   )r   row4s     r   r   z4BasicTestCase.test02b_AppendRows.<locals>.<listcomp>  s1     
 
 
!f9J9JDL9J9J9Jr   zResult7 length ==>zResult7 contents ==>)   0   9   8   7   6   5   4   3   2r   re  rf  rg  rh  ri  rj  rk  rl  rm  r   re  rf  rg  rh  ri  rj  rk  rl  rm  N)"r7   r   r   rl   rm   rn   r   r   r   rs   r4   r   r   r   r   rG  rH  r   r   r   rI  r   r   r   r   r   r   r   rJ   r   rp   r   r   r   )rr   r   r   r   r   r  result7s          r   test02b_AppendRowsz BasicTestCase.test02b_AppendRows  s    l4<c:::)> 	P$	"""4t~7NNOOO $$%566> 	4.%"3S%+FFF%u'8'JKKK#U]333i q5++,, G	 G	A$/A-.A((7++CKB%,,w//CKCKdm+CK#f+rz22 '$Qxxq1u6F#AhhF#f+rz22   !fFF#f+rz22 +!%((2+~uQxx|<F#AhhslF#g,
33 . %abq"n=G!%((2+~G#f+rz22 ' ha{1}55F#AhhFr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr=)) ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLJJLLL K,t|#>>>DKK(()9::E E)C55u555F
 K,t|#>>>DKK(()9::E E)CCl4<c:::$$%566
 
%*^^%5%5
 
 
 > 	1%s6{{333'000Vb1u/?+?&?@@@ "= "= "= 	> 	> 	>
 
%*^^%5%5
 
 
 > 	3&G555('222C C C	D 	D 	D 	D 	Dr   c                    t          j        | j        d          | _        | j        j        | _        t          j        r,t          dd           t          d| j	        j
        z             | j                            d          }t          j        rKt          d|j        d|j                   t          d	|j        j                   t          d
|j                   d|_        |j        }t'          d          D ]}d|z   |d<   |                                 |                                 t'          d          D ]}d|z   |d<   |                                 |                                 d |                                D             }t          j        r-t          dt/          |                     t          d|           |j        dk    r=|                     t/          |          d           |                     |g d           dS |                     t/          |          d           |                     |g d           dS )z<Checking appending using the same Row object after flushing.r=  r>  r   r   z Running %s.test02d_AppendRows...r@  rA  r   rB  rC  r    rz   rc   r;   r)   n   c                 J    g | ] }d |d         cxk    rdk     n n|d         !S )rc   r;   x   r
   rE  s     r   r   z4BasicTestCase.test02d_AppendRows.<locals>.<listcomp>8  sH     
 
 
3!F)3I3I3I3Ic3I3I3I3I3IAfI3I3I3Ir   rZ  r[  w   '   )'rc   e   f   g   h   i   j   k   l   m   rq  o   p   q   r   s   t   u   v   rt  rc   rv  rw  rx  ry  rz  r{  r|  r}  r~  rq  r  r  r  r  r  r  r  r  r  )rc   rv  rw  rx  ry  rz  r{  r|  r}  r~  rq  r  r  r  r  r  r  r  r  N)r7   r   r   rl   rm   rn   r   r   r   rs   r4   r   r   r   r   rG  rH  r   r   r   r   r   r   r   r   )rr   r   r   r   r  s        r   test02d_AppendRowsz BasicTestCase.test02d_AppendRows  se    l4<c:::)> 	P$	"""4t~7NNOOO $$%566> 	4.%"3S%+FFF%u'8'JKKK#U]333ir 	 	A'CKJJLLLLq 	 	A'CKJJLLLL
 
$~~//
 
 
 > 	1%s6{{333'000;S[["---VK K KL L L L L S[["---VK K KL L L L Lr   c                 (   t          j        | j        d          | _        | j                            d          }|j        }|j        }|                                 |                                 |j        }| 	                    ||dz   d           | j        j
        j        j        dk    rdS ~|                                 | j                            d          }|                                 |j        }| 	                    ||dz   d	           dS )
z:Checking appending using the Row of an unreferenced table.r=  r>  r@  r   zAppend to alive table failed.r   Nr   zAppend to dead table failed.)r7   r   r   rl   r   r   r   r   r   r   _node_managercachenslots)rr   r   oldnrowsr   newnrowss        r   test02e_AppendRowsz BasicTestCase.test02e_AppendRowsL  s   
 l4<c::: $$%566;i
 	

;8a<8	: 	: 	: ;$*1Q66 F 

$$%566;8a<7	9 	9 	9 	9 	9r   c                     G d dt           j                  }t          j        | j        d          | _        | j                            | j        j        d          }| j                            |d|dt          j        | j	        t          | j                  t          | j                  | j                  d	
          }| j        j        j        | _        t           j        r,t%          dd           t%          d| j        j        z             t           j        rKt%          d|j        d|j                   t%          d|j        j                   t%          d|j                   d|j        _        d|j        _        t;          d          D ]D}|                    d|d|d|z
  t?          ||z            t?          |dz            fg           E|                    g d           |                    ddg           t;          d          D ]}|dz   }||z  }|dz   }|                    d|d|d|z
  t?          ||z            t?          |dz            fd|d|d|z
  t?          ||z            t?          |dz            fd|d|d|z
  t?          ||z            t?          |dz            fd|d|d|z
  t?          ||z            t?          |dz            fg           | j                                          t          j        | j        d          | _        | j        j        j        | _        | j        j!        }d |"                                D             }t           j        r-t%          dtG          |                     t%          d|           | $                    tG          |          d            | $                    |g d!           d"S )#KChecking whether blosc2 optimized appending *and* reading rows works or notc                       e Zd Z ej        dd          Z ej        d          Z ej        d          Z ej	        d          Z
 ej        d          ZdS )	2BasicTestCase.test02f_AppendRows.<locals>.Particler'   r   rS   r   r    r   r"   Nr4   r5   r6   r7   r8   r   Int32Collatilongir@   pressurer>   temperaturer
   r   r   Particler  r  t        2<***D2;1%%%DBKA&&&E$r}+++H'"-A...KKKr   r  r=  r>  newgroupr   A tabler   r   r   r   r    
chunkshaper   r   z Running %s.test02f_AppendRows...rA  r   rB  rC  |?5^?This is the second user attrrz   
Particle: 6dr   ))zParticle:     10rz   r   rc   rc   )zParticle:     11r\  ry   y   r  )zParticle:     12r]     r  )zParticle:     13r^     r  )zParticle:     14r_     r  r   r   c                 "    g | ]}|d d          S rh   r
   r   r   s     r   r   z4BasicTestCase.test02f_AppendRows.<locals>.<listcomp>  -     
 
 
CF
 
 
r   rZ  r[  7   )7s   Particle:      0r   rz   r{   r{   s   Particle:      1r   r)   r   r   s   Particle:      2r   r         @r  s   Particle:      3r    r%         "@r  s   Particle:      4r   r$         0@r  s   Particle:      5r"   r"         9@r  s   Particle:      6r$   r         B@r  s   Particle:      7r%   r         H@r  s   Particle:      8r   r         P@r  s   Particle:      9r)   r        @T@r  s   Particle:     10rz   r         Y@r  )s   Particle:     11r\  ry        @^@r  )s   Particle:     12r]  r        b@r  )s   Particle:     13r^  r        e@r  )s   Particle:     14r_  r       h@r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )s   Particle:     16r'         p@r  )s   Particle:     17ra  i     r@r  r  r  )s   Particle:     25   i     @r  )s   Particle:     26   i      @r  r  r  )s   Particle:     36$   i     @@r  )s   Particle:     37%   i     d@r  r  r  )s   Particle:     491   i     ¢@r  )s   Particle:     502   i     @r  r  r  )s   Particle:     64@   i      @r  )s   Particle:     65A   i     @r  r  r  )s   Particle:     81Q   i     @r  )s   Particle:     82R   i     D@r  N)%r7   IsDescriptionr   r   rl   r   rm   r   r   r   rX   r   r   r   r  rn   r   r   r   rs   r4   r   r   r   rG  rH  attrs
user_attr1
user_attr2r   r   r   rp   r   r   r   r   )	rr   r  r   r   r   r   klr  s	            r   test02f_AppendRowsz BasicTestCase.test02f_AppendRowso  sC   	/ 	/ 	/ 	/ 	/r' 	/ 	/ 	/ l4<c::: (()9:FF ((9)+dm<@<N<N?CDO?T?T<@L*J *J *J 56 ) 7 7 )2> 	P$	"""4t~7NNOOO> 	4.%"3S%+FFF%u'8'JKKK#U]333 "'!? r 	Z 	ZALL....265Q<<qTUvWXYYYY F F F 	G 	G 	G 	DDF 	G 	G 	G r 	Z 	ZAAAAAAALL....265Q<<qTUvW....265Q<<qTUvW....265Q<<qTUvW....265Q<<qTUvWY Z Z Z Z
 	l4<c:::)2$
 
#nn..
 
 
 > 	1%s6{{333'000V&9::: 6"R 6"R 6"R 6	S 6	S 6	S 6	S 6	Sr   c                     G d dt           j                  }t          j        | j        d          | _        | j                            | j        j        d          }| j                            |d|dt          j        | j	        t          | j                  t          | j                  | j                  d	
          }| j        j        j        | _        t           j        r,t%          dd           t%          d| j        j        z             t           j        rKt%          d|j        d|j                   t%          d|j        j                   t%          d|j                   d|j        _        d|j        _        t;          d          D ]}}d|z  }|                    d|d|d|z
  t?          ||z            t?          |dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d	z   d|d	z   d|d	z   z
  t?          |d	z   |d	z   z            t?          |d	z   dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d z   d|d z   d|d z   z
  t?          |d z   |d z   z            t?          |d z   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d!z   d|d!z   d|d!z   z
  t?          |d!z   |d!z   z            t?          |d!z   dz            fd|d"z   d|d"z   d|d"z   z
  t?          |d"z   |d"z   z            t?          |d"z   dz            fg           | j                                          t          j        | j        d#          | _        | j        j        j        | _        | j        j!        }d$ |"                                D             }t           j        r-t%          d%tG          |                     t%          d&|           g }t;          d'          D ]U}|                    d|d$                                |d|z
  t?          ||z            t?          |dz            f           V| %                    tG          |          d'           | %                    ||           d(S ))r  c                       e Zd Z ej        dd          Z ej        d          Z ej        d          Z ej	        d          Z
 ej        d          ZdS )	2BasicTestCase.test02g_AppendRows.<locals>.Particler'   r   rS   r   r    r   r"   Nr  r
   r   r   r  r    r  r   r  r=  r>  r  r   r  r  r    r  r   r   z Running %s.test02g_AppendRows...rA  r   rB  rC  r  r  r  r^  r  r  rz   r   r   r   r"   r$   r%   r   r)   r\  r]  r   c                 "    g | ]}|d d          S rh   r
   r  s     r   r   z4BasicTestCase.test02g_AppendRows.<locals>.<listcomp>,  r  r   rZ  r[  i  N)&r7   r  r   r   rl   r   rm   r   r   r   rX   r   r   r   r  rn   r   r   r   rs   r4   r   r   r   rG  rH  r  r  r  r   r   r   rp   r   r   r   r   r   rr   r  r   r   r   r   r  	particless           r   test02g_AppendRowsz BasicTestCase.test02g_AppendRows  s   	/ 	/ 	/ 	/ 	/r' 	/ 	/ 	/ l4<c::: (()9:FF ((9)+dm<@<N<N?CDO?T?T<@L*J *J *J 56 ) 7 7 )2> 	P$	"""4t~7NNOOO> 	4.%"3S%+FFF%u'8'JKKK#U]333 "'!? r 	~ 	~AQALL....265Q<<qTUvWXYYYLL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatuw x x x LL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatuw x x x
 LL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{	} ~ ~ ~ ~ 	l4<c:::)2$
 
#nn..
 
 
 > 	1%s6{{333'000	 	e 	eA1111188::ArAvuQQRU||UZ[\`a[aUbUbcddddVg...+++++r   c                 t   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rtt          d|j        d|j                   t          d	|j                   t          d
|d                    t          d|           t          dt          |                     | j        dz
  }|                     |j        dddt"          j                            t%          |
                                          d         }|                     |d         |d         fd|f           |                     t          |          d           dS )z%Checking if table is endianess aware.r   r   zRunning %s.test03_endianess...r   z/group0/group1/table2c                 6    g | ]}|d          dk     |d         S )r=   rd   r;   r
   r   s     r   r   z2BasicTestCase.test03_endianess.<locals>.<listcomp>H  r   r   r   r   zOn-disk byteorder ==>r   ry   zSelected records ==>#Total selected records in table ==>r   r   r   r   r9   r=   r   rd   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   r   r   r   r   r  s        r   test03_endianesszBasicTestCase.test03_endianess<  s    > 	N$	"""2T^5LLMMM l4<55$$%<== ON)9)9NNN> 	F*e/ekBBB)5?;;;,eBi888(&1117VEEE!A%$)(;;CMJ	L 	L 	L5>>##$$R(#f+s6{3gu5EFFFVb)))))r   c                 0   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |j        }d|_        |                    dd           d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |                     |j        |dz
             |                     |j        |dz
  f           |                     t          |          t          |          dz              |                     |dd
         |           dS )-Checking whether a single row can be deleted.r   r   Running %s.test04_delete...r=  r   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z/BasicTestCase.test04_delete.<locals>.<listcomp>b  rF  r   r   r   Last selected value ==>ry   r  r    r  rd   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z/BasicTestCase.test04_delete.<locals>.<listcomp>o  %    III!F)b..1V9...r   r   Nr   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   remove_rowsr   rY   rr   r   r  r   result2s        r   test04_deletezBasicTestCase.test04_deleteV  s    > 	K$	"""/$.2IIJJJ l4<55$$Y// IHU^^%5%5HHH> 	F*e/ekBBB+VBZ8887VEEE"b!!! JIenn&6&6III> 	G*e/ekBBB+WR[9997WFFFeai000uqyl333Vc'llQ&6777g.....r   c                 .   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |j        }d|_        |                    d           d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |                     |j        |dz
             |                     |j        |dz
  f           |                     t          |          t          |          dz              |                     |dd
         |           dS )r  r   r   r  r=  r   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04a_delete.<locals>.<listcomp>  rF  r   r   r   r  ry   r  r    r  c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04a_delete.<locals>.<listcomp>  r  r   r   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   
remove_rowr   rY   r  s        r   test04a_deletezBasicTestCase.test04a_delete|  s    > 	K$	"""/$.2IIJJJ l4<55$$Y// IHU^^%5%5HHH> 	F*e/ekBBB+VBZ8887VEEE JIenn&6&6III> 	G*e/ekBBB+WR[9997WFFFeai000uqyl333Vc'llQ&6777g.....r   c                 0   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |j        }d|_        |                    dd           d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |                     |j        |dz
             |                     |j        |dz
  f           |                     t          |          t          |          dz              |                     |dd         |           dS )z0Checking whether a range of rows can be deleted.r   r   zRunning %s.test04b_delete...r=  r   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04b_delete.<locals>.<listcomp>  rF  r   r   r   r  ry   r  r   rz   rd   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04b_delete.<locals>.<listcomp>  r  r   Nr  r  s        r   test04b_deletezBasicTestCase.test04b_delete  s    > 	L$	"""04>3JJKKK l4<55$$Y// IHU^^%5%5HHH> 	F*e/ekBBB+VBZ8887VEEE"b!!! JIenn&6&6III> 	G*e/ekBBB+WR[9997WFFFebj111urzm444Vc'llR&7888g.....r   c                 r   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }|j        }d|_        |                    d|d	z              d
 |
                                D             }t           j        rOt          d|j        d|j                   t          d|d                    t          dt          |                     |                     |j        d           |                     |j        d           |                     t          |          t          |          dz              |                     |dd         |           dS )z:Checking whether removing a bad range of rows is detected.r   r   zRunning %s.test04c_delete...r=  r   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04c_delete.<locals>.<listcomp>  rF  r   r"   rz   rc   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04c_delete.<locals>.<listcomp>  r  r   r   r   r  ry   r  rz   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r  r   r   r   rY   r  s        r   test04c_deletezBasicTestCase.test04c_delete  s    > 	L$	"""04>3JJKKK l4<55$$Y// IHU^^%5%5HHH"eck*** JIenn&6&6III> 	G*e/ekBBB+WR[9997WFFFb)))e,,,Vc'llR&7888g.....r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |D             }|j
        }|j        }d|_        |                    dd	           ||_        |j        }t          dd	          D ]}d
| j        |z
  z  |d<   ||d<   || j        z  |d<   t#          |d         t$          j                  r%t)          |          t)          ||z            g|d<   nt)          |          |d<   t#          |d         t$          j                  rddg|d<   nd|d<   t#          |d         t$          j                  r+dt)          |          dz  z   t)          |          dz   g|d<   nt)          |          dz   |d<   t#          |d         t$          j                  r+t)          |          dz   dt)          |          dz  z   g|d<   ndt)          |          dz  z   |d<   t#          |d         t$          j                  r)t%          j        t)          |          fdz            |d<   nt)          |          |d<   t-          t
          d          r[t#          |d         t$          j                  r)t%          j        t)          |          fdz            |d<   nt)          |          |d<   t-          t
          d          r[t#          |d         t$          j                  r)t%          j        t)          |          fdz            |d<   nt)          |          |d<   t-          t
          d          r[t#          |d         t$          j                  r)t%          j        t)          |          fdz            |d<   nt)          |          |d<   t-          t
          d           rct#          |d!         t$          j                  r+t)          |          dz   dt)          |          dz  z   g|d!<   ndt)          |          dz  z   |d!<   t-          t
          d"          rct#          |d#         t$          j                  r+t)          |          dz   dt)          |          dz  z   g|d#<   ndt)          |          dz  z   |d#<   |                                 |                                 |                    d$d           d% |D             }t           j        rOt          d&|j        d'|j
                   t          d(|d)                    t          d*t5          |                     |                     |j
        |d$z
             |                     |j        |d$z
  f           |                     t5          |          t5          |          d$z              |                     |dd	         |dd	                    d+S ),z@Checking whether removing rows several times at once is working.r   r   zRunning %s.test04d_delete...r=  r   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04d_delete.<locals>.<listcomp>  s%    ===ai"nn!F)nnnr   r$   rz   r`  rv   r9   r;   r=   r?   rF   r   r   rH   r{   r&   r|   rI   r   rA   r   r*   rK   r-   rL   r.   rM   r/   rN   r2   rO   r"   c                 6    g | ]}|d          dk     |d          S r   r
   rE  s     r   r   z0BasicTestCase.test04d_delete.<locals>.<listcomp>>  s%    >>>qy2~~1V9~~~r   r   r   r  ry   r  N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r  r   r   rI  r   r   r   r   r   r   rJ   r   r   r   r   r   rY   )rr   r   r  r   r   r   r   r  s           r   test04d_deletezBasicTestCase.test04d_delete  so    > 	L$	"""04>3JJKKK l4<55$$Y// >=U===%
"b!!! & ir2 4	 4	A DOa$78CK CKdm+CK#f+rz22 '$Qxxq1u6F#AhhF#f+rz22   !fFF#f+rz22 +!%((2+~uQxx|<F#AhhslF#g,
33 . %abq"n=G!%((2+~G#f+rz22 ' ha{1}55F#AhhFr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr<(( ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr=)) ,c'lBJ77 ,#%8U1XXKM#:#:CLL#(88CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLr?++ 3c'lBJ77 3$)!HHRKU1XXb[#ACLL#$uQxx{?CLJJLLLL 	!R    ?>e>>>> 	G*e/ekBBB+WR[9997WFFFeai000uqyl333Vc'llQ&67772277777r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     d|_        |                    d| j                   d |
                                D             }t           j        r9t          d|j        d|j                   t          dt          |                     |                     |j        d           |                     |j        d           |                     t          |          d           dS ))Checking whether all rows can be deleted.r   r   Running %s.test04e_delete...r=  r   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04e_delete.<locals>.<listcomp>X      666!F)666r   r   r   r  ry   r  r   r   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04e_delete.<locals>.<listcomp>d      7771V9777r   r   N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   r   r  r   r   rY   rr   r   r  r  s       r   test04e_deletezBasicTestCase.test04e_deleteL  s    > 	L$	"""04>3JJKKK l4<55$$Y// 76U^^%5%5666> 	F*e/ekBBB+VBZ8887VEEE!T./// 87enn&6&6777> 	G*e/ekBBB7WFFFa(((d+++Wq)))))r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     d|_        |                                 d |
                                D             }t           j        r9t          d|j        d|j                   t          dt          |                     |                     |j        d           |                     |j        d           |                     t          |          d           dS )r  r   r   r  r=  r   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04f_delete.<locals>.<listcomp>z  r  r   r   r   r  ry   r  r   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04f_delete.<locals>.<listcomp>  r  r   r   r  Nr  r  s       r   test04f_deletezBasicTestCase.test04f_deleten  s    > 	L$	"""04>3JJKKK l4<55$$Y// 76U^^%5%5666> 	F*e/ekBBB+VBZ8887VEEE 87enn&6&6777> 	G*e/ekBBB7WFFFa(((d+++Wq)))))r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }d |
                                D             }t           j        rOt          d|j        d|j                   t          d	|d
                    t          dt          |                     |j        }d|_        |                    d|dz   d           d |
                                D             }t           j        r9t          d|j        d|j                   t          dt          |                     ||dz  z
  }|                     |j        |           |                     |j        |f           |                     t          |          |           dS )z;Checking whether rows can be deleted with a step parameter.r   r   r  r=  r   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04g_delete.<locals>.<listcomp>  r  r   r   r   r  ry   r  r   r   r   r"   c                     g | ]
}|d          S rV  r
   rE  s     r   r   z0BasicTestCase.test04g_delete.<locals>.<listcomp>  r  r   Nr  )rr   r   r  r   r  outnrowss         r   test04g_deletezBasicTestCase.test04g_delete  s    > 	L$	"""04>3JJKKK l4<55$$Y// 76U^^%5%5666> 	F*e/ekBBB+VBZ8887VEEE!U1Wa((( 87enn&6&6777> 	G*e/ekBBB7WFFF5A:%h///xk222Wx00000r   c                 z   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        	                    d          }| j
        |j        j        k    rFt           j        r:t          d| j        j                   t          d| j
        |j        j                   |                     |j        j        | j
                   | j
        dk    r>t          j        | j                  r%|                     |j        j        | j                   | j        |j        j        k    rFt           j        r:t          d	| j        j                   t          d| j        |j        j                   |                     | j        |j        j                   | j        |j        j        k    rFt           j        r:t          d
| j        j                   t          d| j        |j        j                   |                     | j        |j        j                   | j        |j        j        k    rFt           j        r:t          d| j        j                   t          d| j        |j        j                   |                     | j        |j        j                   dS )zChecking tablefilters.r   r   z!Running %s.test05_filtersTable...r   r   zError in compress. Class:zself, table:r   zError in shuffle. Class:zError in bitshuffle. Class:zError in fletcher32. Class:N)r   r   r   rs   r4   r7   r   r   rl   r   r   r   r   r   which_lib_versionr   r   r   r   rr   r   s     r   test05_filtersTablez!BasicTestCase.test05_filtersTable  sD    > 	+$	"""5.)* + + + l4<55$$Y// =EM3333-t~/FGGG.$-1HIII0$-@@@=1!5dl!C!CU]2DLAAA<5=000V^0,dn.EFFF.$,0EFFFu}'<===?em6666>6/1HIII.$/5=3KLLL%-*BCCC?em6666>6/1HIII.$/5=3KLLL%-*BCCCCCr   c                 d   t          j        | j                  | _        | j                            d          }|                     |j        d           |                     |j        | j        f           |                     |j	        d           |                     |j
        | j                   d S )Nr   numpyr   )r7   r   r   rl   r   r   flavorrY   r   ndimr   )rr   objs     r   test06_attributeszBasicTestCase.test06_attributes  s    l4<00k""9--W---T%6$89991%%%D$566666r   c                 D   t          j        t          j        d                    | _        | j                            d          d         }|                     |d         d           |                     |d         d           |                     |d         d           d S )	Nzout_of_order_types.h5z/group/tabler   s   **************r   s	   ---------r   s   ....)r7   r   r   test_filenamerl   r   r   rr   r   s     r   test07_out_of_order_membersz)BasicTestCase.test07_out_of_order_members  s     l !899; ;k"">2215Q)))Q(((Q(((((r   c                 d    G d dt           j                  }t          j        | j        d          | _        | j                            | j        j        d          }| j                            |d|dt          j        | j	        t          | j                  t          | j                  | j                  d	
          }| j        j        j        | _        t           j        r,t%          dd           t%          d| j        j        z             t           j        rKt%          d|j        d|j                   t%          d|j        j                   t%          d|j                   d|j        _        d|j        _        t;          d          D ]}d|z  }|                    d|d|d|z
  t?          ||z            t?          |dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d	z   d|d	z   d|d	z   z
  t?          |d	z   |d	z   z            t?          |d	z   dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fg           |                    d|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d z   d|d z   d|d z   z
  t?          |d z   |d z   z            t?          |d z   dz            fd|dz   d|dz   d|dz   z
  t?          |dz   |dz   z            t?          |dz   dz            fd|d!z   d|d!z   d|d!z   z
  t?          |d!z   |d!z   z            t?          |d!z   dz            fd|d"z   d|d"z   d|d"z   z
  t?          |d"z   |d"z   z            t?          |d"z   dz            fg           |                     |dz   |d!z   d#d|d|d|z
  t?          ||z            t?          |dz            fg           | j        !                                 t          j        | j        d$          | _        | j        j        j        | _        | j        j"        }d% |#                                D             }t           j        r-t%          d&tI          |                     t%          d'|           g }t;          d(          D ]U}|                    d|d%                                |d|z
  t?          ||z            t?          |dz            f           Vt;          d          D ]v}d|z  }|&                    |dz              |'                    |dz   d|d%                                |d|z
  t?          ||z            t?          |dz            f           w| (                    tI          |          d(           | (                    ||           d#S ))r  c                       e Zd Z ej        dd          Z ej        d          Z ej        d          Z ej	        d          Z
 ej        d          ZdS )	7BasicTestCase.test08_AppendModifyRows.<locals>.Particler'   r   rS   r   r    r   r"   Nr  r
   r   r   r  r1    r  r   r  r=  r>  r  r   r  r  r    r  r   r   z%Running %s.test08_AppendModifyRows...rA  r   rB  rC  r  r     r^  r  r  rz   r   r   r   r"   r$   r%   r   r)   r\  r]  Nr   c                 "    g | ]}|d d          S rh   r
   r  s     r   r   z9BasicTestCase.test08_AppendModifyRows.<locals>.<listcomp>'  r  r   rZ  r[  i(
  ))r7   r  r   r   rl   r   rm   r   r   r   rX   r   r   r   r  rn   r   r   r   rs   r4   r   r   r   rG  rH  r  r  r  r   r   r   modify_rowsrp   r   r   r   r   popinsertr   r  s           r   test08_AppendModifyRowsz%BasicTestCase.test08_AppendModifyRows  s   	/ 	/ 	/ 	/ 	/r' 	/ 	/ 	/ l4<c::: (()9:FF ((9)+dm<@<N<N?CDO?T?T<@L*J *J *J 56 ) 7 7 )2> 	U$	"""9DN<SSTTT> 	4.%"3S%+FFF%u'8'JKKK#U]333 "'!? s 	u 	uAQALL....265Q<<qTUvWXYYYLL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatuw x x x LL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatuw x x x
 LL0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu0!000!a%q1uuaRSeXY\]X]M^G_G_afhilmhmrsgsatatu1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{1"1111r62R=%QRUWQW\]`b\bPcJdJdfkmnqsmsxylyfzfz{	} ~ ~ ~
 a"fa"fd6I16I6I6I1bSTfV[\]`a\aVbVbdijkopjpdqdq5r4sttttl4<c:::)2$
 
#nn..
 
 
 > 	1%s6{{333'000	!! 	e 	eA1111188::ArAvuQQRU||UZ[\`a[aUbUbcdddd 	m 	mAQAMM!b&!!!QV&91&9&9&9&@&@&B&BArAvuUVYZUZ||]bcdhici]j]j%kllllVh///+++++r   )5r4   r5   r6   	open_moder   r   rI  r   r   r   r   r   r   r   r   r   rk   r   ro   r   r  r  r  r  r  r  r(  r/  r2  r6  r8  r;  rK  rS  ro  r  r  r  r  r  r  r   r  r	  r  r  r  r   r$  r*  r.  r7  __classcell__rs   s   @r   r`   r`   p   s       I%ELJHGJJGFLH    B< B< B<H[ [ [zM9 M9 M9^"* "* "*H'* '* '*R2 2 2.%* %* %*N) ) )&) ) )(A* A* A*FC C C,C C C*K K K,K K K0* * * Z0 Z0 Z0~a0 a0 a0F~D ~D ~D@3L 3L 3Lj!9 !9 !9F}S }S }S~K, K, K,\* * *4$/ $/ $/L$/ $/ $/L$/ $/ $/L/ / /Ba8 a8 a8F *  *  *D *  *  *D"1 "1 "1HD D D@7 7 7	) 	) 	)P, P, P, P, P, P, P,r   r`   c                       e Zd ZdZdS )BasicWriteTestCase
BasicWriteN)r4   r5   r6   r   r
   r   r   r<  r<  ;  s        EEEr   r<  c                       e Zd ZdZeZdS )OldRecordBasicWriteTestCaseOldRecordBasicWriteNr4   r5   r6   r   rQ   r   r
   r   r   r?  r?  ?  s        !EFFFr   r?  c                   *    e Zd ZdZeZdZdZdZdZ	dZ
dS )DictWriteTestCase	DictWrite   r    r   rz   N)r4   r5   r6   r   RecordDescriptionDictr   r   r   startr+  stepr
   r   r   rC  rC  D  s1        E"FEJEDDDDr   rC  c                      e Zd Zd Zd                    d          Zd                    d          Z eed          r*e	                    d           e	                    d            eed          r*e	                    d           e	                    d	            eed
          r*e	                    d           e	                    d            eed          r*e	                    d           e	                    d            eed          r*e	                    d           e	                    d            e
j        d                    e                    Zee_        dS )NumPyDTWriteTestCasea4,i4,i2,2f8,f4,i2,a1,b1,c8,c16,2var1,var2,var3,var4,var5,var6,var7,var8,var9,var10r*   f2rK   r-   f12rL   r.   f16rM   r/   c24rN   r2   c32rO   N)r4   r5   r6   r   splitformatsnamesrJ   r7   r   r   r}   joinr   r
   r   r   rJ  rJ  P  su       "E/55c::G@FFsKKEwr<   tWwr<   uWwr=!! uWwr?## uWwr?## uWRXchhw''((FFLLLr   rJ  c                      e Zd ZdZd                    d          Zd                    d          Z eed          r*e	                    d           e	                    d            eed          r*e	                    d	           e	                    d
            eed          r*e	                    d           e	                    d            eed          r*e	                    d           e	                    d            eed          r*e	                    d           e	                    d           e
j                            ddd                    e          e          ZdS )RecArrayOneWriteTestCaseRecArrayOneWriterK  rL  rM  r*   rN  rK   r-   rO  rL   r.   rP  rM   r/   rQ  rN   r2   rR  rO   Nr   rY   rT  rU  )r4   r5   r6   r   rS  rT  rU  rJ   r7   r   r   r   r   rV  r   r
   r   r   rX  rX  i  s       E/55c::G@FFsKKEwr<   tWwr<   uWwr=!! uWwr?## uWwr?## uWV\\Asxx00  ? ?FFFr   rX  c                      e Zd ZdZdZdZd                    d          Zd                    d          Z e	e
d          r*e                    d           e                    d	            e	e
d
          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d           ej                            ddd                    e          e          ZdS )RecArrayTwoWriteTestCaseRecArrayTwoWriterc   r   rK  rL  rM  r*   rN  rK   r-   rO  rL   r.   rP  rM   r/   rQ  rN   r2   rR  rO   NrZ  r4   r5   r6   r   r   r   rS  rT  rU  rJ   r7   r   r   r   r   rV  r~   r
   r   r   r\  r\    s       ELL/55c::G@FFsKKEwr<   tWwr<   uWwr=!! uWwr?## uWwr?## uWV\\Asxx00 " ? ?NNNr   r\  c                      e Zd ZdZdZdZd                    d          Zd                    d          Z e	e
d          r*e                    d           e                    d	            e	e
d
          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d           ej                            ddd                    e          e          ZdS )RecArrayThreeWriteTestCaseRecArrayThreeWriterc   r   rK  rL  rM  r*   rN  rK   r-   rO  rL   r.   rP  rM   r/   rQ  rN   r2   rR  rO   NrZ  r^  r
   r   r   r`  r`    s        ELL/55c::G@FFsKKEwr<   tWwr<   uWwr=!! uWwr?## uWwr?## uWV\\Asxx00 " ? ?NNNr   r`  c                      e Zd ZdZdZdZd                    d          Zd                    d          Z e	e
d          r*e                    d           e                    d	            e	e
d
          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d            e	e
d          r*e                    d           e                    d           ej                            ddd                    e          ed          ZdS )RecArrayAlignedWriteTestCasera  rc   r   rK  rL  rM  r*   rN  rK   r-   rO  rL   r.   rP  rM   r/   rQ  rN   r2   rR  rO   NT)rY   rT  rU  alignedr^  r
   r   r   rc  rc    s        ELL/55c::G@FFsKKEwr<   tWwr<   uWwr=!! uWwr?## uWwr?## uWV\\Asxx00t " M MNNNr   rc  z'BLOSC compression library not availablec                       e Zd ZdZdZdZdS )CompressBloscTablesTestCaseCompressBloscTablesr$   bloscNr4   r5   r6   r   r   r   r
   r   r   rf  rf             "EHGGGr   rf  z(BLOSC2 compression library not availablec                       e Zd ZdZdZdZdS )CompressBlosc2TablesTestCaseCompress2BloscTablesr$   blosc2Nri  r
   r   r   rl  rl    s         #EHGGGr   rl  c                       e Zd ZdZdZdZdZdS )"CompressBloscShuffleTablesTestCaserg  r   rh  Nr4   r5   r6   r   r   r   r   r
   r   r   rp  rp    $         "EHGGGGr   rp  c                       e Zd ZdZdZdZdZdS )#CompressBlosc2ShuffleTablesTestCaserg  r   rn  Nrq  r
   r   r   rt  rt    s$         "EHGGGGr   rt  c                   "    e Zd ZdZdZdZdZdZdS )%CompressBloscBitShuffleTablesTestCaseCompressBloscBitShuffleTablesr   r   blosc:blosclzNr4   r5   r6   r   r   r   r   r   r
   r   r   rv  rv    s)         ,EHGJGGGr   rv  c                   "    e Zd ZdZdZdZdZdZdS )&CompressBlosc2BitShuffleTablesTestCaseCompressBloscBit2ShuffleTablesr   r   blosc2:blosclzNry  r
   r   r   r{  r{    s)         -EHGJGGGr   r{  c                       e Zd ZdZdZdZdZdS )"CompressBloscBloscLZTablesTestCaseCompressBloscLZTablesr   rx  Nrq  r
   r   r   r  r    s$         $EHGGGGr   r  c                       e Zd ZdZdZdZdZdS )#CompressBlosc2BloscLZTablesTestCaser  r   r}  Nrq  r
   r   r   r  r    s$         $EHGGGGr   r  lz4zlz4 requiredc                       e Zd ZdZdZdZdZdS )CompressBloscLZ4TablesTestCaseCompressLZ4Tablesr   z	blosc:lz4Nrq  r
   r   r   r  r    s$        
  EHGGGGr   r  c                       e Zd ZdZdZdZdZdS )CompressBlosc2LZ4TablesTestCaser  r   z
blosc2:lz4Nrq  r
   r   r   r  r  %  s$        
  EHGGGGr   r  c                       e Zd ZdZdZdZdZdS ) CompressBloscLZ4HCTablesTestCaseCompressLZ4HCTablesr   zblosc:lz4hcNrq  r
   r   r   r  r  0  s$        
 "EHGGGGr   r  c                       e Zd ZdZdZdZdZdS )!CompressBlosc2LZ4HCTablesTestCaser  r   zblosc2:lz4hcNrq  r
   r   r   r  r  ;  s$        
 "EHGGGGr   r  snappyzsnappy requiredc                       e Zd ZdZdZdZdZdS )!CompressBloscSnappyTablesTestCaseCompressSnappyTablesr   zblosc:snappyNrq  r
   r   r   r  r  F  s$        
 #EHGGGGr   r  re   zzlib requiredc                       e Zd ZdZdZdZdZdS )CompressBloscZlibTablesTestCaseCompressZlibTablesr   z
blosc:zlibNrq  r
   r   r   r  r  Q  $        
 !EHGGGGr   r  c                   "    e Zd ZdZdZdZdZdZdS ) CompressBlosc2ZlibTablesTestCaser  r"   r   r   zblosc2:zlibNry  r
   r   r   r  r  \  s)        
 !EHGJGGGr   r  zstdzzstd requiredc                       e Zd ZdZdZdZdZdS )CompressBloscZstdTablesTestCaseCompressZstdTablesr   z
blosc:zstdNrq  r
   r   r   r  r  h  r  r   r  c                       e Zd ZdZdZdZdZdS ) CompressBlosc2ZstdTablesTestCaser  r   zblosc2:zstdNrq  r
   r   r   r  r  s  s$        
 !EHGGGGr   r  z%LZO compression library not availablec                       e Zd ZdZdZdZdS )CompressLZOTablesTestCaseCompressLZOTablesr   lzoNri  r
   r   r   r  r  ~  s          EHGGGr   r  c                       e Zd ZdZdZdZdZdS ) CompressLZOShuffleTablesTestCaser  r   r  Nrq  r
   r   r   r  r    s$          EHGGGGr   r  z'BZIP2 compression library not availablec                       e Zd ZdZdZdZdS )CompressBzip2TablesTestCaseCompressBzip2Tablesr   bzip2Nri  r
   r   r   r  r    rj  r   r  c                       e Zd ZdZdZdZdZdS )"CompressBzip2ShuffleTablesTestCaser  r   r  Nrq  r
   r   r   r  r    rr  r   r  c                       e Zd ZdZdZdZdS )CompressZLIBTablesTestCaseCompressOneTablesr   re   Nri  r
   r   r   r  r    s        EHGGGr   r  c                       e Zd ZdZdZdZdZdS )!CompressZLIBShuffleTablesTestCaser  r   re   Nrq  r
   r   r   r  r    s"        EHGGGGr   r  c                       e Zd ZdZdZdZdZdS )Fletcher32TablesTestCaseFletcher32Tablesr   r   re   N)r4   r5   r6   r   r   r   r   r
   r   r   r  r    s"        EJGGGGr   r  c                   "    e Zd ZdZdZdZdZdZdS )AllFiltersTablesTestCaseAllFiltersTablesr   re   N)r4   r5   r6   r   r   r   r   r   r
   r   r   r  r    s'        EHJGGGGr   r  c                       e Zd ZdZdZeZdS )CompressTwoTablesTestCaseCompressTwoTablesr   N)r4   r5   r6   r   r   rF  r   r
   r   r   r  r    s        EH"FFFr   r  c                       e Zd ZdZdZdZdS )BigTablesTestCase	BigTables'  rc   N)r4   r5   r6   r   r   rI  r
   r   r   r  r    s        E
 LJJJr   r  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )"SizeOnDiskInMemoryPropertyTestCasec                     t                                                       d| _        t          j        dgdz  g g           j        | _        d| _        d S )N)  i4rz   ip  )rj   rk   r  r   format_parserr}   hdf_overheadrq   s    r   rk   z(SizeOnDiskInMemoryPropertyTestCase.setUp  sJ     #%tfrk2r::@
 r   c                     t          j        |d          }| j                            dd| j        || j                  | _        d S )Nrh  )r   r   /	sometable)r   r  )r7   r   rl   r   r}   r  r   )rr   r   r   s      r   r   z/SizeOnDiskInMemoryPropertyTestCase.create_table  sJ    *y'BBB[--c;
6=9= . J J


r   c                     d}|                      |           |                     | j        j        d           |                     | j        j        d           d S Nr   )r   r   r   size_on_disksize_in_memoryrr   r   s     r   test_zero_lengthz3SizeOnDiskInMemoryPropertyTestCase.test_zero_length  sW    	)$$$0!4442A66666r   c                 @   d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             |                     | j        j        d           |                     | j        j        d           d S )Nr   rz    	r   r   r   r   r   r  r   r  r  r  s     r   test_no_compression_one_appendzASizeOnDiskInMemoryPropertyTestCase.test_no_compression_one_append  s    	)$$$
5r++,tq/AABFGGG02DEEE24FGGGGGr   c                    d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             | j                            t          t	          d                    g| j        d         z  dz             |                     | j        j        d           |                     | j        j        d           d S )Nr   rz   r"   r  r  r  s     r   $test_no_compression_multiple_appendszGSizeOnDiskInMemoryPropertyTestCase.test_no_compression_multiple_appends  s    	)$$$
5r++,tq/AAAEFFF
5r++,tq/AAAEFFF02DEEE24FGGGGGr   c                    d}|                      |           | j                            t          t	          d                    g| j        d         z  dz             t          | j                                                  j	        }| 
                    t          | j        j        |z
            | j        k               |                     | j        j        d           |                     | j        j        | j        j                   d S )Nr   rz   r   r  )r   r   r   r   r   r  r   r   statst_sizer   absr  r  r   r  
assertLess)rr   r   	file_sizes      r   test_with_compressionz8SizeOnDiskInMemoryPropertyTestCase.test_with_compression  s    	)$$$
5r++,tq/AABFGGG&&++--5	
')3448II	K 	K 	K24FGGG
/1JKKKKKr   )
r4   r5   r6   rk   r   r  r  r  r  r9  r:  s   @r   r  r    s        ! ! ! ! !J J J7 7 7H H HH H HL L L L L L Lr   r  c                        e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )NonNestedTableReadTestCasec                    t                                                       t          j        dgdz  g g           j        | _        | j                            dd| j                  | _        d| _        | 	                                 d S )Nr  rz   r  r   rc   )
rj   rk   r   r  r}   rl   r   r   rY   populate_filerq   s    r   rk   z NonNestedTableReadTestCase.setUp	  so    %tfrk2r::@
[--c7DJGG

r   c                    t          j        | j        | j                  | _        t          | j                  D ]P\  }}|t          | j        j        j                  z  }t          | j        j        j        |          D ]
\  }}|||<   Q| j        	                    | j                   | 
                    t          | j                  t          | j                             d S rh   )r   zerosrY   r}   r   r   r   rU  r   r   r   )rr   row_numr   rG  valuer   s         r   r  z(NonNestedTableReadTestCase.populate_file	  s    Xdj$*55
%dj11 	! 	!LGSc$*"2"8999E'
(8(>FF ! !
s C!
$*%%%TZ#dj//:::::r   c                     | j                                         }t          j                            || j                   d S rh   r   readr   r%  r&  r   rr   outputs     r   test_read_allz(NonNestedTableReadTestCase.test_read_all	  s3    ""

%%fdj99999r   c                     | j                             dd          }t          j                            || j        dd                    d S )Nr   3   r  r  s     r   test_read_slice1z+NonNestedTableReadTestCase.test_read_slice1	  s@    B''

%%fdj2.>?????r   c                     | j                             d          }t          j                            || j        d                    d S )Nf1fieldr  r  s     r   "test_read_all_rows_specified_fieldz=NonNestedTableReadTestCase.test_read_all_rows_specified_field	  s<    t,,

%%fdj.>?????r   c                     | j                             ddd          }t          j                            || j        d         dd                    d S )Nr   r  r  r  r  r  s     r    test_read_slice1_specified_fieldz;NonNestedTableReadTestCase.test_read_slice1_specified_field 	  sI    Bd33

%%fdj.>qt.DEEEEEr   c                 L    t          j         j         j                  d j        _                             t           fd           	  j                                       d S # t          $ r.} 	                    dt          |                     Y d }~d S d }~ww xY w)Npythonc                  :    j                                        S Noutr   r  r  rr   s   r   <lambda>zONonNestedTableReadTestCase.test_out_arg_with_non_numpy_flavor.<locals>.<lambda>'	  s    TZ___-H-H r   r  z#Optional 'out' argument may only be)r   emptyrY   r}   r   r'  r  r  r  assertInr   rr   excr  s   ` @r   "test_out_arg_with_non_numpy_flavorz=NonNestedTableReadTestCase.test_out_arg_with_non_numpy_flavor$	  s    $*dj11$
)%H%H%H%H%HIII	KJOOO''''' 	K 	K 	KMM?SJJJJJJJJJ	Ks   A+ +
B#5#BB#c                     t          j        | j        | j                  }| j                            |           t           j                            || j                   d S r  )	r   r  rY   r}   r   r  r%  r&  r   r  s     r   test_read_all_out_argz0NonNestedTableReadTestCase.test_read_all_out_arg-	  sM    $*dj11
F###

%%fdj99999r   c                     t          j        d| j                  }| j                            dd|           t           j                            || j        dd                    d S )N)r  r   r  r  r   r  r}   r   r  r%  r&  r   r  s     r   test_read_slice1_out_argz3NonNestedTableReadTestCase.test_read_slice1_out_arg2	  sX    &$*--
26***

%%fdj2.>?????r   c                     t          j        | j        d          }| j                            d|           t           j                            || j        d                    d S )Nr  r  r  r  )r   r  rY   r   r  r%  r&  r   r  s     r   *test_read_all_rows_specified_field_out_argzENonNestedTableReadTestCase.test_read_all_rows_specified_field_out_arg7	  sR    $*d++
d///

%%fdj.>?????r   c                     t          j        dd          }| j                            ddd|           t           j                            || j        d         dd                    d S )N)?   r  r   r  r  r  r   r  r   r  r%  r&  r   r  s     r   (test_read_slice1_specified_field_out_argzCNonNestedTableReadTestCase.test_read_slice1_specified_field_out_arg<	  s]    &$''
2Tv666

%%fdj.>qt.DEEEEEr   c                    t          j        d| j                  }t           j                            ddd          |d<   |                                }| j                            |dd                    t           j        	                    |dd         | j
                   t           j        	                    |dd          |dd                     d S )N)r2  r   r  f0rc   r  )r   r  r}   randomrandintcopyr   r  r%  r&  r   )rr   r  output_origs      r   test_read_all_out_arg_slicedz7NonNestedTableReadTestCase.test_read_all_out_arg_slicedA	  s    '4:..y((FG<<tkkmm
F1S5M***

%%fQsUmTZ@@@

%%fSTTlK4EFFFFFr   c                     t          j        d| j                  }| j                            ddd|           t           j                            || j        ddd                    d S )Nr  r   rc   r   r  r  r  s     r   6test_all_fields_non_contiguous_slice_contiguous_bufferzQNonNestedTableReadTestCase.test_all_fields_non_contiguous_slice_contiguous_bufferI	  s\    &$*--
3v...

%%fdj3q.ABBBBBr   c                     t          j        dd          }| j                            dddd|           t           j                            || j        d         ddd                    d S )Nr  r  r   rc   r   f3r  r
  r  s     r   ;test_specified_field_non_contiguous_slice_contiguous_bufferzVNonNestedTableReadTestCase.test_specified_field_non_contiguous_slice_contiguous_bufferN	  sa    &$''
36:::

%%fdj.>qQw.GHHHHHr   c                     t          j        d| j                  }|ddd         }|                     t          d          5  | j                            dddd |           d d d            d S # 1 swxY w Y   d S )Nr  r   rc   r   output array not C contiguousr  )r   r  r}   assertRaisesRegex
ValueErrorr   r  )rr   r  output_slices      r   %test_all_fields_non_contiguous_bufferz@NonNestedTableReadTestCase.test_all_fields_non_contiguous_bufferS	  s    '4:..aAg##J$CE E 	E 	EJOOAsAT|ODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es    A..A25A2c           	      P   t          j        dd          }|ddd         }|                     t          | j        j        dddd|           	 | j                            dddd|           d S # t          $ r.}|                     dt          |                     Y d }~d S d }~ww xY w)	Nr  r  r   rc   r   r  r  r  )r   r  r  r  r   r  r   r   )rr   r  r  r  s       r   *test_specified_field_non_contiguous_bufferzENonNestedTableReadTestCase.test_specified_field_non_contiguous_buffer[	  s    '4((aAg*djoq#q$&	( 	( 	(	HJOOAsAT|ODDDDD 	H 	H 	H<c#hhGGGGGGGGG	Hs   A- -
B%7#B  B%c                 *    t          j        d j                                       t           fd           	  j                                       d S # t          $ r.}                     dt          |                     Y d }~d S d }~ww xY w)Nc   c                  :    j                                        S r  r  r  s   r   r  zMNonNestedTableReadTestCase.test_all_fields_buffer_too_small.<locals>.<lambda>g	      djoo&o.I.I r   r  output array size invalid, got	r   r  r}   r  r  r   r  r  r   r  s   ` @r    test_all_fields_buffer_too_smallz;NonNestedTableReadTestCase.test_all_fields_buffer_too_smalle	  s    &$*--*&I&I&I&I&IJJJ	FJOOO''''' 	F 	F 	FMM:CHHEEEEEEEEE	F   A 
B$#BBc                 "    t          j        dd                               t           fd           	  j                            d           d S # t          $ r.}                     dt          |                     Y d }~d S d }~ww xY w)Nr"  r  c                  <    j                             d           S )Nf5r  r  r  s   r   r  zRNonNestedTableReadTestCase.test_specified_field_buffer_too_small.<locals>.<lambda>p	  s    $*//&/"I"I r   r,  r  r&  )r   r  r  r  r   r  r  r   r  s   ` @r   %test_specified_field_buffer_too_smallz@NonNestedTableReadTestCase.test_specified_field_buffer_too_smallm	  s    &$''*IIIII	K 	K 	K	FJOO$FO33333 	F 	F 	FMM:CHHEEEEEEEEE	Fs   A 
B #B		Bc                 *    t          j        d j                                       t           fd           	  j                                       d S # t          $ r.}                     dt          |                     Y d }~d S d }~ww xY w)N)rv  c                  :    j                                        S r  r  r  s   r   r  zMNonNestedTableReadTestCase.test_all_fields_buffer_too_large.<locals>.<lambda>x	  r%  r   r  r&  r'  r  s   ` @r    test_all_fields_buffer_too_largez;NonNestedTableReadTestCase.test_all_fields_buffer_too_largev	  s    '4:..*&I&I&I&I&IJJJ	FJOOO''''' 	F 	F 	FMM:CHHEEEEEEEEE	Fr)  )r4   r5   r6   rk   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r(  r-  r0  r9  r:  s   @r   r  r  	  sw           ; ; ;: : :@ @ @@ @ @F F FK K K: : :
@ @ @
@ @ @
F F F
G G GC C C
I I I
E E EH H HF F FF F FF F F F F F Fr   r  c                   H     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
 xZS )	TableReadByteorderTestCasec                     t                                                       t          j        | _        dddt          j                 | _        ddd| _        d S )Nr   r   r   <>)rj   rk   r   r   system_byteorderother_byteorderreverse_byteordersrq   s    r   rk   z TableReadByteorderTestCase.setUp	  sR     #H .  ..1m =-0"="=r   c                    | j         |         dz   }t          j        |dgg g           j        }| j                            dd||          | _        t          j        ddgg g           j        }t          j        d|          | _        t          j	        d          | j        d<   d	| j        d
<   | j        
                    | j                   d S )Nr  a1r  r   )r   r  rz   r     ar  )r8  r   r  r}   rl   r   r   r  input_arrayaranger   )rr   r   table_dtype_codetable_dtypeinput_dtypes        r   r   z'TableReadByteorderTestCase.create_table	  s    29=D&(8$'?RHHN[--c7K8A . C C
&d|R<<B8FK88!#2!%
$*+++++r   c                 \   |                      | j                   | j                                        }|                     t
          j        j        |d         j        j	                 | j                   t          j                            |d         t          j        d                     d S Nr  rz   )r   r6  r   r  r   r7   utils
byteordersr}   r   r   r%  r&  r=  r  s     r   +test_table_system_byteorder_no_out_argumentzFTableReadByteorderTestCase.test_table_system_byteorder_no_out_argument	  s    $/000"",VD\-?-IJ.	0 	0 	0

%%fTlBIbMMBBBBBr   c                 \   |                      | j                   | j                                        }|                     t
          j        j        |d         j        j	                 | j
                   t          j                            |d         t          j        d                     d S rB  )r   r7  r   r  r   r7   rC  rD  r}   r   r6  r   r%  r&  r=  r  s     r   *test_table_other_byteorder_no_out_argumentzETableReadByteorderTestCase.test_table_other_byteorder_no_out_argument	  s    $.///"",VD\-?-IJ.	0 	0 	0

%%fTlBIbMMBBBBBr   c                    |                      | j                   | j        | j                 dz   }t          j        |dgg g           j        }t          j        d|          }| j                            |           | 	                    t          j        j        |d         j        j                 | j                   t          j                            |d         t          j        d                     d S Nr  r:  r  r  r  rz   )r   r6  r8  r   r  r}   r  r   r  r   r7   rC  rD  r   r%  r&  r=  rr   out_dtype_code	out_dtyper  s       r   9test_table_system_byteorder_out_argument_system_byteorderzTTableReadByteorderTestCase.test_table_system_byteorder_out_argument_system_byteorder	  s    $/00001FG$N$nd%;RDDJ	&),,
F###,VD\-?-IJ.	0 	0 	0

%%fTlBIbMMBBBBBr   c                    |                      | j                   | j        | j                 dz   }t	          j        |dgg g           j        }t	          j        d|          }| j        	                    |           | 
                    t          j        j        |d         j        j                 | j                   t          j                            |d         t	          j        d                     d S rI  )r   r7  r8  r6  r   r  r}   r  r   r  r   r7   rC  rD  r   r%  r&  r=  rJ  s       r   8test_table_other_byteorder_out_argument_system_byteorderzSTableReadByteorderTestCase.test_table_other_byteorder_out_argument_system_byteorder	  s    $.///01FG$N$nd%;RDDJ	&),,
F###,VD\-?-IJ.	0 	0 	0

%%fTlBIbMMBBBBBr   c                                            j                    j         j                 dz   }t	          j        |dgg g           j        }t	          j        d|                               t           fd           	  j
                                       d S # t          $ r.}                     dt          |                     Y d }~d S d }~ww xY w)Nr  r:  r  c                  :    j                                        S r  r  r  s   r   r  zeTableReadByteorderTestCase.test_table_system_byteorder_out_argument_other_byteorder.<locals>.<lambda>	  r%  r   r  #array must be in system's byteorder)r   r6  r8  r7  r   r  r}   r  r  r  r   r  r  r   rr   rK  rL  r  r  s   `   @r   8test_table_system_byteorder_out_argument_other_byteorderzSTableReadByteorderTestCase.test_table_system_byteorder_out_argument_other_byteorder	  s    $/00001EFM$nd%;RDDJ	&),,*&I&I&I&I&IJJJ	KJOOO''''' 	K 	K 	KMM?SJJJJJJJJJ	K   B! !
C+#CCc                                            j                    j         j                 dz   }t          j        |dgg g           j        }t          j        d|                               t           fd           	  j	        
                               d S # t          $ r.}                     dt          |                     Y d }~d S d }~ww xY w)Nr  r:  r  c                  :    j                                        S r  r  r  s   r   r  zdTableReadByteorderTestCase.test_table_other_byteorder_out_argument_other_byteorder.<locals>.<lambda>	  r%  r   r  rR  )r   r7  r8  r   r  r}   r  r  r  r   r  r  r   rS  s   `   @r   7test_table_other_byteorder_out_argument_other_byteorderzRTableReadByteorderTestCase.test_table_other_byteorder_out_argument_other_byteorder	  s    $.///01EFM$nd%;RDDJ	&),,*&I&I&I&I&IJJJ	KJOOO''''' 	K 	K 	KMM?SJJJJJJJJJ	KrU  )r4   r5   r6   rk   r   rE  rG  rM  rO  rT  rX  r9  r:  s   @r   r2  r2  	  s        > > > > >	, 	, 	,C C CC C CC C CC C C	K 	K 	K	K 	K 	K 	K 	K 	K 	Kr   r2  c                        e Zd ZdZdZeZdZdZdZ	dZ
dZdZdZeZdZdZ fd	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z" xZ#S )BasicRangeTestCasera   rb   rf   rc   r   r   rd   r    c                     t                                                       | j        j        | _        |                                  | j                                         d S rh   ri   rq   s    r   rk   zBasicRangeTestCase.setUp	  rt   r   c           	         | j         }t          d          D ]}t          j        | j        | j                  }| j                            |dt          |          z   | j	        | j
        || j                  }|j        }t          | j                  D ]}d| j        |z
  z  |d<   |d         d         |d<   ||d	<   || j        z  |d
<   t          |d         t          j                  r%t#          |          t#          ||z            g|d<   nt#          |          |d<   t          |d         t          j                  r)t          j        t#          |          fdz            |d<   nt#          |          |d<   |d
         dz	  dz  |d
         dz  dz  z   |d<   |                                 |                                 | j                            |dt          |          z             }|}d S Nr    )r   r   r   )r   r   r   rv   r9   ry   rD   r;   r=   r?   rA   r   r   rw   rx   rC   r   rn   r   r7   r   r   r   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   r   r   r   r   r   r   r   s           r   ro   zBasicRangeTestCase.populateFile	  s   q '	 '	A*t}-1\; ; ;KK,,UGCFFN-1[37:5@:>:K	 - M ME )C 4,--  $(9A(=>F!&k"oFF$-/Fc&k2:66 +#(88U1q5\\":CKK"'((CKc&k2:66 +"$(E!HH;q="9"9CKK"'((CK &kQ&$.CK14D3NO F 

 KKMMM[--eWSVV^DDFEEO'	 '	r   c           
      D    t          j         j        d           _         j                            d          } j        |_        t           j         j         j	                  
                    |j                  }t          t          t          |                     } j        r|                     j         j         j	                  }g }t          t          |                    D ]}|d         |          j        k     r-d j	        k     r"|                    |d         |                    F|d         |          j        k    r,d j	        k    r!|                    |d         |                    n: j        r|                     j         j         j	        d          }g }t          t          |                    D ]q}||          j        k     r'd j	        k     r|                    ||                    :||          j        k    r&d j	        k    r|                    ||                    rn{d j	        k     r3 fd|                     j         j         j	                  D             }n=d j	        k    r2 fd|                     j         j         j	                  D             } j        dk     r j         j        z   }n j        } j         j        s j        r|dz   }	n* j        }	n" j        dk     r j         j        z   }	n j        }	 j        |	k     r j        }	t*          j        r9t/          d|j        d	|j                   |r j        rt/          d
|d                    ng j        rt/          d|d                    nIt          |                     j         j         j	                            d         }
t/          d|
           t/          dt          |                     t/          d|           t/          dt          t          ||	 j	                                       t/          d j         j         j	                   t/          d||	 j	                                        |t          t          ||	 j	                                        j        s։ j        s||	k     rd j	        k     rۈ fd|                     j         j         j	                  D             d         }
 j         j        k     rO                     |
d         t          t           j         j         j	                            d                    n&                     |
d         t          t          ||	 j	                            d                    n||	k    rd j	        k    rш fd|                     j         j         j	                  D             d         }
 j         j        k     rJ                     |
t          t           j         j        pd j	                            d                    n?                     |
t          t          ||	pd j	                            d                     j                                         d S )Nr   r   r;   r   c                 B    g | ]}|d          j         k     |d          S rV  r   r   r   rr   s     r   r   z2BasicRangeTestCase.check_range.<locals>.<listcomp>,
  <       $' 6{TZ// K 0//r   c                 B    g | ]}|d          j         k    |d          S rV  rb  rc  s     r   r   z2BasicRangeTestCase.check_range.<locals>.<listcomp>3
  rd  r   r   r   r   z"Last record *read* in recarray ==>ry   zLast value *read* in getCol ==>z%Last record *read* in table range ==>z$Total number of selected records ==>zSelected records:
z#Selected records should look like:
zstart, stop, step ==>zstartr, stopr, step ==>c                 6    g | ]}|d          j         k     |S rV  rb  r   r   rr   s     r   r   z2BasicRangeTestCase.check_range.<locals>.<listcomp>c
  s3     2 2 2QF)dj00 000r   c                 B    g | ]}|d          j         k    |d          S rV  rb  rg  s     r   r   z2BasicRangeTestCase.check_range.<locals>.<listcomp>o
  s7     2 2 2QF)dj00 y000r   )r7   r   r   rl   r   r   slicerG  r+  rH  indicesr   r   r   r   checkrecarrayr  r   checkgetColr   r   r   r   r   r   r   rp   )rr   r   resrange	reslengthrecarrayr  nreccolumnstartrstoprr   s   `          r   check_rangezBasicRangeTestCase.check_range
  s   l4<55$$Y//?TY	::BB5;OOUH-..//	  	zz$*diCCHFc(mm,, : :F#D)DJ661ty==MM(6"24"89999f%d+dj88Q]]MM(6"24"8999	:
  	ZZ
DIty&IIFFc&kk** 0 0$<$*,,TYMM&,////D\DJ..1ty==MM&,///	0 49}}   +0>>$*:>):>),E ,E   TY   +0>>$*:>):>),E ,E   :>>&3FFZF9! #T%5 #
 
Y]]%	1EEIE:JE> 	G*e/ekBBB H% H>MMMM% H;VBZHHHHtz49diHHJ JJLNCA3GGG8#f++FFF'0008uVUDI66779 9 9)4:ty$)LLL+VUDIFFFeFE49&E&E!F!FGGG" 	Hd&6 	H~~!di--2 2 2 2%..TY15#< #< 2 2 2246 : 111$$FU4:ty$)DDEEbIK K K K $$FU65$)<<==bAC C C C %A	MM2 2 2 2%..TY9=+D +D 2 2 2235 : 111$$U4:tyB	JJKKANP P P P $$U65;B	BBCCAFH H H
 	r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        d| _        | j        | _	        d| _
        |                                  dS )	*Checking ranges in table iterators (case1)r   r   zRunning %s.test01_range...rE  r    r   r   Nr   r   r   rs   r4   r   r   rG  r   r+  rH  rt  rr   s    r   test01_rangezBasicRangeTestCase.test01_range~
  sx     > 	J$	""".1HHIII 

%		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        | j        dz
  | _        d| _	        d| _
        |                                  dS )	rv  r   r   zRunning %s.test01a_range...rE  r    r   Nr  )r   r   r   rs   r4   r   r   r   rG  r+  rH  rt  rx  s    r   test01a_rangez BasicRangeTestCase.test01a_range
  s}     > 	K$	"""/$.2IIJJJ 
&*
		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        d| _        | j        | _	        d| _
        |                                  dS )	z*Checking ranges in table iterators (case2)r   r   zRunning %s.test02_range...rE     r\  r    Nrw  rx  s    r   test02_rangezBasicRangeTestCase.test02_range
  sx     > 	J$	""".1HHIII 

%		r   c                     t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | _	        d| _
        |                                  dS )z*Checking ranges in table iterators (case3)r   r   zRunning %s.test03_range...r\  r   rz   Nr   r   r   rs   r4   r   r   r   rG  r+  rH  rt  rx  s    r   test03_rangezBasicRangeTestCase.test03_range
  {     > 	J$	""".1HHIII &

%		r   c                     t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | _	        d| _
        |                                  dS )z*Checking ranges in table iterators (case4)r   r   zRunning %s.test04_range...r\  r   Nr  rx  s    r   test04_rangezBasicRangeTestCase.test04_range
  r  r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        d| _        | j        | _	        d| _
        |                                  dS )	z*Checking ranges in table iterators (case5)r   r   zRunning %s.test05_range...rE  rz   r   r\  Nrw  rx  s    r   test05_rangezBasicRangeTestCase.test05_range
  sx     > 	J$	""".1HHIII 

%		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        d| _        | j        | _	        d| _
        |                                  dS )z*Checking ranges in table iterators (case6)r   r   zRunning %s.test06_range...r    r   rz   Nrw  rx  s    r   test06_rangezBasicRangeTestCase.test06_range
  sx     > 	J$	""".1HHIII 

%		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        | j        | _        | j        | _        d| _	        | 
                                 dS )z*Checking ranges in table iterators (case7)r   r   zRunning %s.test07_range...r   r    rz   Nr   r   r   rs   r4   r   r   rG  r+  rH  rt  rx  s    r   test07_rangezBasicRangeTestCase.test07_range
  sy     > 	J$	""".1HHIII 
Z
J		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        | j        dz   | _        | j        | _        d| _	        | 
                                 dS )z*Checking ranges in table iterators (case8)r   r   zRunning %s.test08_range...r   r    r   Nr  rx  s    r   test08_rangezBasicRangeTestCase.test08_range
  s}     > 	J$	""".1HHIII 
Z!^
J		r   c                     t           j        r,t          dd           t          d| j        j        z             d| _        d| _        d| _        d| _        d| _	        | 
                                 dS )	z*Checking ranges in table iterators (case9)r   r   zRunning %s.test09_range...rc   r    r   r   Nr  rx  s    r   test09_rangezBasicRangeTestCase.test09_range  su     > 	J$	""".1HHIII 

		r   c                 .   t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | j        z   | _	        d| _
        | j        | _        d| _        |                                  dS )	z+Checking ranges in table iterators (case10)r   r   zRunning %s.test10_range...r"   r  r   Nr   r   r   rs   r4   r   r   r   rG  rr  r+  rs  rH  rt  rx  s    r   test10_rangezBasicRangeTestCase.test10_range  s     > 	J$	""".1HHIII &

'$*4	&
	r   c                 .   t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | j        z   | _	        d| _
        | j        | _        d| _        |                                  dS )	z,Checking ranges in table iterators (case10a)r   r   zRunning %s.test10a_range...r"   r  r   r   Nr  rx  s    r   test10a_rangez BasicRangeTestCase.test10a_range0  s     > 	K$	"""/$.2IIJJJ &

'$*4	&
	r   c                 >   t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | j        z   | _	        d| _
        | j        | j
        z   | _        d| _        |                                  dS )	z+Checking ranges in table iterators (case11)r   r   zRunning %s.test11_range...r"   r  r  r   Nr  rx  s    r   test11_rangezBasicRangeTestCase.test11_rangeB       > 	J$	""".1HHIII &

'$*4	&2
	r   c                 >   t           j        r,t          dd           t          d| j        j        z             | j        | _        d| _        d| _        | j        | j        z   | _	        d| _
        | j        | j
        z   | _        d| _        |                                  dS )	z+Checking ranges in table iterators (case12)r   r   zRunning %s.test12_range...r"   ry   r  r   Nr  rx  s    r   test12_rangezBasicRangeTestCase.test12_rangeT  r  r   c                    t           j        r,t          dd           t          d| j        j        z             d| _        	 |                                  nj# t          $ r] t           j        r5t          j	                    \  }}}t          d           t          |           | j
                                         Y nw xY wd| _        	 |                                  dS # t          $ r^ t           j        r5t          j	                    \  }}}t          d           t          |           | j
                                         Y dS w xY w)z+Checking ranges in table iterators (case13)r   r   zRunning %s.test13_range...iz)
Great!, the next ValueError was catched!r   N)r   r   r   rs   r4   rH  rt  r  r   exc_inforl   rp   )rr   r   r  	tracebacks       r   test13_rangezBasicRangeTestCase.test13_rangef  sZ    > 	J$	""".1HHIII 		  	  	  	 ~ +.<>>(uiBCCCeK	  		  	  	  	 ~ +.<>>(uiBCCCeK	 s&   A A$B=<B=C A$EE)$r4   r5   r6   r8  r   r   r   r   r   r   r   r   r   rG  r+  rk  rl  rk   ro   rt  ry  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r9  r:  s   @r   rZ  rZ  	  s}       I%EFHLHGEJEDMK    ) ) )Vl l l\                                $  $  $  $             r   rZ  c                       e Zd ZdS )IterRangeTestCaseN)r4   r5   r6   r
   r   r   r  r    s        Dr   r  c                       e Zd ZdZdS )RecArrayRangeTestCaser   N)r4   r5   r6   rk  r
   r   r   r  r    s        MMMr   r  c                       e Zd ZdZd ZdS )GetColRangeTestCaser   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        | _	        | j        
                    d          }|                     t                    5  |                    d           ddd           dS # 1 swxY w Y   dS )z-Checking non-existing Field in getCol method r   r   z%Running %s.test01_nonexistentField...r   r   znon-existent-columnN)r   r   r   rs   r4   r7   r   r   rl   rm   r   r  r  r   r#  s     r   test01_nonexistentFieldz+GetColRangeTestCase.test01_nonexistentField  s    > 	+$	"""9.)* + + + l4<55K$	$$Y//x(( 	- 	-II+,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   C  CCN)r4   r5   r6   rl  r  r
   r   r   r  r    s(        K- - - - -r   r  c                        e Zd ZdZdZeZdZdZdZ	dZ
dZdZdZeZdZdZ fd	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z" xZ#S )GetItemTestCasera   rb   rf   rc   r   r   rd   r    c                     t                                                       | j        j        | _        |                                  | j                                         d S rh   ri   rq   s    r   rk   zGetItemTestCase.setUp  rt   r   c           	         | j         }t          d          D ]}t          j        | j        | j                  }| j                            |dt          |          z   | j	        | j
        || j                  }|j        }t          | j                  D ]}d| j        |z
  z  |d<   |d         d         |d<   ||d	<   || j        z  |d
<   t          |d         t          j                  r%t#          |          t#          ||z            g|d<   nt#          |          |d<   t          |d         t          j                  r)t          j        t#          |          fdz            |d<   nt#          |          |d<   |d
         dz	  dz  |d
         dz  dz  z   |d<   |                                 |                                 | j                            |dt          |          z             }|}d S r]  r^  r_  s           r   ro   zGetItemTestCase.populateFile  s   q $	 $	A*t}-1\; ; ;KK,,UGCFFN-1[37:5@:>:K	 - M ME )C 4,--  $(9A(=>F!&k"oFF$-/Fc&k2:66 +#(88U1q5\\":CKK"'((CKc&k2:66 +"$(E!HH;q="9"9CKK"'((CK #Fq 0D8 #Fq 0F:<F

 KKMMM[--eWSVV^DDFEEI$	 $	r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|d         }|                     |d         d           |d         }|                     |d         d           || j        dz
           }|                     |d         | j        dz
             d	S )
z7Checking __getitem__ method with single parameter (int)r   r   z Running %s.test01a_singleItem...r   r   r;   r  r   Nr   r   r   rs   r4   r7   r   r   rl   rm   rP  r   r   r  s      r   test01a_singleItemz"GetItemTestCase.test01a_singleItem       > 	P$	"""4t~7NNOOOl4<55 'q+++r,,,t(*+):Q)>?????r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|d         }|                     |d         | j        dz
             |d         }|                     |d         | j        d	z
             || j                  }|                     |d         d
           dS )z<Checking __getitem__ method with single parameter (neg. int)r   r   z Running %s.test01b_singleItem...r   r  r;   r"   ry   r   r   Nr  r  s      r   test01b_singleItemz"GetItemTestCase.test01b_singleItem       > 	P$	"""4t~7NNOOOl4<55 'r):Q)>???r):Q)>???))*+++++r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|d         }|                     |d         d           |d         }|                     |d         d           || j        dz
           }|                     |d         | j        dz
             d	S )
z8Checking __getitem__ method with single parameter (long)r   r   z Running %s.test01c_singleItem...r   r   r;   r  r   Nr  r  s      r   test01c_singleItemz"GetItemTestCase.test01c_singleItem  r  r   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|d         }|                     |d         | j        dz
             |d         }|                     |d         | j        d	z
             || j                  }|                     |d         d
           dS )z=Checking __getitem__ method with single parameter (neg. long)r   r   z Running %s.test01d_singleItem...r   r  r;   r"   ry   r   r   Nr  r  s      r   test01d_singleItemz"GetItemTestCase.test01d_singleItem  r  r   c                 :   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|t          j        d                   }|                     |d         d           |t          j        d                   }|                     |d         d           |t          j        | j        dz
                     }|                     |d         | j        dz
             d	S )
z?Checking __getitem__ method with single parameter (rank-0 ints)r   r   z Running %s.test01e_singleItem...r   r   r;   r  r   N)r   r   r   rs   r4   r7   r   r   rl   rm   rP  r   r   r   r   r  s      r   test01e_singleItemz"GetItemTestCase.test01e_singleItem'  s     > 	P$	"""4t~7NNOOOl4<55 'rx{{#+++rx||$,,,rx 1! 3445):Q)>?????r   c                 B   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|t          j        d                   }|                     |d         d           dS )z=Checking __getitem__ method with single parameter (np.uint64)r   r   z Running %s.test01f_singleItem...r   r   r;   N)r   r   r   rs   r4   r7   r   r   rl   rm   rP  r   uint64r   r  s      r   test01f_singleItemz"GetItemTestCase.test01f_singleItem7  s     > 	P$	"""4t~7NNOOOl4<55 'ry||$+++++r   c           
         t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|dd         }|                     |d                                         t          t          dd                               |dd         }|                     |d                                         t          t          d| j        dz
                                 |dd	         }|                     |d                                         t          t          d| j                                       |d
d	         }|                     |d                                         t          t          | j        dz
  | j                                       d	S )z8Checking __getitem__ method with start, stop parameters.r   r   zRunning %s.test02_twoItem...r   r   r$   r;   r  Nr  r   r   r   rs   r4   r7   r   r   rl   rm   rP  r   tolistr   r   r   r  s      r   test02_twoItemszGetItemTestCase.test02_twoItemsD  s    > 	L$	"""04>3JJKKKl4<55 'qs..00$uQ{{2C2CDDDqt..00$ut "8$ 8$ 3% 3% 	& 	& 	&qrr..00eAt'899::	< 	< 	<rss..00eD$5a$79JKKLL	N 	N 	N 	N 	Nr   c           
         t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|ddd         }|                     |d                                         t          t          ddd                               |dd	d         }|                     |d                                         t          t          d| j        d                               |d	dd         }|                     |d                                         t          t          d
dd                               |d	d	         }|                     |d                                         t          t          d
| j        d                               d	S )z>Checking __getitem__ method with start, stop, step parameters.r   r   zRunning %s.test03_threeItem...r   r   r$   r    r;   Nr   r   r  r  s      r   test03_threeItemsz!GetItemTestCase.test03_threeItemsY  s    > 	N$	"""2T^5LLMMMl4<55 'q1u..00$uQ1~~2F2FGGGqt!t..00$ut !8% 8% 3& 3& 	' 	' 	't!t..00$uQ1~~2F2FGGGrrr..00$ut !8% 8% 3& 3& 	' 	' 	' 	' 	'r   c                 R   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|                     t                    5  |ddd          ddd           dS # 1 swxY w Y   dS )	z9Checking __getitem__ method with negative step parameter.r   r   z!Running %s.test04_negativeStep...r   r   r    r  N)r   r   r   rs   r4   r7   r   r   rl   rm   rP  r  r  r#  s     r   test04_negativeStepz#GetItemTestCase.test04_negativeStepm  s     > 	+$	"""5.)* + + + l4<55 'z** 	 	!Ab&MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   BB #B c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|j        j        }|                     |d         d           |                     |d         d           |                     || j        dz
           | j        dz
             dS )	z9Checking __getitem__ method in Col with single parameter.r   r   z#Running %s.test06a_singleItemCol...r   r   r  r   Nr   r   r   rs   r4   r7   r   r   rl   rm   rP  r   r;   r   r   rr   r   colvar2s      r   test06a_singleItemColz%GetItemTestCase.test06a_singleItemColz  s     > 	+$	"""7.)* + + + l4<55 '*/Q'''b)))!21!45t7H17LMMMMMr   c                    t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|j        j        }|                     |d         | j        dz
             |                     |d         | j        dz
             |                     || j                  d	           d
S )zKChecking __getitem__ method in Col with single parameter
        (negative)r   r   z Running %s.test06b_singleItem...r   r  r"   ry   r   r   Nr  r  s      r   test06b_singleItemColz%GetItemTestCase.test06b_singleItemCol  s     > 	P$	"""4t~7NNOOOl4<55 '*/d&7!&;<<<d&7!&;<<<$"3!34a88888r   c           
      z   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|j        j        }|                     |dd                                         t          t!          dd                               |                     |dd                                         t          t!          d| j        dz
                                 |                     |dd                                         t          t!          d| j                                       |                     |d	d                                         t          t!          | j        dz
  | j                                       dS )
z?Checking __getitem__ method in Col with start, stop parameters.r   r   zRunning %s.test07_twoItemCol...r   r   r$   r  Nr  r   r   r   rs   r4   r7   r   r   rl   rm   rP  r   r;   r   r  r   r   r   r  s      r   test07_twoItemsColz"GetItemTestCase.test07_twoItemsCol  s    > 	O$	"""3dn6MMNNNl4<55 '*/1,,..U1a[[0A0ABBB2--//eAt'81'<==>>	@ 	@ 	@++--eAt'899::	< 	< 	<,,..eD$5$94;LMMNN	P 	P 	P 	P 	Pr   c           
      h   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|j        j        }|                     |ddd                                         t          t!          ddd                               |                     |ddd                                         t          t!          d| j        d                               |                     |ddd                                         t          t!          d	dd                               |                     |dd                                         t          t!          d	| j        d
                               dS )zMChecking __getitem__ method in Col with start, stop, step
        parameters.r   r   z!Running %s.test08_threeItemCol...r   r   r$   r    Nr   r   r  r  s      r   test08_threeItemsColz$GetItemTestCase.test08_threeItemsCol  s    > 	+$	"""5.)* + + + l4<55 '*/1Q..00$uQ1~~2F2FGGGA--//et !7% 7% 2& 2& 	' 	' 	'!A--//eAq!nn1E1EFFF++--eAt'8!<<==	? 	? 	? 	? 	?r   c                 j   t           j        r,t          dd           t          d| j        j        z             t          j        | j        d          | _        | j        j	        j
        }|j        j        }|                     t                    5  |ddd          ddd           dS # 1 swxY w Y   dS )	z@Checking __getitem__ method in Col with negative step parameter.r   r   z!Running %s.test09_negativeStep...r   r   r    r  N)r   r   r   rs   r4   r7   r   r   rl   rm   rP  r   r;   r  r  r  s      r   test09_negativeStepz#GetItemTestCase.test09_negativeStep  s     > 	+$	"""5.)* + + + l4<55 '*/z** 	 	AaFOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B((B,/B,c                    t          j        | j        d          | _        | j        j        j        }t          t          ddd                    }||         }|                     |d         	                                |           |
                    |          }|                     |d         	                                |           dS )z1Checking accessing Table with a list of integers.r   rz   F   r\  r;   N)r7   r   r   rl   rm   rP  r   r   r   r  read_coordinates)rr   r   idxr  s       r   test10_list_integersz$GetItemTestCase.test10_list_integers  s     l4<55 '5R$$%%s..00#666'',,..00#66666r   c                    t          j        | j        d          | _        | j        j        j        }t          t          ddd                    fdt          | j                  D             }||         }| 	                    |d         
                                           |                    |          }| 	                    |d         
                                           dS )z7Checking accessing Table with a list of boolean values.r   rz   r  r\  c                     g | ]}|v S r
   r
   )r   r   r  s     r   r   z8GetItemTestCase.test11_list_booleans.<locals>.<listcomp>  s    @@@!Q#X@@@r   r;   N)r7   r   r   rl   rm   rP  r   r   r   r   r  r  )rr   r   	selectionr  r  s       @r   test11_list_booleansz$GetItemTestCase.test11_list_booleans  s     l4<55 '5R$$%%@@@@uT->'?'?@@@	y!..00#666''	22..00#66666r   )$r4   r5   r6   r8  r   r   r   r   r   r   r   r   r   rG  r+  rk  rl  rk   ro   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r9  r:  s   @r   r  r    s       I%EFHLHGEJEDMK    & & &P@ @ @ , , , @ @ @ , , , @ @ @ , , ,N N N*' ' '(  N N N9 9 9P P P$? ? ?&  7 7 77 7 7 7 7 7 7r   r  c                   v    e Zd Z ej        d          Z ej        dd          Z ej        d          Z	dS )Recr   rS   r    r   r   r   N
r4   r5   r6   r7   r:   col1r8   col2FloatColcol3r
   r   r   r  r    sL        29D2<***D2;1DDDr   r  c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )SetItemTestCasec                 2   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           d|d	<   t          j                            g d
dd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z1Checking modifying one table row with __setitem__ro       dbe333333?r      ded?i4,a3,f8rT       db1r  r"      de1r  r  db2r  r   r  r  )r  s   db2r  r  col1,col2,col3rT  rU  Original table-->Should look like-->r   Nrl   r   rm   r  
buffersizer   r   r   r   r   reopen_reopenro  r  r   r   r   reprr   tobytesr   rr   r   r   r1r2s        r   test01zSetItemTestCase.test01  s    (()9:sKK? FLL!12J  H HQ(*:;<<< %aV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 2   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           d|d	<   t          j                            g d
dd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z>Checking modifying one table row with __setitem__ (long index)ro  r  r  r  r  r  r  r  r   r  r  r  r  r  r   Nr  r   s        r   test01bzSetItemTestCase.test01b  r  r   c                 |   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           t          j                            dgd          }||dd	d
<   t          j                            g ddd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z,Modifying one row, with a step (__setitem__)ro  r  r  r  r  r  r  r   r    r   r  r  r  r  r  r  r  r  r   Nr  rr   r   r   rowsr  r  s         r   test02zSetItemTestCase.test02/  s    (()9:sKK? FLL!12J  H HQ(*:;<<< v||/0*|EEa!eV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 |   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           t          j                            ddgd          }||dd	<   t          j                            g d
dd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z5Checking modifying several rows at once (__setitem__)ro  r  r  r  r  r  r  r   r    r  r  r  r  r  r  r  r  r   Nr  r	  s         r   test03zSetItemTestCase.test03P  s    (()9:sKK? FLL!12J  H HQ(*:;<<< v||/1AB$.  0 0 ac
V\\ ? ? ?", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 ~   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           t          j                            ddgd          }||d	d
d<   t          j                            g ddd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           d
S )z9Modifying several rows at once, with a step (__setitem__)ro  r  r  r  r  r  r  r$   s   de2r  r   Nr   r  r  r  r  r  r  r  r  r   r  r	  s         r   test04zSetItemTestCase.test04s  s    (()9:sKK? FLL!12J  H HQ(*:;<<< v||/1AB$.  0 0 addV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 F   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           d|j
        j        d	<   t          j                            g d
dd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z;Checking modifying one column (single element, __setitem__)ro  r  r  r  r  r  r  ry   r   r  )ry   r  r  r  r  r  r  r  r  r   Nrl   r   rm   r  r  r   r   r   r   r   r   r  r  r  ro  r  r   r   r   r  r   r  r   r   s        r   test05zSetItemTestCase.test05  sx    (()9:sKK? FLL!12J  H HQ(*:;<<<  
V\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 N   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           g d|j
        j        d	d
<   t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d
           dS )z=Checking modifying one column (several elements, __setitem__)ro  r  r  r  r  r  r  r   r    r   r   r   r  r  )r    r  r  )r   r  r  r  r  r  r  Nr  r   s        r   test06azSetItemTestCase.test06a  s}    (()9:sKK? FLL!12J  H HQ(*:;<<<  )yy
!V\\ ? ? ?", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           | 
                    t                    5  |                                D ]#}|j        dz   |d	<   |	                                 $|                                 d
d
d
           d
S # 1 swxY w Y   d
S )z5Checking modifying one column (iterator, __setitem__)ro  r  r  r  r  r  r  r   r  N)rl   r   rm   r  r  r   r   r   r   r   r  NotImplementedErrorr   nrowr   )rr   r   r   r   s       r   test06bzSetItemTestCase.test06b  s<    (()9:sKK? FLL!12J  H HQ(*:;<<< 233 	 	~~''  !hlF

KKMMM		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !AC;;C?C?c                 P   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           dd	g|j
        j        d
dd<   t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z:Modifying one column (several elements, __setitem__, step)ro  r  r   r  r  r  r  r  r  r   r    r   r   )r  r  r  )r    r  r  r  r  r  r  Nr  r   s        r   test07zSetItemTestCase.test07  s    (()9:sKK? FLL!12J  H HQ(*:;<<<"#Q
!AV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 N   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           dg|j
        j        d	d
d<   t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d
           dS )z5Modifying one column (one element, __setitem__, step)ro  r  r  r  r  r  r  r   r   r   r    r  r  r  r  r  r  r  r  Nr  r   s        r   test08zSetItemTestCase.test08  s    (()9:sKK? FLL!12J  H HQ(*:;<<< #$
!AV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 |   | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           t          j                            ddgd          }||d	d
d<   t          j                            g dd          }| j
        r1|                                  | j         j        j        }| j        |_        |                                }t          j        r:t!          dt#          |                     t!          dt#          |                     |                     |                                |                                           |                     |j        d           d
S )z5Modifying beyond the table extend (__setitem__, step)ro  r  r  r  r  r  r  r  r   Nr   r  r  r  r   r  r	  s         r   test09zSetItemTestCase.test09;  s    (()9:sKK? FLL!12J  H HQ(*:;<<< v||!12J  H HaddV\\ A A A",  . .
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   N)r4   r5   r6   r  r  r  r  r  r  r  r  r!  r$  r&  r
   r   r   r  r    s        ) ) )@) ) )@) ) )B!) !) !)F!) !) !)F) ) )@) ) )@  L) ) )>) ) )@!) !) !) !) !)r   r  c                       e Zd ZdZdZdS )SetItemTestCase1r   r   Nr4   r5   r6   r  r  r
   r   r   r(  r(  _          FJJJr   r(  c                       e Zd ZdZdZdS )SetItemTestCase2r   r   Nr)  r
   r   r   r,  r,  d  r*  r   r,  c                       e Zd ZdZdZdS )SetItemTestCase3r   r  Nr)  r
   r   r   r.  r.  i          FJJJr   r.  c                       e Zd ZdZdZdS )SetItemTestCase4r   r  Nr)  r
   r   r   r1  r1  n  r/  r   r1  c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )UpdateRowTestCasec                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	          D ]%}d
\  |d<   |d<   |d<   |                                 &t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z0Checking modifying one table row with Row.updatero  r  r  r  r  r  r  r   r    r  r  r  r  r  r  r  r  r  r   Nrl   r   rm   r  r  r   r   r   r   r   r   updater  r  ro  r  r   r   r   r  r   r  r   rr   r   r   r   r  r  s         r   r  zUpdateRowTestCase.test01t  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!Q'' 	 	C6G3S[#f+s6{JJLLLLV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	d
          D ]K}|j        dk    rd\  |d<   |d<   |d<   n|j        d	k    rd\  |d<   |d<   |d<   |                                 Lt          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t"          j        r:t'          dt)          |                     t'          dt)          |                     |                     |                                |                                           |                     |j        d           dS )z+Modifying one row, with a step (Row.update)ro  r  r  r  r  r  r  r   r    r   r  db1r  r  r  r  r$   de2r  r  r  r  r  r  r   Nrl   r   rm   r  r  r   r   r   r   r   r   r  r6  r  r  ro  r  r   r   r   r  r   r  r   r7  s         r   r  zUpdateRowTestCase.test02  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!Q** 	 	Cx1}}:K7Vc&k3v;;Q:I7Vc&k3v;JJLLLLV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	          D ]K}|j        dk    rd
\  |d<   |d<   |d<   n|j        dk    rd\  |d<   |d<   |d<   |                                 Lt          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t"          j        r:t'          dt)          |                     t'          dt)          |                     |                     |                                |                                           |                     |j        d           dS )z4Checking modifying several rows at once (Row.update)ro  r  r  r  r  r  r  r   r    r9  r  r  r  r   r"   de1r  r  r  r  r  r  r   Nr=  r7  s         r   r  zUpdateRowTestCase.test03  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!Q'' 	 	Cx1}}:K7Vc&k3v;;Q:I7Vc&k3v;JJLLLLV\\ ? ? ?", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	d
          D ]K}|j        dk    rd\  |d<   |d<   |d<   n|j        dk    rd\  |d<   |d<   |d<   |                                 Lt          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t"          j        r:t'          dt)          |                     t'          dt)          |                     |                     |                                |                                           |                     |j        d	           dS )z8Modifying several rows at once, with a step (Row.update)ro  r  r  r  r  r  r  r   r   r   )r+  rH  r9  r  r  r  r    r;  r  r  r  r  r  Nr=  r7  s         r   r  zUpdateRowTestCase.test04  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!!!>44 	 	Cx1}}:K7Vc&k3v;;Q:I7Vc&k3v;JJLLLLV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	          D ]}d
|d<   |                                 t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z:Checking modifying one column (single element, Row.update)ro  r  r  r  r  r  r  r   r   ry   r  r  r  r  r  r  r   Nr5  r7  s         r   r  zUpdateRowTestCase.test05  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!Q'' 	 	CCKJJLLLLV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    dd	          D ]#}|j        dz   |d
<   |                                 $t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t"          j        r:t'          dt)          |                     t'          dt)          |                     |                     |                                |                                           |                     |j        d	           dS )z<Checking modifying one column (several elements, Row.update)ro  r  r  r  r  r  r  r   r   r  r  r  r  r  r  Nr=  r7  s         r   test06zUpdateRowTestCase.test06'  s    (()9:sKK? FLL!12J  H HQ(*:;<<< >>!Q'' 	 	C(Q,CKJJLLLLV\\ ? ? ?", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    | j                             | j         j        dt                    }| j        |_        t          j                            ddgd          }|	                    |           |	                    ddg           |
                    d          D ] }d	|d
<   d|d<   |                                 !t          j                            g ddd          }| j        r1|                                  | j         j        j        }| j        |_        |                                }t           j        r:t%          dt'          |                     t%          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z!Modifying values from a selectionro  r  r   r  r  r  r  z
col1 < 456r   r  adar  )r  r   s   adar  r  rG  r  r  r  r  r   N)rl   r   rm   r  r  r   r   r   r   r   r1  r6  r  r  ro  r  r   r   r   r  r   r  r   r7  s         r   r!  zUpdateRowTestCase.test07I  s    (()9:sKK? FLL!12J  H HQ(*:;<<<;;|,, 	 	CCKCKJJLLLLV\\ A A A", 0  2 2
 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                 b   | j                             | j         j        dt                    }| j        |_        d}|j        }t          |          D ];}|dz
  |d<   dt          |dz
            z   |d<   d|d<   |	                                 <|
                                 |D ]?}|j        |d<   d	t          |j                  z   |d<   d
|d<   |                                 @t          j                            d|dd          }t          |          D ]3}||d         |<   d	t          |          z   |d         |<   d
|d         |<   4| j        r1|                                  | j         j        j        }| j        |_        |                                }t(          j        r:t-          dt/          |                     t-          dt/          |                     |                     |                                |                                           |                     |j        |           dS )z$Modifying a large table (Row.update)ro  rc   r   r  r=  r        r  br{   Nr  r  rZ  r  r  )rl   r   rm   r  r  r   r   r   r   r   r   r  r6  r   r   r   r  r  ro  r  r   r   r   r  r   r  r   rr   r   r   r   r   r  r  s          r   r$  zUpdateRowTestCase.test08k  s    (()9:sKK?iu 	 	AA#CKc!A#hh,CKCKJJLLLL  	 	C(CKc#(mm+CKCKJJLLLL V\\z9I  K Ku 	  	 ABvJqMAJBvJqMBvJqMM; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444e,,,,,r   c                 F   | j                             | j         j        dt                    }| j        |_        d}|j        }t          |          D ];}|dz
  |d<   dt          |dz
            z   |d<   d|d<   |	                                 <|
                                 |D ]+}|j        |d<   d	t          |j                  z   |d<   d
|d<   ,t          j                            d|dd          }t          |          D ]9}|dz
  |d         |<   dt          |dz
            z   |d         |<   d|d         |<   :| j        r1|                                  | j         j        j        }| j        |_        |                                }t&          j        r:t+          dt-          |                     t+          dt-          |                     |                     |                                |                                           |                     |j        |           dS )z:Setting values on a large table without calling Row.updatero  rc   r   r  r=  r  rI  r  rJ  r{   Nr  r  rZ  r  r  )rl   r   rm   r  r  r   r   r   r   r   r   r  r   r   r   r  r  ro  r  r   r   r   r  r   r  r   rK  s          r   test08bzUpdateRowTestCase.test08b  s    (()9:sKK?iu 	 	AA#CKc!A#hh,CKCKJJLLLL  	 	C(CKc#(mm+CKCKK V\\z9I  K Ku 	! 	!AaCBvJqMAaCLBvJqM BvJqMM; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444e,,,,,r   c                    | j                             | j         j        dt                    }| j        |_        d}|j        }t          |          D ];}|dz
  |d<   dt          |dz
            z   |d<   d|d<   |	                                 <|
                                 |                    d	          D ]?}|j        |d<   d
t          |j                  z   |d<   d|d<   |                                 @t          j                            d|dd          }t          |          D ]9}|dz
  |d         |<   dt          |dz
            z   |d         |<   d|d         |<   :||d         |<   d
t          |          z   |d         |<   d|d         |<   | j        r1|                                  | j         j        j        }| j        |_        |                                }t*          j        r:t/          dt1          |                     t/          dt1          |                     |                     |                                |                                           |                     |j        |           dS )z*Modifying selected values on a large tablero  rc   r   r  r=  r  rI  r  zcol1 > nrows-3rJ  r{   Nr  r  rZ  r  r  )rl   r   rm   r  r  r   r   r   r   r   r   r1  r  r6  r   r   r   r  r  ro  r  r   r   r   r  r   r  r   rK  s          r   r&  zUpdateRowTestCase.test09  sO    (()9:sKK?iu 	 	AA#CKc!A#hh,CKCKJJLLLL ;;/00 	 	C(CKc#(mm+CKCKJJLLLL V\\z9I  K Ku 	! 	!AaCBvJqMAaCLBvJqM BvJqMM6
1CFF
6
16
1 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444e,,,,,r   c                    | j                             | j         j        dt                    }| j        |_        d}|j        }t          |          D ];}|dz
  |d<   dt          |dz
            z   |d<   d|d<   |	                                 <|
                                 |                    d	
          D ]?}|j        |d<   dt          |j                  z   |d<   d|d<   |                                 @t          j                            d|dd          }t          |          D ]t}|d	z  dk    r8|dz
  |d         |<   dt          |dz
            z   |d         |<   d|d         |<   C||d         |<   dt          |          z   |d         |<   d|d         |<   u| j        r1|                                  | j         j        j        }| j        |_        |                                }t*          j        r:t/          dt1          |                     t/          dt1          |                     |                     |                                |                                           |                     |j        |           dS )z=Modifying selected values on a large table (alternate values)ro  rc   r   r  r=  r  rI  r  rz   )rH  rJ  r{   Nr  r  rZ  r   r  r  )rl   r   rm   r  r  r   r   r   r   r   r   r   r  r6  r   r   r   r  r  ro  r  r   r   r   r  r   r  r   rK  s          r   test09bzUpdateRowTestCase.test09b  s_    (()9:sKK?iu 	 	AA#CKc!A#hh,CKCKJJLLLL >>r>** 	 	C(CKc#(mm+CKCKJJLLLL V\\z9I  K Ku 	$ 	$A2vzz !!6
1 #C!HH6
1 $6
1 !6
1 #CFF
6
1 #6
1 ; 	/LLNNNK$-E#EZZ\\> 	3%tBxx000'b222rzz||444e,,,,,r   N)r4   r5   r6   r  r  r  r  r  rD  r!  r$  rM  r&  rP  r
   r   r   r3  r3  s  s         )  )  )D#) #) #)J#) #) #)J#) #) #)J )  )  )D )  )  )D )  )  )D)- )- )-V)- )- )-V.- .- .-`/- /- /- /- /-r   r3  c                       e Zd ZdZdZdS )UpdateRowTestCase1r   r   Nr)  r
   r   r   rR  rR  #  r*  r   rR  c                       e Zd ZdZdZdS )UpdateRowTestCase2r   r   Nr)  r
   r   r   rT  rT  (  r*  r   rT  c                       e Zd ZdZdZdS )UpdateRowTestCase3r   r  Nr)  r
   r   r   rV  rV  -  r/  r   rV  c                       e Zd ZdZdZdS )UpdateRowTestCase4r   r  Nr)  r
   r   r   rX  rX  2  r/  r   rX  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
RecArrayIOc                    t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgd          }| j        	                    | j        j
        d|           | j        r|                                  | j        j
        j                                        }|                     |                                |                                           d	S )
z"Checking saving a regular recarrayr   r   zRunning %s.test00...r  r      der  r  rU  ro  Nr   r   r   rs   r4   r   r   r   rl   r   rm   r  r  ro  r  r   r  rr   r   r  s      r   test00zRecArrayIO.test008  s     > 	D$	"""(4>+BBCCC FLL19I  K K 	  !1:qAAA ; 	LLNNN[&++--bjjll33333r   c                    t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgd          }|dd	         }| j        	                    | j        j
        d
|           | j        r|                                  | j        j
        j                                        }|                     |                                |                                           d	S )z7Checking saving a recarray with an offset in its bufferr   r   zRunning %s.test01...r  r\  r  r^  r   Nro  r_  rr   r   r  r  s       r   r  zRecArrayIO.test01L  s     > 	D$	"""(4>+BBCCC FLL19I  K K qrrU 	  !1:rBBB ; 	LLNNN[&++--rzz||44444r   c                    t           j        r,t          dd           t          d| j        j        z             t
          j                            ddz  dd          }|dd	         }| j        	                    | j        j
        d
|           | j        r|                                  | j        j
        j                                        }|                     |                                |                                           d	S )z=Checking saving a large recarray with an offset in its bufferr   r   zRunning %s.test02...r;  @ f4,3i4,a5,i2  i  Nro  r_  rc  s       r   r  zRecArrayIO.test02d  s     > 	D$	"""(4>+BBCCC FLLg~t<< tuuX 	  !1:rBBB ; 	LLNNN[&++--rzz||44444r   c                 $   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddz  dd          }|ddd	         }|d
d         }| j        	                    | j        j
        d|           | j        r|                                  | j        j
        j                                        }|                     |                                |                                           dS )z?Checking saving a strided recarray with an offset in its bufferr   r   zRunning %s.test03...r;  re  rf  rg  Nr   i  ro  r_  )rr   r   r  r  s       r   r  zRecArrayIO.test03{  s     > 	D$	"""(4>+BBCCC FLLg~t<< sssV Y 	  !1:rBBB ; 	LLNNN[&++--rzz||44444r   c                    t           j        r,t          dd           t          d| j        j        z              G d dt
          j                  }| j                            | j        j	        d|          }t          j                            ddgd	
          }|                    |           |                    ddg           t          j                            g dd	d          }| j        r%|                                  | j        j	        j        }| j        j	        j                                        }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z'Checking appending several rows at oncer   r   zRunning %s.test04...c                   v    e Zd Z ej        d          Z ej        dd          Z ej        d          Z	dS )RecArrayIO.test04.<locals>.Recr   rS   r    r   r  Nr  r
   r   r   r  rk    sL        29###D2<222D2;1%%%DDDr   r  ro  r  r  r  r  r  r  r#  r  r  r  r  r   N)r   r   r   rs   r4   r7   r  rl   r   rm   r   r   r   r   r  r  ro  r  r  r   r  r   )rr   r  r   r   r  r  s         r   r  zRecArrayIO.test04  s    > 	D$	"""(4>+BBCCC	& 	& 	& 	& 	&"" 	& 	& 	& (()9:sKK FLL!12J  H HQ(*:;<<<V\\ A A A", 0  2 2
 ; 	.LLNNNK$-E[&++--> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                                  | j        j        j        }t          j
                            g ddd          }| j        r%|                                  | j        j        j        }| j        j        j                                        }t           j        r:t          dt#          |                     t          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z<Checking appending several rows at once (close file version)r   r   zRunning %s.test05...ro  r  r  r  r  r  r  r#  r  r  r  r  r   N)r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r  ro  r  r  r  r   r  r   r   s        r   r  zRecArrayIO.test05  s    > 	D$	"""(4>+BBCCC (()9:sKK FLL!12J  H HQ(*:;<<< )V\\ A A A", 0  2 2 ; 	.LLNNNK$-E[&++--> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    ddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z/Checking modifying one table row (list version)r   r   zRunning %s.test06a...ro  r  r  r  r  r  r  r   )r  r:  r  rG  r
  )r  )r  r  r  r  r  r  r  r  r  r   Nr   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r4  r  r  ro  r  r  r   r  r   r   s        r   r  zRecArrayIO.test06a  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<):(;<<<V\\ A A A", 0  2 2 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    dt          j
                            dgd                     t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z3Checking modifying one table row (recarray version)r   r   zRunning %s.test06b...ro  r  r  r  r  r  r  r   r  rn  r  r  r  r  r  r   Nro  r   s        r   r  zRecArrayIO.test06b  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<01:FF 	 	H 	H 	H V\\ A A A", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    dddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z6Checking modifying several rows at once (list version)r   r   zRunning %s.test07a...ro  r  r  r  r  r  r  r   r9  r?  rn  r  r  r  r  r  r   Nro  r   s        r   test07azRecArrayIO.test07a"  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<):O(LMMMV\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            d	d
gd          }|                    d|           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z:Checking modifying several rows at once (recarray version)r   r   zRunning %s.test07b...ro  r  r  r  r  r  r  r   rn  r  r  r  r  r  r   Nro  r	  s         r   test07bzRecArrayIO.test07bC  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<v||/1AB$.  0 0---V\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            d	d
gd          }|                     t          |j        dd|           dS )z8Checking modifying several rows with a mismatching valuer   r   zRunning %s.test07c...ro  r  r  r  r  r  r  r   r   )rG  r+  r
  N)r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r  r  r4  )rr   r   r   r
  s       r   test07czRecArrayIO.test07cf  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<v||!12J  H H*e&7 ! 	 	6 	6 	6 	6 	6r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    dg dgdg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z5Checking modifying one column (single column version)r   r   zRunning %s.test08a...ro  r  r  r  r  r  r  r   r  r  rG  r   rU  r  r  r  r  r  r   Nr   r   r   rs   r4   rl   r   rm   r  r   r   r   r   modify_columnsr  r  ro  r  r  r   r  r   r   s        r   test08azRecArrayIO.test08a{  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<< 	1yyyk&JJJV\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    dg dd           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )zMChecking modifying one column (single column version,
         modify_column)r   r   zRunning %s.test08a2...ro  r  r  r  r  r  r  r   r  r  rG  rq  r   r  r  r  r  r  r   N)r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   modify_columnr  r  ro  r  r  r   r  r   r   s        r   test08a2zRecArrayIO.test08a2  s    > 	F$	"""*T^-DDEEE (()9:sKK FLL!12J  H HQ(*:;<<< 	!IIIvFFFV\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            t          j        g dg          d          }|                    d|dg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt'          |                     t          dt'          |                     |                     |                                |                                           |                     |j        d           dS )z?Checking modifying one column (single column version, recarray)r   r   zRunning %s.test08b...ro  r  r  r  r  r  r  r  r  r   r  rx  r  r  r  r  r  r   N)r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   
fromarraysrz  r  r  ro  r  r  r   r  r   rr   r   r   r   r  r  s         r   rM  zRecArrayIO.test08b  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<< &##BHiii[$9$94#HH1gfXFFFV\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            t          j        g dg          d          }|                    d|d           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt'          |                     t          dt'          |                     |                     |                                |                                           |                     |j        d           dS )zVChecking modifying one column (single column version, recarray,
        modify_column)r   r   zRunning %s.test08b2...ro  r  r  r  r  r  r  r  r  r   r  r}  r  r  r  r  r  r   N)r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r  r~  r  r  ro  r  r  r   r  r   r  s         r   test08b2zRecArrayIO.test08b2  s    > 	F$	"""*T^-DDEEE (()9:sKK FLL!12J  H HQ(*:;<<< &##BHiii[$9$94#HH!GVDDDV\\ ? ? ?", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    ddggdg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )zMChecking modifying one column (single column version,
        single element)r   r   zRunning %s.test08c...ro  r  r  r  r  r  r  r   r   r  rx  )r  )r   r  r  r  r  r  r  r  r  Nry  r   s        r   test08czRecArrayIO.test08c  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<
 	1seF8DDDV\\ A A A", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           g dg dg}|                    d|ddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z:Checking modifying table columns (multiple column version)r   r   zRunning %s.test09a...ro  r  r  r  r  r  r  )aaabbbccc)r  皙?333333?r   r  r  rx  )r  )r   s   aaar  )r  s   bbbr  )r"   s   cccr  r  r  r  r  r   Nry  r  s         r   test09azRecArrayIO.test09a,  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<< )((---81gff=MNNNV\\ ? ? ?", 0  2 2 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            g dd          }|                    d|ddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z=Checking modifying table columns (multiple columns, recarray)r   r   zRunning %s.test09b...ro  r  r  r  r  r  r  )r  r  r  r  )r  r  a3,f8r   r  r  rx  )r  dber  r   r  r  r  r  r  )r"   r  r  r  r  r  r  r   Nry  r  s         r   rP  zRecArrayIO.test09bP  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<< &,,GGG'.  0 01gff=MNNNV\\ = = =", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            ddgd          }|                    dd|ddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z6Checking modifying table columns (single column, step)r   r   zRunning %s.test09c...ro  r  r  r  r  r  r  r  r  r  r   r   r  r  rG  rH  r   rU  )r  r  r9  )r"   r  r  r  r  r  r  r   Nry  r  s         r   test09czRecArrayIO.test09ct  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<&,,k:G,LL11g$*F#3 	 	5 	5 	5 V\\ > > >", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           t          j
                            ddgd          }|                    dd|ddg           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt%          |                     t          dt%          |                     |                     |                                |                                           |                     |j        d           dS )z9Checking modifying table columns (multiple columns, step)r   r   zRunning %s.test09d...ro  r  r  r  r  r  r  )r  r  r  r  r   r   r  r  r  ))r  r  r  )r   dedr  r  r?  r  r  r  r  r   Nry  r  s         r   test09dzRecArrayIO.test09d  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<< &,,k:G,LL11g$*F#3 	 	5 	5 	5 V\\ > > >", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |                    ddg          }ddg|d         dd<   ddg|d         dd<   |                    ddg|           t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt'          |                     t          dt'          |                     |                     |                                |                                           |                     |j        d           dS )zMChecking modifying rows using coordinates
         (readCoords/modifyCoords).r   r   zRunning %s.test10a...ro  r  r  r  r  r  r  r   r    r  8   r  Nffffff??r  )r  r  r  r  r  )r  r  r  r  r  r  r  r   )r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r  modify_coordinatesr  r  ro  r  r  r   r  r   r  s         r   test10azRecArrayIO.test10a  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<((!Q00 !"X!3Z 	  !Q111 V\\ B B B", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        j        dt                    }t          j
                            ddgd          }|                    |           |                    d	d
g           |ddg         }ddg|d         dd<   ddg|d         dd<   ||ddg<   t          j
                            g ddd          }| j        r%|                                  | j        j        j        }|                                }t           j        r:t          dt#          |                     t          dt#          |                     |                     |                                |                                           |                     |j        d           dS )z<Checking modifying rows using coordinates (getitem/setitem).r   r   zRunning %s.test10b...ro  r  r  r  r  r  r  r   r    r  r  r  Nr  r  r  r  r  r  r  r  r   )r   r   r   rs   r4   rl   r   rm   r  r   r   r   r   r  r  ro  r  r  r   r  r   r  s         r   test10bzRecArrayIO.test10b  s    > 	E$	""")DN,CCDDD (()9:sKK FLL!12J  H HQ(*:;<<<A- !"X!3Z  q!f V\\ B B B", 0  2 2
 ; 	.LLNNNK$-EZZ\\> 	3%tBxx000'b222rzz||444a(((((r   N)r4   r5   r6   ra  r  r  r  r  r  r  r  rr  rt  rv  r{  r  rM  r  r  r  rP  r  r  r  r  r
   r   r   rZ  rZ  7  sn       4 4 4(5 5 505 5 5.5 5 54") ") ")H") ") ")H )  )  )D!) !) !)F) ) )B!) !) !)F6 6 6* )  )  )D!) !) !)F!) !) !)F") ") ")H#) #) #)J") ") ")H") ") ")H!) !) !)F") ") ")H() () ()T') ') ') ') ')r   rZ  c                       e Zd ZdZdS )RecArrayIO1r   Nr4   r5   r6   r  r
   r   r   r  r            FFFr   r  c                       e Zd ZdZdS )RecArrayIO2r   Nr  r
   r   r   r  r    r  r   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	CopyTestCasec                 (   |j         |j         }}|                     t          |          t          |                     |                                D ]=\  }}|                     ||v            ||         }|                     |t          |                     t          |t          j	                  r|                     |j
        |j
                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   t          |t          j                  r@|                     |j        |j                   |                     |j        |j                   ?dS )z:Assert that column instance maps of both tables are equal.N)r   r   r   itemsr   assertIsInstancer   r   r7   Columnr   pathnamer}   Cols_v_colnames_v_colpathnames)rr   table1table2cinst1cinst2	cpathnamer  r  s           r   assertEqualColinstancesz$CopyTestCase.assertEqualColinstances  sj     ,f.AVc&kk222!' 	M 	MYOOI/000)$D!!$T

333$	** M  DI666  >>>  TZ888  DI6666D"'** M  !143CDDD  !5t7KLLL	M 	Mr   c           	      Z	   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgdd| j                  }| j	        
                    | j	        j        d	|d
          }| j        rBt           j        rt          d           |                     d           | j	        j        j        }|                    dd          }| j        rSt           j        rt          d           |                     d           | j	        j        j        }| j	        j        j        }t           j        rt          d|                                           t          d|                                           t          dt%          |j                             t          dt%          |j                             |D ]J}|j        }|j        D ]9}|                     ||         |                    ||          d                    :K|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           |                     t%          |j                  t%          |j                             | j        rR| j        d         du rC|                     |j        j        g d           |                     |j        j        d           nB|                     |j        j        g d           |                     |j        j        d           |                     |j        j        |j        j                   |                     |j        j        |j        j                   |                     |j        |j                   |                     |j         j!        |j         j!                   |                     |j         j"        |j         j"                   |                     |j         j#        |j         j#                   |                     |j         j$        |j         j$                   dS )zChecking Table.copy() method.r   r   zRunning %s.test01_copy...r  r\  r  zi4,S3,f8rU  rT  rd  r  title table1(closing file version)r=  r>  r  r  	table1-->	table2-->attrs table1-->attrs table2-->r  r   allow_paddingTr   r   r   r'   )r   r   r%   r`  N)%r   r   r   rs   r4   r   r   r   rd  rl   r   rm   rp   r  r  r  r  r  r  r  r  r   r   r   rY   r   r  r   open_kwargs
_v_offsets_v_itemsizer   r   r   r   r   r   )rr   r   r  r  row1r  r   s          r   test01_copyzCopyTestCase.test01_copy*  sZ    > 	I$	"""-0GGHHH FLL1"Z$,  P P ))$+*:Ha*8: : : 	-~ 0.///LLcL"""[%,F S(++: 	-~ 0.///LLcL"""[%,F[%,F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888  		F 		FD9D "? F F   g!'T!A!A!!DF F F FF 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEV/:IIIFFFV/;R@@@@V/:IIIFFFV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	v|44416>3KLLL/1GHHH/1GHHH2FN4MNNNNNr   c           	      	   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgdd| j                  }| j	        
                    | j	        j        d	|d
          }| j        rBt           j        rt          d           |                     d           | j	        j        j        }| j	                            dd          }|                    |d          }| j        rVt           j        rt          d           |                                  | j	        j        j        }| j	        j        j        j        }t           j        rt          d|                                           t          d|                                           t          dt)          |j                             t          dt)          |j                             |D ]J}|j        }|j        D ]9}|                     ||         |                    ||          d                    :K|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           |                     t)          |j                  t)          |j                             | j        rR| j        d         du rC|                     |j        j        g d           |                     |j        j         d           nB|                     |j        j        g d           |                     |j        j         d           |                     |j        j        |j        j                   |                     |j        j         |j        j                    |                     |j!        |j!                   |                     |j"        j#        |j"        j#                   |                     |j"        j$        |j"        j$                   |                     |j"        j%        |j"        j%                   |                     |j"        j&        |j"        j&                   dS )z.Checking Table.copy() method (where specified)r   r   zRunning %s.test02_copy...)r  r  r  )r]  r   r  r  zS3,i4,f8r  r  r  r  r=  r>  r  group1r  r  r  r  r  r  r   r  Tr  r'   )r   r    r%   r`  N)'r   r   r   rs   r4   r   r   r   rd  rl   r   rm   rp   r  r  r   r  r  r  r  r  r  r  r   r   r   rY   r   r  r   r  r  r  r   r   r   r   r   r   rr   r   r  r  r  r  r  r   s           r   test02_copyzCopyTestCase.test02_copyy  sk    > 	I$	"""-0GGHHH FLL1"J  N N ))$+*:Ha*8: : : 	-~ 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  	F 	FD9D!? F F   g!'T!A!A!!DF F F FF 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEV/:IIIFFFV/;R@@@@V/:IIIFFFV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	v|44416>3KLLL/1GHHH/1GHHH2FN4MNNNNNr   c                 	   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddz  dd| j                  }| j	        
                    | j	        j        d	|d
          }| j        rBt           j        rt          d           |                     d           | j	        j        j        }| j	                            dd          }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                             |D ]\}|j        }|j        D ]K}|                     t          j        ||         |                    ||          d                              L]|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           |                     t+          |j                   t+          |j                              | j        rR| j!        d         du rC|                     |j         j"        g d           |                     |j         j#        d           nB|                     |j         j"        g d           |                     |j         j#        d           |                     |j         j"        |j         j"                   |                     |j         j#        |j         j#                   |                     d|j$                   |                     |j%        j&        |j%        j&                   |                     |j%        j'        |j%        j'                   |                     |j%        j(        |j%        j(                   |                     |j%        j)        |j%        j)                   dS )z7Checking Table.copy() method (table larger than buffer)r   r   zRunning %s.test03_copy...   aaaabbbbccccddddeeeeffffggggr2  z2i2,i4, (2,3)u2, (1,)f4, f8r%   )rT  rY   rd  r  r  r  r=  r>  r  r  r   r  ztitle table2r   r  r  r  r  r  r   r  T)r   r   r   rd   r0   r3   N)*r   r   r   rs   r4   r   r   r   rd  rl   r   rm   rp   r  r  r   r   r  r  r  r  r  r  r  r   r   r   r   r   rY   r   r  r   r  r  r  r   r   r   r   r   r   r  s           r   test03_copyzCopyTestCase.test03_copy  s    > 	I$	"""-0GGHHH FLL+c11L  " "
 ))$+*:Ha*8: : : 	-~ 0.///LLcL"""[%,F ))#x88VX^DD: 	4~ 0.///LLNNN[%,F[%,3F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888  	I 	ID9D!? I I M6;;t7;#C#CA#F!H !H I I I II 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEV/:<M<M<MNNNV/;R@@@@V/:<M<M<MNNNV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	66616>3KLLL/1GHHH/1GHHH2FN4MNNNNNr   c           	      D	   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgdd| j                  }| j	        
                    | j	        j        d	|d
          }| j        rBt           j        rt          d           |                     d           | j	        j        j        }| j	                            dd          }|                    |dt#          j        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                             |D ]J}|j        }|j        D ]9}|                     ||         |                    ||          d                    :K|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           |                     t-          |j                  t-          |j                             | j        rR| j         d         du rC|                     |j        j!        g d           |                     |j        j"        d           nB|                     |j        j!        g d           |                     |j        j"        d           |                     |j        j!        |j        j!                   |                     |j        j"        |j        j"                   |                     |j#        |j#                   |                     d|j$        j%                   |                     d |j$        j&                   |                     |j$        j'        |j$        j'                   d!S )"z7Checking Table.copy() method (different compress level)r   r   zRunning %s.test04_copy...)r  r  r  )r  r]  r   r  zf8,S3,i4r  r  r  r  r=  r>  r  r  r  r$   r   )r   r  r  r  r  r  r   r  Tr   r   r]  r'   r   r   r\  r`  r   N)(r   r   r   rs   r4   r   r   r   rd  rl   r   rm   rp   r  r  r   r  r7   r   r  r  r  r  r  r  r   r   r   rY   r   r  r   r  r  r  r   r   r   r   r   r  s           r   test04_copyzCopyTestCase.test04_copy  s[    > 	I$	"""-0GGHHH FLL,o>/!%  / / ))$+*:Ha*8: : : 	-~ 0.///LLcL"""[%,F ))#x88VX%'Z!%<%<%<  > > : 	4~ 0.///LLNNN[%,F[%,3F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888  	F 	FD9D!? F F   g!'T!A!A!!DF F F FF 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEV/:JJJGGGV/;R@@@@V/:JJJGGGV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	v|444FN4555FN23332FN4MNNNNNr   c           	      r	   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgdd| j                  }| j	        
                    | j	        j        d	|d
          }d|j        _        d|j        _        | j        rBt           j        rt          d           |                     d           | j	        j        j        }| j	                            dd          }|                    |ddt)          j        d                    }| j        rVt           j        rt          d           |                                  | j	        j        j        }| j	        j        j        j        }t           j        rt          d|                                           t          d|                                           t          dt3          |j                             t          dt3          |j                             |D ]J}|j        }|j        D ]9}|                     ||         |                    ||          d                    :K|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                      ||           |                     t3          |j!                  t3          |j!                             | j        r| j"        d         du rnB|                     |j!        j%        g d$           |                     |j!        j&        d%           |                     |j!        j%        |j!        j%                   |                     |j!        j&        |j!        j&                   |                     |j'        |j'                   |                     d|j(        j)                   |                     d|j(        j*                   |                     |j(        j+        |j(        j+                   |                     |j        j        d           |                     |j        j        d           d&S )'z5Checking Table.copy() method (user attributes copied)r   r   zRunning %s.test05_copy...r  r\  r  zi8,S3,f8r  r  r  attr1r   r  r=  r>  r  r  r  r   r$   r  copyuserattrsr   r  r  r  r  r  r   r  TF)r   r   r'   r0   r  rd   r  r  N),r   r   r   rs   r4   r   r   r   rd  rl   r   rm   r  r  attr2rp   r  r  r   r  r7   r   r  r  r  r  r  r   r   r   rY   r   r  r   r  r   r   r  r  r   r   r   r   r   r  s           r   test05_copyzCopyTestCase.test05_copyY  so    > 	I$	"""-0GGHHH FLL,o>/!%  / / ))$+*:Ha*8: : %: 	-~ 0.///LLcL"""[%,F ))#x88VX+,%'Z!%<%<%<  > > : 	4~ 0.///LLNNN[%,F[%,3F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888  	F 	FD9D!? F F  g!'T!A!A!!DF F F FF 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEI V/:JJJGGGV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	v|444FN4555FN23332FN4MNNN+W555+Q/////r   c           	      
   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddgdd| j                  }| j	        
                    | j	        j        d	|d
          }d|j        _        d|j        _        | j        rBt           j        rt          d           |                     d           | j	        j        j        }| j	                            dd          }|                    |ddt)          j        d                    }| j        rVt           j        rt          d           |                                  | j	        j        j        }| j	        j        j        j        }t           j        rt          d|                                           t          d|                                           t          dt3          |j                             t          dt3          |j                             |D ]J}|j        }|j        D ]9}|                     ||         |                    ||          d                    :K|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                      ||           |                     t3          |j!                  t3          |j!                             | j        rR| j"        d         du rC|                     |j!        j#        g d           |                     |j!        j$        d           nB|                     |j!        j#        g d            |                     |j!        j$        d!           |                     |j!        j#        |j!        j#                   |                     |j!        j$        |j!        j$                   |                     |j%        |j%                   |                     d|j&        j'                   |                     d"|j&        j(                   |                     |j&        j)        |j&        j)                   |                     tU          |j        d          d           |                     tU          |j        d#          d           d$S )%z9Checking Table.copy() method (user attributes not copied)r   r   zRunning %s.test05b_copy...r  r\  r  zi8,S3,f4r  r  r  r  r   r  r=  r>  r  r  r  r   r$   r  r  r  r  r  r  r  r  Tr  r'   r  r`  r   r  N)+r   r   r   rs   r4   r   r   r   rd  rl   r   rm   r  r  r  rp   r  r  r   r  r7   r   r  r  r  r  r  r   r   r   rY   r   r  r   r  r  r  r   r   r   r   r   rJ   r  s           r   test05b_copyzCopyTestCase.test05b_copy  s    > 	J$	""".1HHIII FLL,o>/!%  / / ))$+*:Ha*8: : %: 	-~ 0.///LLcL"""[%,F ))#x88VX+,%'Z!%<%<%<  > > : 	4~ 0.///LLNNN[%,F[%,3F> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888  	F 	FD9D!? F F  g!'T!A!A!!DF F F FF 	v|444v|444&/:::)6+;<<<$$VV444f01148J3K3KLLL< 	AD,_=EEV/:JJJGGGV/;R@@@@V/:JJJGGGV/;R@@@+6+6	8 	8 	8+7+7	9 	9 	9 	v|444FN4555FN23332FN4MNNNw77;;;w77;;;;;r   N)
r4   r5   r6   r  r  r  r  r  r  r  r
   r   r   r  r    s        M M M$MO MO MO^GO GO GORLO LO LO\GO GO GORU0 U0 U0nN< N< N< N< N<r   r  c                       e Zd ZdZdZddiZdS )CloseCopyTestCaseTFr  Nr4   r5   r6   rp   rd  r  r
   r   r   r  r    s"        EG"E*KKKr   r  c                       e Zd ZdZdZddiZdS )OpenCopyTestCaseFr  TNr  r
   r   r   r  r    s"        EG"D)KKKr   r  c                       e Zd ZdZdZddiZdS )AlignedCloseCopyTestCaseTr  FNr  r
   r   r   r  r    s"        EG"E*KKKr   r  c                       e Zd ZdZdZddiZdS )AlignedOpenCopyTestCaseFTr  Nr  r
   r   r   r  r    s"        EG"D)KKKr   r  c                       e Zd ZdZdZddiZdS ) AlignedNoPaddingOpenCopyTestCaseFTr  Nr  r
   r   r   r  r    s"        EG"E*KKKr   r  c                       e Zd Zd Zd ZdS )CopyIndexTestCasec           	         t           j        r,t          dd           t          d| j        j        z             t
          j                            ddz  dd          }| j        	                    | j        j
        d	|d
          }| j        rBt           j        rt          d           |                     d           | j        j
        j        }| 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        d                   D ]L}|j        D ]B}|                     t          j        ||         |         ||         |                              CMt           j        r0t          d|j                   t          d|j        d                    |                     |j        d         |j                   dS )z*Checking Table.copy() method with indexes.r   r   zRunning %s.test01_index...r  r2  z$2i2, (1,)i4, (2,3)u2, (1,)f4, (1,)f8rz   rT  rY   r  r  r  r=  r>  r  r  rG  r+  rH  r  r  r  r  r   nrows in table2-->and it should be-->N)r   r   r   rs   r4   r   r   r   rl   r   rm   rp   r  r  r   r  rG  r+  rH  r  r  r  r   rY   r   r   r   r   r   rr   r   r  r  r  r  r   s          r   test01_indexzCopyIndexTestCase.test01_index   s^    > 	J$	""".1HHIII FLL83>!G!  # # ))$+*:Ha*8: : : 	-~ 0.///LLcL"""[%,F !OS(#':"&)"&)  - - > 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 tz$)DI-."(1+&& 	? 	?D!? ? ?tHW%vd|G'<!> !> ? ? ? ??
 > 	6&555'!555!fl33333r   c           	      d   t           j        r,t          dd           t          d| j        j        z             t
          j                            ddz  dd          }| j        	                    | j        j
        d	|d
          }| j        rBt           j        rt          d           |                     d           | j        j
        j        }| j        |_        |                    dd| j        | j        | j                  }|                                  | j        j
        j        }| j        j
        j        }t           j        rt          d|                                           t          d|                                           t          dt+          |j                             t          dt+          |j                             || j        | j        | j                 }t/          |j        d                   D ]L}|j        D ]B}|                     t          j        ||         |         ||         |                              CMt           j        r0t          d|j                   t          d|j        d                    |                     |j        d         |j                   dS )z>Checking Table.copy() method with indexes (close file version)r   r   z Running %s.test02_indexclosef...r  r2  z2i2, i4, (2,3)u2, f4, f8rz   r  r  r  r  r=  r>  r  r  r  r  r  r  r  r   r  r  N)r   r   r   rs   r4   r   r   r   rl   r   rm   rp   r  r  r   r  rG  r+  rH  r  r  r  r  r   rY   r   r   r   r   r   r  s          r   test02_indexclosefz$CopyIndexTestCase.test02_indexclosefP  s    > 	P$	"""4t~7NNOOO FLL83>!;2  G G ))$+*:Ha*8: : : 	-~ 0.///LLcL"""[%,F !OS(#':"&)"&)  - -
 	!(!(> 	9+v{{}}---+v{{}}---#T&,%7%7888#T&,%7%7888 tz$)DI-."(1+&& 	? 	?D!? ? ?tHW%vd|G'<!> !> ? ? ? ??
 > 	6&555'!555!fl33333r   N)r4   r5   r6   r  r  r
   r   r   r  r    s3        .4 .4 .4`04 04 04 04 04r   r  c                   "    e Zd ZdZdZdZdZdZdS )CopyIndex1TestCaser   r   r   r%   Nr4   r5   r6   r   rp   rG  r+  rH  r
   r   r   r  r    '        JEEDDDDr   r  c                   "    e Zd ZdZdZdZdZdZdS )CopyIndex2TestCaser   r   ry   r   Nr  r
   r   r   r  r    s'        JEEDDDDr   r  c                   "    e Zd 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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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ZdS )CopyIndex6TestCaser   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S )CopyIndex7TestCaser   r   r   r%   rz   Nr  r
   r   r   r  r    s'        JEEDDDDr   r  c                   "    e Zd ZdZdZdZdZdZdS )CopyIndex8TestCaser   r   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S )CopyIndex9TestCaser   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S )CopyIndex10TestCaser   r   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S )CopyIndex11TestCaser   r   r  ry   Nr  r
   r   r   r  r    s'        JEEDDDDr   r  c                   "    e Zd ZdZdZdZdZdZdS )CopyIndex12TestCaser    r   ry   Nr   r  r
   r   r   r  r    s'        JEEDDDDr   r  c                       e Zd Zd Zd ZdS )LargeRowSizec                 v   t           j                            t          j        d          dz  g          }| j                            | j        j        d|           | j        j        j                                        }| 	                    |
                                |
                                           dS )z7Checking saving a Table with a moderately large rowsizerc   r   largerowN)r   r   r   r=  rl   r   rm   r  r  r   r  r`  s      r   ra  zLargeRowSize.test00  s     FLL29S>>Q./00 	  !1:qAAA [&++--bjjll33333r   c                 \   t          j        dt          j        d                    }| j                            | j        j        d|           | j        j        j                                        }|                     |	                                |	                                           dS )z7Checking saving a Table with an extremely large rowsizerz   z(300,100)i4,(400,400)f8r   r  N)
r   r  r}   rl   r   rm   r  r  r   r  r`  s      r   r  zLargeRowSize.test01  s     HRrx(ABBCCC  !1:qAAA [&++--bjjll33333r   N)r4   r5   r6   ra  r  r
   r   r   r  r    s2        4 4 4
4 
4 
4 
4 
4r   r  c                       e Zd ZeZd Zd ZdS )DefaultValuesc                    | j                             | j         j        d| j                  }d|_        t          |j        dz            }|j        }t          |          D ],}|dk    rd|d<   |dk    rd|d<   |                                 -|	                                 g d	}d

                    d          }t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          j                            t!          |          g|z  d                    |                    }d|d         d<   d|d         d<   |dd         }t$          j        rt)          d           |                    dd          D ]}t)          |           t)          d           t)          |dd                    t)          d            t)          |dd                    t-          |j        j        |j        j                  D ]9\  }	}
|                     t%          j        ||	         ||
                              :dS )!z@Checking saving a Table with default values (using the same Row)r   .   皙?r    r   r;   r   r=   
r   r   r   r   r!   r"   er   r&   r(   a4,i4,i2,f8,f4,u2,a1,b1,c8,c16rL  r*   r+   rN  r-   rO  r.   rP  r/   r(   rQ  r2   rR  r  r  NFirst 10 table values:r   rz   !The first 5 read recarray values:r"   Records should look like:)rl   r   rm   r   r   intr   r   r   r   rS  rJ   r7   r   r   r   r   rV  r   r   r   r   zipr}   rU  r   r   )rr   r   r   r   r   valuesrT  r   r  name1name2s              r   ra  zDefaultValues.test00  s    (()97)-6 6 E$s*++iu 	 	AAvvFAvvFJJLLLL 	 BAA288==2|$$ 	!MM#NN4   2|$$ 	"MM#NN5!!!2}%% 	"MM#NN5!!!2'' 	"MM&!!!NN5!!!2'' 	"MM&!!!NN5!!!FLL%--50#((7:K:KLLL $
$
 222Y > 	*+++~~a,,  c



5666"RaR&MMM-...!BQB%LLLrx~>> 	B 	BLE5OOFOAeHbi@@AAAA	B 	Br   c                    | j                             | j         j        d| j                  }d|_        t          |j        dz            }t          |          D ];}|dk    r
d|j        d<   |dk    r
d|j        d<   |j                                         <|	                                 g d	}d

                    d          }t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          t          d          r*|                    d           |                    d           t          j                            t!          |          g|z  d                    |                    }d|d         d<   d|d         d<   |dd         }t$          j        rt)          d           |                    dd          D ]}t)          |           t)          d           t)          |dd                    t)          d            t)          |dd                    t-          |j        j        |j        j                  D ]9\  }	}
|                     t%          j        ||	         ||
                              :dS )!zAChecking saving a Table with default values (using different Row)r   r  r  r    r   r;   r   r=   r  r  rL  r*   r+   rN  r-   rO  r.   rP  r/   r(   rQ  r2   rR  r  r  Nr  r   rz   r  r"   r  )rl   r   rm   r   r   r  r   r   r   r   rS  rJ   r7   r   r   r   r   rV  r   r   r   r   r   r}   rU  r   r   )rr   r   r   r   r!  rT  r   r  r   r"  r#  s              r   r  zDefaultValues.test01M  s    (()97)-6 6 E$s*++u 	 	AAvv$%	&!Avv$%	&!I 	 BAA288==2|$$ 	!MM#NN4   2|$$ 	"MM#NN5!!!2}%% 	"MM#NN5!!!2'' 	"MM&!!!NN5!!!2'' 	"MM&!!!NN5!!!FLL%--50#((7:K:KLLL $
$
 222Y > 	*+++~~a,,  c



5666"RaR&MMM-...!BQB%LLLrx~>> 	B 	BLE5OOFOAeHbi@@AAAA	B 	Br   N)r4   r5   r6   r   r   ra  r  r
   r   r   r  r    sH        FBB BB BBVAB AB AB AB ABr   r  c                       e Zd Zd ZeZdS )OldRecordDefaultValuesNrA  r
   r   r   r&  r&    s        $EFFFr   r&  c                       e Zd Z ej        dd          Z ej        d          Z ej        d          Z	 ej
        d          ZdS )	Record2r   r   r1   r   r,   r   r   N)r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r
   r   r   r(  r(    s`        2<111D29!D2;AD2=c"""DDDr   r(  c                   >     e Zd ZeZdZ fdZd Zd Zd Z	d Z
 xZS )LengthTestCaserd   c                     t                                                       | j        j        | _        |                                  d S rh   )rj   rk   rl   rm   rn   ro   rq   s    r   rk   zLengthTestCase.setUp  s:     )r   c                     | j                             | j         j        d| j        d          }|j        }t          | j                  D ]}|                                 |                                 || _	        d S )Nr   z__length__ testr  )
rl   r   rm   r   r   r   r   r   r   r   )rr   r   r   r   s       r   ro   zLengthTestCase.populateFile  s~    (()97)-<M ) O O i tz"" 	 	AJJLLLL 	


r   c                     t           j        r,t          dd           t          d| j        j        z             t          | j                  | j        k     dS )zChecking __length__ in Table.r   r   zRunning %s.test01_lengthrows...N)r   r   r   rs   r4   r   r   r   rx  s    r   test01_lengthrowsz LengthTestCase.test01_lengthrows  sU     > 	O$	"""3dn6MMNNN 	DJ4:%%%%r   c                 *   t           j        r,t          dd           t          d| j        j        z             | j        t          u rt          | j        j	                  dk     dS | j        t          u rt          | j        j	                  dk     dS dS )zChecking __length__ in Cols.r   r   zRunning %s.test02_lengthcols...r   r   N)r   r   r   rs   r4   r   r   r   r   r   r(  rx  s    r   test02_lengthcolsz LengthTestCase.test02_lengthcols  s     > 	O$	"""3dn6MMNNN ;&  
  A%%%%[G##
  A%%%% $#r   c                     t           j        r,t          dd           t          d| j        j        z             | j        j        D ]2}t          t          | j        j	        |                    | j
        k     3dS )zChecking __length__ in Column.r   r   zRunning %s.test03_lengthcol...N)r   r   r   rs   r4   r   r   r   getattrr   r   )rr   r   s     r   test03_lengthcolzLengthTestCase.test03_lengthcol  s     > 	N$	"""2T^5LLMMM z* 	A 	AG
1122dj@@@	A 	Ar   )r4   r5   r6   r   r   r   rk   ro   r.  r0  r3  r9  r:  s   @r   r*  r*    s        FE      & & && & &	A 	A 	A 	A 	A 	A 	Ar   r*  c                       e Zd ZeZdZdS )Length1TestCaserd   N)r4   r5   r6   r   r   r   r
   r   r   r5  r5    s        FEEEr   r5  c                       e Zd ZeZdZdS )Length2TestCaserc   N)r4   r5   r6   r(  r   r   r
   r   r   r7  r7    s        FEEEr   r7  c                   r     e Zd ZdZ G d dej                  Z fdZd Zd Z	d Z
d Zd	 Zd
 Zd Z xZS )WhereAppendTestCasez$Tests `Table.append_where()` method.c                   l    e Zd Z ej                    Z ej                    Z ej        d          Z	dS )WhereAppendTestCase.SrcTblDescr   r   N)
r4   r5   r6   r7   r:   idr  v1r8   v2r
   r   r   
SrcTblDescr;    s<        RY[[R[]]R\1%%%r   r@  c                 L   t                                                       | j                            dd| j                  }|j        }d|d<   d|d<   d|d<   |                                 d	|d<   d
|d<   d|d<   |                                 |                                 d S )Nr  testr   r=  g      ?r>  aaaaaaaar?  r   g      @bbbbbb)rj   rk   rl   r   r@  r   r   r   )rr   r   r   rs   s      r   rk   zWhereAppendTestCase.setUp  s    k&&sFDODDgD	D	D	

D	D	D	

		r   c                    | j         }| j        j        j        }| j                            dd|          }|                    |d           t          |          }|                    d          D ]Z}t          |          }| 	                    |d         |d         k    o#|d         |d         k    o|d         |d         k               [| 
                    t          t          |           dS )zQuery with same storage.r  test2id > 1r=  r>  r?  N)r@  rl   rm   rB  r   append_whereiterr1  nextr   r  StopIterationrr   
DstTblDesctbl1tbl2it2r  r  s          r   test00_samezWhereAppendTestCase.test00_same  s     _
{${''WjAA$))) 4jj**X&& 	6 	6BcBOOBtH40 5RXD5I 5 "4BtH 46 6 6 6 	-s33333r   c                     G d dt           j                  }| j        j        j        }| j                            dd|          }|                    |d           t          |          }|                    d          D ]Z}t          |          }| 
                    |d         |d         k    o#|d         |d         k    o|d         |d         k               [|                     t          t          |           d	S )
zQuery with compatible storage.c                       e Zd Z ej                    Z ej                    Z ej        d          Z ej                    Z	dS )9WhereAppendTestCase.test01_compatible.<locals>.DstTblDescr'   r<  N)
r4   r5   r6   r7   r  r=  r>  r8   r?  v3r
   r   r   rM  rT    sI        BBr***BBBBr   rM  r  rF  rG  r=  r>  r?  N)r7   r  rl   rm   rB  r   rH  rI  r1  rJ  r   r  rK  rL  s          r   test01_compatiblez%WhereAppendTestCase.test01_compatible  s   	 	 	 	 	) 	 	 	 {${''WjAA$))) 4jj**X&& 	6 	6BcBOOBtH40 5RXD5I 5 "4BtH 46 6 6 6 	-s33333r   c                     G d dt           j                  }| j        j        j        }| j                            dd|          }|                    |d           t          |          }|                    d          D ]g}t          |          }| 
                    |d         |d         k    o0t          |d                   |d         k    o|d         |d         k               h|                     t          t          |           d	S )
z Query with less precise storage.c                   l    e Zd Z ej                    Z ej                    Z ej        d          ZdS ):WhereAppendTestCase.test02_lessPrecise.<locals>.DstTblDescr   r<  N)	r4   r5   r6   r7   r:   r=  r>  r8   r?  r
   r   r   rM  rY  4  s<        BBq)))BBBr   rM  r  rF  rG  r=  r>  r?  N)r7   r  rl   rm   rB  r   rH  rI  r1  rJ  r   r  r  rK  rL  s          r   test02_lessPrecisez&WhereAppendTestCase.test02_lessPrecise1  s   	* 	* 	* 	* 	*) 	* 	* 	*
 {${''WjAA$))) 4jj**X&& 	6 	6BcBOOBtH40 5SD]]bh5N 5 "4BtH 46 6 6 6 	-s33333r   c                      G d dt           j                  }| j        j        j        }| j                            dd|          }|                     t          |j        |d           dS )z Query with incompatible storage.c                   p    e Zd Z ej        d          Z ej                    Z ej        d          ZdS );WhereAppendTestCase.test03_incompatible.<locals>.DstTblDescr   r<  r   N)	r4   r5   r6   r7   r8   r=  r  r>  r?  r
   r   r   rM  r]  K  sC        q)))BBq)))BBBr   rM  r  rF  z
v1 == b"1"N)	r7   r  rl   rm   rB  r   r  r  rH  rr   rM  rN  rO  s       r   test03_incompatiblez'WhereAppendTestCase.test03_incompatibleH  s    	* 	* 	* 	* 	*) 	* 	* 	*
 {${''WjAA-+T<	A 	A 	A 	A 	Ar   c                      G d dt           j                  }| j        j        j        }| j                            dd|          }|                     t          |j        |d           dS )z#Query with storage lacking columns.c                   N    e Zd Z ej                    Z ej        d          ZdS )7WhereAppendTestCase.test04_noColumn.<locals>.DstTblDescr   r<  N)r4   r5   r6   r7   r  r>  r8   r?  r
   r   r   rM  rb  Y  s/        Bq)))BBBr   rM  r  rF  rG  N)	r7   r  rl   rm   rB  r   r  r  rH  r^  s       r   test04_noColumnz#WhereAppendTestCase.test04_noColumnV  sz    	* 	* 	* 	* 	*) 	* 	* 	*
 {${''WjAA(D$5tXFFFFFr   c                 "   t          j        d          }	 t          j        |d          5 }| j        j        j        }|                    dd| j                  }|	                    |d           ddd           n# 1 swxY w Y   t          j        |d          5 }|j        j        }| 
                    t          j        |j	        |d           |                     d           | j        j        j        }| 
                    t          j        |j	        |d           ddd           n# 1 swxY w Y   t          j        |d	          5 }|j        j        }|	                    |d           ddd           n# 1 swxY w Y   t          |                                          r#t          |                                           dS dS # t          |                                          r"t          |                                           w w xY w)
z%Appending to a table in another file.z.h5)suffixra   r  rB  rG  Nr   r=  )tempfilemktempr7   r   rl   rm   rB  r   r@  rH  r  FileModeErrorr  r   is_fileunlink)rr   h5fname2h5file2rN  rO  s        r   test05_otherFilez$WhereAppendTestCase.test05_otherFilec  s    ?%000	(h,, 2{',++CII !!$1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 h,, 	E|(!!""2"&"3T8E E E S!!!{',!!""2"&"3T8E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E h,, 2|(!!$1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 H~~%%'' (X%%'''''( (tH~~%%'' (X%%''''(sy   G	 AA<0G	 <B  G	 B G	 BD)G	 )D--G	 0D-1G	 	#E8,G	 8E<<G	 ?E< G	 	AHc                    | j         }| j        j        j        }| j                            dd|          }|                    |           t          |          }|                                D ]Z}t          |          }| 	                    |d         |d         k    o#|d         |d         k    o|d         |d         k               [| 
                    t          t          |           dS )zAppend whole table.r  rF  r=  r>  r?  N)r@  rl   rm   rB  r   rH  rI  __iter__rJ  r   r  rK  rL  s          r   test06_wholeTablez%WhereAppendTestCase.test06_wholeTable  s     _
{${''WjAA$ 4jj--// 	6 	6BcBOOBtH40 5RXD5I 5 "4BtH 46 6 6 6 	-s33333r   )r4   r5   r6   __doc__r7   r  r@  rk   rQ  rV  rZ  r_  rc  rm  rp  r9  r:  s   @r   r9  r9    s        ..& & & & &R% & & &
    $4 4 4(4 4 404 4 4.A A AG G G( ( (B4 4 4 4 4 4 4r   r9  c                   $     e Zd Z fdZd Z xZS )DerivedTableTestCasec                     t                                                       | j                            ddt                     d S )Nr  originalrj   rk   rl   r   r   rq   s    r   rk   zDerivedTableTestCase.setUp  s4      j&99999r   c                     | j         j        j        }| j                             dd|j                  }|                     |j        |j                   dS )z1Deriving a table from the description of another.r  derivedN)rl   rm   ru  r   r   r   )rr   rN  rO  s      r   ra  zDerivedTableTestCase.test00  sO     {({''Y8HII)4+;<<<<<r   r4   r5   r6   rk   ra  r9  r:  s   @r   rs  rs    sG        : : : : := = = = = = =r   rs  c                   *     e Zd Z fdZd Zd Z xZS )ChunkshapeTestCasec                     t                                                       | j                            ddt          d           d S )Nr  r   r^  r  rv  rq   s    r   rk   zChunkshapeTestCase.setUp  s9      gv" EEEEEr   c                     | j         j        j        }t          j        rt          d|j                   |                     |j        d           dS )z3Test setting the chunkshape in a table (no reopen).chunkshape-->r^  N)rl   rm   r   r   r   r   r  r   rr   r   s     r   ra  zChunkshapeTestCase.test00  sK     k$> 	3/3>222/////r   c                    | j                                          t          j        | j        d          | _         | j         j        j        }t          j        rt          d|j
                   |                     |j
        d           dS )z0Test setting the chunkshape in a table (reopen).r   r~  r  N)rl   rp   r7   r   r   rm   r   r   r   r   r  r   r  s     r   r  zChunkshapeTestCase.test01  st     	l4<55k$> 	3/3>222/////r   )r4   r5   r6   rk   ra  r  r9  r:  s   @r   r{  r{    s[        F F F F F0 0 00 0 0 0 0 0 0r   r{  c                   $     e Zd Z fdZd Z xZS )ZeroSizedTestCasec                     t                                                       | j                            ddt	          j                    t	          j                    d          }|                    dg           d S )Nr  r   )c1c2)r   g@)rj   rk   rl   r   r7   r  r>   r   )rr   trs   s     r   rk   zZeroSizedTestCase.setUp  sl     K$$S'"+--:<-//4K 4K L L 	
(r   c                     | j         j        j        }t          j        dd          }|                    |           |                     |j        dd           dS )zAppending zero length recarray.r  zi4,f8)rY   r}   r   zThe number of rows should be 1.N)rl   rm   r   r   r  r   r   r   )rr   r  r=  s      r   test01_canAppendz"ZeroSizedTestCase.test01_canAppend  sU     K"H4w///	!%FGGGGGr   )r4   r5   r6   rk   r  r9  r:  s   @r   r  r    sN            H H H H H H Hr   r  c                   $     e Zd Z fdZd Z xZS )IrregularStrideTestCasec                 V   t                                                        G d dt          j                  }| j                            dd|          }t          d          D ]/}||j        d<   ||j        d<   |j                                         0|	                                 d S )Nc                   R    e Zd Z ej        d          Z ej        d          ZdS ).IrregularStrideTestCase.setUp.<locals>.IRecordr   rS   r   Nr4   r5   r6   r7   r  r  r>   r  r
   r   r   IRecordr    6        ###B1%%%BBBr   r  r  r   rz   r  r  )
rj   rk   r7   r  rl   r   r   r   r   r   rr   r  r   r   rs   s       r   rk   zIrregularStrideTestCase.setUp  s    	& 	& 	& 	& 	&b& 	& 	& 	& ((gw??r 	 	AEIdOEIdOIr   c           	          | j         j        j        }|                    d          }|                    d          }t          j        r t          d|           t          d|           |                     t	          j        |t          j
        dt          j        j                                       |                     t	          j        |t          j
        dt          j        j                                       dS )z>Selecting rows in a table with irregular stride (but aligned).zc1<5zc2<5z
Selected coords1-->Selected coords2-->r"   r   N)rl   rm   r   get_where_listr   r   r   r   r   r   r=  r7   rC  SizeType)rr   r   coords1coords2s       r   ra  zIrregularStrideTestCase.test00  s      &&&v..&&v..> 	2)7333'111OGRYq8I%J%J%JKK	M 	M 	MOGRYq8I%J%J%JKK	M 	M 	M 	M 	Mr   ry  r:  s   @r   r  r    sN            M M M M M M Mr   r  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )Issue262TestCasec                 6   t                                                        G d dt          j                  }| j                            dd|          }d|_        t          d          D ]}||j        d<   ||j        d<   |j        	                                 |d	z  |j        d<   d
|z
  |j        d<   |j        	                                 d
|z
  |j        d<   d|dz  z   |j        d<   |j        	                                 |
                                 d S )Nc                   R    e Zd Z ej        d          Z ej        d          ZdS )'Issue262TestCase.setUp.<locals>.IRecordr   rS   r   Nr  r
   r   r   r  r    r  r   r  r  r   r    rd   r  r     i,  rc      )rj   rk   r7   r  rl   r   r   r   r   r   r   r  s       r   rk   zIssue262TestCase.setUp  s   	& 	& 	& 	& 	&b& 	& 	& 	& ((gw??r 	 	AEIdOEIdOI"fEIdO!AgEIdOI!AgEIdO!AFlEIdOIr   c                 &   | j         j        j        }|                    ddd          }|                    ddd          }|                                }|t          j        |d         dk    |d         d	k     z                     }t          j        r>t                       t          d
|           t          d|           t          d|           | 
                    t          |          t          |          z   t          |                     dS )zRegression test for gh-260z(c1>5)&(c2<30)r   r   rG  rH  r   r  r"   r  r  zSelected coords1-->r  zSelected data-->N)rl   rm   r   r  r  r   r1  r   r   r   r   r   )rr   r   r  r  datas        r   
test_gh260zIssue262TestCase.test_gh260  s      &&&'7qq&II&&'7qq&IIzz||BHd4j1ndbABBC> 	,GGG'111'111$d+++WG4c$ii@@@@@r   c                     | j         j        j        }|                    ddd          }t          j        rt                       t          d|           |                     t          |          d           dS )z,Regression test for gh-262 (start=0, step=1)(c1>5)&(~(c1>5))r   r   r  data -->N	rl   rm   r   r  r   r   r   r   r   rr   r   r  s      r   test_gh262_01zIssue262TestCase.test_gh262_01!  q      &##$6aa#HH> 	$GGG*d###TA&&&&&r   c                     | j         j        j        }|                    ddd          }t          j        rt                       t          d|           |                     t          |          d           dS )z,Regression test for gh-262 (start=1, step=1)r  r   r  r  r   Nr  r  s      r   test_gh262_02zIssue262TestCase.test_gh262_02,  r  r   c                     | j         j        j        }|                    ddd          }t          j        rt                       t          d|           |                     t          |          d           dS )z,Regression test for gh-262 (start=0, step=2)r  r   r   r  r  Nr  r  s      r   test_gh262_03zIssue262TestCase.test_gh262_037  r  r   c                     | j         j        j        }|                    ddd          }t          j        rt                       t          d|           |                     t          |          d           dS )z,Regression test for gh-262 (start=1, step=2)r  r   r   r  r  r   Nr  r  s      r   test_gh262_04zIssue262TestCase.test_gh262_04B  r  r   )
r4   r5   r6   rk   r  r  r  r  r  r9  r:  s   @r   r  r    s            2A A A 	' 	' 	'	' 	' 	'	' 	' 	'	' 	' 	' 	' 	' 	' 	'r   r  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )TruncateTestCasec                 H   t                                                       | j                            dd| j                  }t          d          D ]/}||j        d<   ||j        d<   |j                                         0|                                 |j	        | _
        d S )Nr  r   r   r  r  )rj   rk   rl   r   r  r   r   r   r   r   dflts)rr   r   r   rs   s      r   rk   zTruncateTestCase.setUpO  s    ((gt|DDq 	 	AEIdOEIdOI^


r   c                    | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    |j        d           |D ]#}| 
                    |d         |j                   $dS )z7Checking Table.truncate() method (truncating to 0 rows)r   r  table-->r  Nrl   rm   r   truncaterp   r   r   r   r  r  r   r   r  rr   r   r   s      r   test00_truncatez TruncateTestCase.test00_truncate\        &q: 	+~ 0.///LLNNNK$*E> 	,*ejjll+++a((( 	2 	2CSY1111	2 	2r   c                    | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    |j        d           |D ]#}| 
                    |d         |j                   $dS )z7Checking Table.truncate() method (truncating to 1 rows)r   r  r  r  Nr  r  s      r   test01_truncatez TruncateTestCase.test01_truncatep  r  r   c                    | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    |j        d           |D ]#}| 
                    |d         |j                   $dS )z>Checking Table.truncate() method (truncating to == self.nrows)r   r  r  r  Nr  r  s      r   test02_truncatez TruncateTestCase.test02_truncate  r  r   c                    | j         j        j        }|                    d           | j        r@t
          j        rt          d           |                                  | j         j        j        }t
          j        r"t          d|	                                           | 
                    |j        d           |                    dd          D ]#}| 
                    |d         |j                   $|                    dd          D ]P}| 
                    |d         | j        d                    | 
                    |d         | j        d                    Qd	S )
z=Checking Table.truncate() method (truncating to > self.nrows)r   r  r  r   r   )rG  r+  r  r  N)rl   rm   r   r  rp   r   r   r   r  r  r   r   r   r  r  r  s      r   test03_truncatez TruncateTestCase.test03_truncate  sF     &q: 	+~ 0.///LLNNNK$*E> 	,*ejjll+++a(((>>>22 	2 	2CSY1111>>>22 	: 	:CSY
4(8999SY
4(89999	: 	:r   )	r4   r5   r6   rk   r  r  r  r  r9  r:  s   @r   r  r  N  st        $ $ $ $ $2 2 2(2 2 2(2 2 2(: : : : : : :r   r  c                   8    e Zd Z G d dej                  ZdZdS )TruncateOpen1c                   R    e Zd Z ej        d          Z ej        d          ZdS )TruncateOpen1.IRecordr   rS   r   Nr4   r5   r6   r7   r  r  r  r  r
   r   r   r  r    6        R[QR[Qr   r  r   Nr4   r5   r6   r7   r  r  rp   r
   r   r   r  r    B                 ""       EEEr   r  c                   8    e Zd Z G d dej                  ZdZdS )TruncateOpen2c                   V    e Zd Z ej        dd          Z ej        dd          ZdS )TruncateOpen2.IRecordr   r    r   r   r   gNr  r
   r   r   r  r    s:        R[QQ'''R[QT***r   r  r   Nr  r
   r   r   r  r    sB        + + + + +"" + + + EEEr   r  c                   8    e Zd Z G d dej                  ZdZdS )TruncateClose1c                   R    e Zd Z ej        d          Z ej        d          ZdS )TruncateClose1.IRecordr   rS   r   Nr  r
   r   r   r  r    r  r   r  r   Nr  r
   r   r   r  r    r  r   r  c                   8    e Zd Z G d dej                  ZdZdS )TruncateClose2c                   V    e Zd Z ej        dd          Z ej        dd          ZdS )TruncateClose2.IRecordr   r   r  r   r   Nr  r
   r   r   r  r    s:        R[QQ'''R[QS)))r   r  r   Nr  r
   r   r   r  r    sB        * * * * *"" * * * EEEr   r  c                   T     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Z xZS )PointSelectionTestCasec                    t                                                       d}ddgddgg| _        d|gd|dz   gd| dz
  gg| _        g d| _        t          j        |          x| _        }t          j        |d          x| _	        }||d         d d <   ||d	         d d <   | j
                            | j
        j        d
|          | _        d S )Nrc   r   r   ry   ))r   r   )rd   )r  r   )r   rz   zi4,f4r   r  r  r   )rj   rk   working_keysetnot_working_keysetlimitsr   r=  r  r  recarrrl   r   rm   r   )rr   Nr  r  rs   s       r   rk   zPointSelectionTestCase.setUp  s     FG

 F!H1I#

 
 
 9Q<<'	D!x9999ftQQQtQQQ[--dk.>.46 6


r   c                 V   | j         }| j        }| j        }| j        D ]\  }}||k    ||k     z  }t          j        rt          d|           ||         }||         }t          j        r t          d|           t          d|           t          j        	                    ||d           dS )z/Test for point-selections (read, boolean keys).Selection to test:zNumPy selection:zPyTables selection:3NumPy array and PyTables selections does not match.N)
r  r  r   r  r   r   r   r   r%  r&  	rr   r  r  r   value1value2keyr=  rJ  s	            r   test01a_readz#PointSelectionTestCase.test01a_read  s     y
"k 
	M 
	MNFF6>dVm4C~ 1*C000sAc
A~ 0(!,,,+Q///J))1KM M M M
	M 
	Mr   c                 >   | j         }| j        }| j        }| j        D ]\  }}t	          j        ||k    ||k     z            }t          j        rt          d|t          |                     ||         }||         }t          j
                            ||d           dS )z:Test for point-selections (read, tuples of integers keys).r  r  Nr  r  r   r  r   r1  r   r   r   r   r%  r&  r  s	            r   test01b_readz#PointSelectionTestCase.test01b_read   s     y
"k 	M 	MNFF(DFNtf}=>>C~ <*Cc;;;sAc
AJ))1KM M M M	M 	Mr   c                 <   | j         }| j        }| j        }| j        D ]~\  }}t	          j        ||k    ||k     z            }t          j        rt          d|           ||          t	          j	        |d          }| 
                    t          |j        |           dS )z8Test for point-selections (read, tuples of floats keys).r  f4N)r  r  r   r  r   r1  r   r   r   r   r  r  __getitem__)rr   r  r  r   r  r  r  fkeys           r   test01c_readz#PointSelectionTestCase.test01c_read  s     y
"k 	B 	BNFF(DFNtf}=>>C~ 1*C0003KK8C&&Di):DAAAA	B 	Br   c                 J   | j         }| j        }| j        }| j        D ]\  }}t	          j        ||k    ||k     z            d         }t          j        rt          d|t          |                     ||         }||         }t          j
                            ||d           dS )z-Test for point-selections (read, numpy keys).r   r  r  Nr  r  s	            r   test01d_readz#PointSelectionTestCase.test01d_read  s     y
"k 	M 	MNFF(DFNtf}=>>qAC~ <*Cc;;;sAc
AJ))1KM M M M	M 	Mr   c                 n   | j         }| j        }| j        }| j        D ]\  }}t	          j        ||k    ||k     z            d                                         }t          j        rt          d|t          |                     ||         }||         }t          j                            ||d           dS )z,Test for point-selections (read, list keys).r   r  r  N)r  r  r   r  r   r1  r  r   r   r   r   r%  r&  r  s	            r   test01e_readz#PointSelectionTestCase.test01e_read,  s     y
"k 	M 	MNFF(DFNtf}=>>qAHHJJC~ <*Cc;;;sAc
AJ))1KM M M M	M 	Mr   c                     | j         }| j        }| j        D ]O}t          j        rt          d|           ||         }||         }t          j                            ||d           Pd S )Nr  r  )	r  r   r  r   r   r   r   r%  r&  )rr   r  r   r  r=  rJ  s         r   test01f_readz#PointSelectionTestCase.test01f_read;  s    
& 	M 	MC~ 1*C000sAc
AJ))1KM M M M	M 	Mr   c                     | j         }| j        D ]?}t          j        rt	          d|           |                     t          |j        |           @d S )Nr  )r   r  r   r   r   r  
IndexErrorr  )rr   r   r  s      r   test01g_readz#PointSelectionTestCase.test01g_readG  sb    
* 	B 	BC~ 1*C000j%*;SAAAA		B 	Br   c                    | j         }| j        }| j        }| j        D ]\  }}t	          j        ||k    ||k     z            }t          j        rt          d|           ||         }|dt          |                   dz  |d         dd<   |dt          |                   dz  |d         dd<   |||<   |||<   |dd         }|dd         }	t          j
                            ||	d           dS )z0Test for point-selections (write, boolean keys).r  Nr   r  r    r  6NumPy array and PyTables modifications does not match.r  r  r   r  r   r1  r   r   r   r   r%  r&  
rr   r  r  r   r  r  r  r   r=  rJ  s
             r   test02a_writez$PointSelectionTestCase.test02a_writeP      y
"k 	P 	PNFF(DFNtf}=>>C~ 1*C000sAgs1vvgqAdGAAAJgs1vvgqAdGAAAJF3KE#Jqqq	AaaaAJ))1NP P P P	P 	Pr   c                    | j         }| j        }| j        }| j        D ]\  }}t	          j        ||k    ||k     z            }t          j        rt          d|           ||         }|dt          |                   dz  |d         dd<   |dt          |                   dz  |d         dd<   |||<   |||<   |dd         }|dd         }	t          j
                            ||	d           dS )z0Test for point-selections (write, integer keys).r  Nr   r  r    r  r  r  r  s
             r   test02b_writez$PointSelectionTestCase.test02b_writef  r  r   )r4   r5   r6   rk   r  r  r  r  r  r  r  r  r   r9  r:  s   @r   r  r    s        6 6 6 6 6>M M M$M M MB B BM M MM M M
M 
M 
MB B BP P P,P P P P P P Pr   r  c                       e Zd Zd ZdS )MDLargeColTestCasec                    d}dt          j        |d          i}| j                            dd|          }|j                                         |                                 | j        r&|                     d           | j        j	        j
        }t          j        rt          d|d         d                    t          j                            |d         d         t          j        |d	                     d
S )z9Create a Table with a very large MD column.  Ticket #211.i   r  r   )rY   r   r  rB  r=  zFirst row-->i1N)r7   Int8Colrl   r   r   r   r   r  r  rm   rB  r   r   r   r   r%  r&  r  )rr   r  r   r   s       r   test01_createz MDLargeColTestCase.test01_create  s    
3334k&&sFD99		; 	(LL+"'C> 	2.#a&.111

%%c!fVnbhq$6G6GHHHHHr   N)r4   r5   r6   r  r
   r   r   r  r  ~  s(        I I I I Ir   r  c                       e Zd ZdZdS )MDLargeColNoReopenFNr  r
   r   r   r  r    s        FFFr   r  c                       e Zd ZdZdS )MDLargeColReopenTNr  r
   r   r   r
  r
    s        FFFr   r
  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )ExhaustedIterc                    t                                                        G d dt          j                  }| j                            dd|d          }t          j        d          }|j        }t          d          D ]<}t          d	          D ]*}|D ]%}||d
<   ||d<   ||d<   |
                                 &+=|                                 d S )Nc                   t    e Zd Z ej        d          Z ej        d          Z ej        d          ZdS ))ExhaustedIter.setUp.<locals>.Observationsr   rS   r   r    N)	r4   r5   r6   r7   r:   	market_idscenario_idr@   r  r
   r   r   Observationsr    sJ        !	a(((I#")***K!BMa(((EEEr   r  r  observationsr3   r     r"   r    r  r  r  )rj   rk   r7   r  rl   r   r   r=  r   r   r   r   )	rr   r  r   r  r   r  r  obsrs   s	           r   rk   zExhaustedIter.setUp  s    	) 	) 	) 	) 	)2+ 	) 	) 	)
 ((nl46 ) 8 8 y~~iq 	! 	!I$Qxx ! !' ! !C'0C$)4C&#&CLJJLLLL	!! 	r   c                 B    t          |d          t          |          z  S )Nr{   )sumr   )rr   r!  s     r   averagezExhaustedIter.average  s    63#f++--r   c                     |d         S )Nr  r
   r-  s     r   
f_scenariozExhaustedIter.f_scenario  s    =!!r   c                 b   | j         j        j                            d          }g }t	          j        || j                  D ]9\  }}d |D             }|                    |                     |                     :t          j
        rt          d|           |                     |g d           dS )z6Checking iterating an exhausted iterator (ticket #264)(market_id == 3)c                     g | ]
}|d          S r  r
   r  s     r   r   z0ExhaustedIter.test00_groupby.<locals>.<listcomp>      999SCL999r   	Means -->      \@r"  r"  N)rl   rm   r  r1  	itertoolsgroupbyr  r   r  r   r   r   r   rr   r
  scenario_meansr  rows_groupedvalss         r   test00_groupbyzExhaustedIter.test00_groupby  s    {,223EFF)2):4;??*L *L 	6 	6%K99L999D!!$,,t"4"45555> 	/+~...)>)>)>?????r   c                    |                                   | j        j        j                            d          }g }t          j        || j                  D ]9\  }}d |D             }|                    | 	                    |                     :t          j        rt          d|           |                     |g d           dS )z?Checking iterating an exhausted iterator (ticket #264). Reopen.r  c                     g | ]
}|d          S r  r
   r  s     r   r   z0ExhaustedIter.test01_groupby.<locals>.<listcomp>  r  r   r   r!  N)r  rl   rm   r  r1  r#  r$  r  r   r  r   r   r   r   r%  s         r   test01_groupbyzExhaustedIter.test01_groupby  s     	{,223EFF)2):4;??*L *L 	6 	6%K99L999D!!$,,t"4"45555> 	/+~...)>)>)>?????r   )	r4   r5   r6   rk   r  r  r)  r,  r9  r:  s   @r   r  r    s~            .. . ." " "
@ 
@ 
@@ @ @ @ @ @ @r   r  c                       e Zd Zd ZdS )SpecialColnamesTestCasec                    | j         }t          j        dgdt          fdt          fdt          fg          }|                    |j        d|          }|                     t          |j                  dd           t          j
        rt          d	|j                   t          |j        d
          D ]\  }}|                     ||           d S )Nr   r   r    r=  _b__cr   rB  r    zNumber of columns incorrectzcolnames -->)r=  r1  r2  )rl   r   r   r  r   rm   r   r   r   r   r   r   r   )rr   fr=  r  r   r#  s         r   test00_check_namesz*SpecialColnamesTestCase.test00_check_names  s    KHi[*c{UCL)2 3 3 3NN1661--QZ!-JKKK> 	..!*---qz+=>> 	* 	*KD%T5))))	* 	*r   N)r4   r5   r6   r4  r
   r   r   r.  r.    s#        	* 	* 	* 	* 	*r   r.  c                       e Zd Zd ZdS )RowContainsTestCasec                 l   | j         }t          j        dgd          }|                    |j        d|          }d |                                D             d         }t          j        rt          d|d d                     dD ]}| 	                    ||           | 
                    d|           d S )	Nr0  zi1,i2,i4r   rB  c                     g | ]}|S r
   r
   rE  s     r   r   z;RowContainsTestCase.test00_row_contains.<locals>.<listcomp>  s    '''Qq'''r   r   zrow -->r   )rl   r   r   r   rm   r   r   r   r   r  assertNotIn)rr   r3  r=  r  r   items         r   test00_row_containsz'RowContainsTestCase.test00_row_contains  s    KHi[
333NN1661--''!**,,'''*> 	%)SV$$$ 	% 	%DMM$$$$$C     r   N)r4   r5   r6   r;  r
   r   r   r6  r6    s#        	! 	! 	! 	! 	!r   r6  c                   T     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Z xZS )AccessClosedTestCasec                 h   t                                                       | j                            | j        j        dt
                    | _        | j        j        }t          d          D ]+}d|z  |d<   ||d<   |dz  |d<   |	                                 ,| j        
                                 d S )Nr   rz   rv   r9   r;   r    r=   )rj   rk   rl   r   rm   r   r   r   r   r   r   )rr   r   r   rs   s      r   rk   zAccessClosedTestCase.setUp  s    [--Kgv/ /
 jnr 	 	A 1*CKCKa%CKJJLLLL
r   c                     | j                                          |                     t          j        | j        j                   d S rh   )rl   rp   r  r7   ClosedNodeErrorr   r  rx  s    r   	test_readzAccessClosedTestCase.test_read  sD    
	1 	1 	1 	1 	1r   c                     | j                                          |                     t          j        | j        j        d           d S r  )rl   rp   r  r7   r@  r   r  rx  s    r   test_getitemz!AccessClosedTestCase.test_getitem   sG    
 6	; 	; 	; 	; 	;r   c                     | j         d         }| j                                         |                     t          j        | j         j        d|           d S r  )r   rl   rp   r  r7   r@  __setitem__rr   r  s     r   test_setitemz!AccessClosedTestCase.test_setitem  sY    z!}
 64	A 	A 	A 	A 	Ar   c                     | j         d         }| j                                         |                     t          j        | j         j        |           d S r  )r   rl   rp   r  r7   r@  r   rF  s     r   test_appendz AccessClosedTestCase.test_append  sR    z!}
 14	9 	9 	9 	9 	9r   c                     | j                                          |                     t          j        | j        j        d           d S Nzvar2 > 3)rl   rp   r  r7   r@  r   
read_whererx  s    r   test_readWherez#AccessClosedTestCase.test_readWhere  sL    
 5z	C 	C 	C 	C 	Cr   c                     | j                                          |                     t          j        | j        j        | j        d           d S rK  )rl   rp   r  r7   r@  r   rH  rx  s    r   test_whereAppendz%AccessClosedTestCase.test_whereAppend  sL    J#TZ	= 	= 	= 	= 	=r   c                     | j                                          |                     t          j        | j        j        d           d S rK  )rl   rp   r  r7   r@  r   r  rx  s    r   test_getWhereListz&AccessClosedTestCase.test_getWhereList  sL    
 9:	G 	G 	G 	G 	Gr   c                     | j                                          |                     t          j        | j        j        d           d S )Nr;   )rl   rp   r  r7   r@  r   read_sortedrx  s    r   test_readSortedz$AccessClosedTestCase.test_readSorted!  sL    
 6	@ 	@ 	@ 	@ 	@r   c                     | j                                          |                     t          j        | j        j        ddg           d S )Nr   r"   )rl   rp   r  r7   r@  r   r  rx  s    r   test_readCoordinatesz)AccessClosedTestCase.test_readCoordinates&  sP    
 ;aV	E 	E 	E 	E 	Er   )r4   r5   r6   rk   rA  rC  rG  rI  rM  rO  rQ  rT  rV  r9  r:  s   @r   r=  r=    s            1 1 1
; ; ;
A A A9 9 9C C C
= = =G G G
@ @ @
E E E E E E Er   r=  c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )ColumnIterationTestCasec                 v    t                                                       | j        j        d         | _        d S )NIO_BUFFER_SIZE)rj   rk   rl   paramsbuffer_sizerq   s    r   rk   zColumnIterationTestCase.setUp-  s-    ;-.>?r   c                     t          j        |f|          }|j        D ]&}t           j                            dd|          ||<   '| j                            dd|          }|                    |           ||fS )Nr   r  r  r   )r   r  rU  r  r  rl   r   r   )rr   r   r}   r   r   r   s         r   create_non_nested_tablez/ColumnIterationTestCase.create_non_nested_table1  sz    %E**K 	> 	>D)++Avu==E$KK((gu==Ue|r   c                     d}|j         j        D ])}|                     ||d         |                    |dz  }*|                     |t          |                     d S )Nr   r  r   )r   r  r   r   )rr   r   r   r  r:  s        r   iteratezColumnIterationTestCase.iterate9  sf    JM 	 	DT5;w#7888qLGG#e**-----r   c                     t          j        dgdz  g g           j        }| j        |d         j        z  }|                     |dz  |          \  }}|                     ||           d S Ni8r    r   r   r   r  r}   r\  r   r^  r`  rr   r}   rows_in_bufferr   r   s        r   test_less_than_io_bufferz0ColumnIterationTestCase.test_less_than_io_buffer@  sk     $!R44:)U1X->>33Na4GOOuUE"""""r   c                     t          j        dgdz  g g           j        }| j        |d         j        z  }|                     |dz  |          \  }}|                     ||           d S Nrc  r    r   rd  re  s        r   test_more_than_io_bufferz0ColumnIterationTestCase.test_more_than_io_bufferF  sk     $!R44:)U1X->>33NQ4FNNuUE"""""r   c                     t          j        dgdz  g g           j        }| j        |d         j        z  }|                     |dz  dz   |          \  }}|                     ||           d S rb  rd  re  s        r   test_partially_filled_bufferz4ColumnIterationTestCase.test_partially_filled_bufferL  su     $!R44:)U1X->>33NQ4F4J49; ;uUE"""""r   c                     t          j        dgdz  g g           j        }|                     d|          \  }}|                     t          |          d           |                     ||           d S ri  )r   r  r}   r^  r   r   r`  )rr   r}   r   r   s       r   test_zero_length_tablez.ColumnIterationTestCase.test_zero_length_tableS  sn     $!R44:33Au==uUQ'''UE"""""r   )r4   r5   r6   rk   r^  r`  rg  rj  rl  rn  r9  r:  s   @r   rX  rX  ,  s        @ @ @ @ @  . . .# # ## # ## # ## # # # # # #r   rX  c                       e Zd Z ej        ddgddej        fdej        fg          ZdZdZ	e
j                            ej                  \  ZZd	Zd
ZdZd
Zd
ZdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd
S )TestCreateTableArgs)aaaar   g @)bbbbr   g	@)r   S4icolfcolr   r  r   r   Nr  Fc                    | j                             | j        | j        | j        | j        | j        | j                   |                                  | j         	                    | j        | j                  }| 
                    |j        | j                   | 
                    |j        d           | 
                    |j        d           | 
                    t          |j                  | j        j        j                   d S )Nr  r   )rl   r   r1  r   r   r   r   r   r  r   r   rY   r   r   r   r)  r}   rU  rr   ptarrs     r   test_positional_args_01z+TestCreateTableArgs.test_positional_args_01h  s      TY!%!1!%T\!%!2	4 	4 	4
 	$$TZ;;dj111d+++a(((u~..0DEEEEEr   c                 V   | j                             | j        | j        | j        | j        | j        | j                  }|                    | j	                   | 
                                 | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        t          | j	                  f           |                     |j        t          | j	                             |                     t#          |j                  | j	        j        j                   |                     |j        | j	        j                   |                     t-          j        | j	        |                     d S rh   )rl   r   r1  r   r   r   r   r   r   r)  r  r   r  r   rY   r   r   r   r   r}   rU  r   r   r   rr   rx  nparrs      r   test_positional_args_02z+TestCreateTableArgs.test_positional_args_02w  sH   ((TY)-)9)-)-)-):	< <
 	TX$$TZ;;

dj111s48}}&6777c$(mm444u~..0DEEEdhn555%8899999r   c                    | j                             | j        | j        d | j        | j        | j        | j        | j        | j	        | j
        
  
         |                                  | j                             | j        | j                  }|                                }|                     |j        | j                   |                     |j        t!          | j
                  f           |                     |j        t!          | j
                             |                     t%          |j                  | j
        j        j                   |                     t/          j        | j
        |                     d S rh   )rl   r   r1  r   r   r   r   r  r   createparentsr)  r  r   r  r   rY   r   r   r   r   r}   rU  r   r   r   r{  s      r   test_positional_args_objz,TestCreateTableArgs.test_positional_args_obj  s-     TY!%!%!%!%!2!%!%!%!3!%	+ 	+ 	+ 	$$TZ;;

dj111s48}}&6777c$(mm444u~..0DEEE%8899999r   c                    | j                             | j        | j        | j        | j                   |                                  | j                             | j        | j                  }|                                }| 	                    |j        | j                   | 	                    |j
        t          | j                  f           | 	                    |j        t          | j                             | 	                    t          |j                  | j        j        j                   |                     t%          j        | j        |                     d S )N)r   r)  )rl   r   r1  r   r   r)  r  r   r  r   rY   r   r   r   r   r}   rU  r   r   r   r{  s      r   test_kwargs_objz#TestCreateTableArgs.test_kwargs_obj  s     TYdj%)X 	! 	/ 	/ 	/ 	$$TZ;;

dj111s48}}&6777c$(mm444u~..0DEEE%8899999r   c                    | j                             | j        | j        | j        | j                  }|                    | j                   |                                  | j         	                    | j        | j                  }|
                                }|                     |j        | j                   |                     |j        t          | j                  f           |                     |j        t          | j                             |                     t          |j                  | j        j        j                   |                     t)          j        | j        |                     d S )Nr   r   )rl   r   r1  r   r   r   r   r)  r  r   r  r   rY   r   r   r   r   r}   rU  r   r   r   r{  s      r   test_kwargs_description_01z.TestCreateTableArgs.test_kwargs_description_01  s(   ((TY/3z595E ) G G 	TX$$TZ;;

dj111s48}}&6777c$(mm444u~..0DEEE%8899999r   c                    | j                             | j        | j        | j        | j                  }|                                  | j                             | j        | j                  }|                     |j        | j                   |                     |j	        d           |                     |j
        d           |                     t          |j                  | j        j        j                   d S )Nr  r  r   )rl   r   r1  r   r   r   r  r   r   rY   r   r   r   r)  r}   rU  rw  s     r   test_kwargs_description_02z.TestCreateTableArgs.test_kwargs_description_02  s    ((TY/3z595E ) G G 	$$TZ;;dj111d+++a(((u~..0DEEEEEr   c                    | j                             | j        | j        | j        | j        | j                  }|                                  | j                             | j        | j                  }|	                                }| 
                    |j        | j                   | 
                    |j        t          | j                  f           | 
                    |j        t          | j                             | 
                    t          |j                  | j        j        j                   |                     t'          j        | j        |                     d S N)r   r)  r   )rl   r   r1  r   r   r)  r   r  r   r  r   rY   r   r   r   r   r}   rU  r   r   r   r{  s      r   test_kwargs_obj_descriptionz/TestCreateTableArgs.test_kwargs_obj_description  s   ((TY/3z-1X595E ) G G
 	$$TZ;;

dj111s48}}&6777c$(mm444u~..0DEEE%8899999r   c           	          |                      t          | j        j        | j        | j        | j        | j        t                     d S r  	r  r  rl   r   r1  r   r   r)  r   rx  s    r   $test_kwargs_obj_description_error_01z8TestCreateTableArgs.test_kwargs_obj_description_error_01  sJ    )+2*) $
"h&, 	 	. 	. 	. 	. 	.r   c           
          |                      t          | j        j        | j        | j        | j        | j        t                                 d S r  r  rx  s    r   $test_kwargs_obj_description_error_02z8TestCreateTableArgs.test_kwargs_obj_description_error_02  sN    )+2*) $
"h&,hh 	 	0 	0 	0 	0 	0r   c           	          |                      t          | j        j        | j        | j        | j        | j        t                     d S r  )	r  r  rl   r   r1  r   r   r)  rF  rx  s    r   $test_kwargs_obj_description_error_03z8TestCreateTableArgs.test_kwargs_obj_description_error_03  sJ    )+2*) $
"h&; 	 	= 	= 	= 	= 	=r   )r4   r5   r6   r   r   rR   rV   r)  r1  r   r7   r   r   r}   r   r   r   r   r  r   r  ry  r}  r  r  r  r  r  r  r  r  r
   r   r   rp  rp  Z  s1       
"(	+,1FBJ3GHJ J JC ED^44SY??NKEGLJIMF F F: : :(: : :,: : :: : :"F F F: : :". . .0 0 0= = = = =r   rp  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           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\        r|                     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	TestSuiter   addTest	makeSuiter<  r?  rC  rJ  rX  r\  r`  rc  rf  rl  rp  rt  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r2  r  r  r  r  r(  r,  r.  r1  rR  rT  rV  rX  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r&  r5  r7  r9  rs  r{  r  r  r  r  r  r  r  r  r  r
  r  r.  r6  r=  rX  rp  heavyr  r  r
  r  r  r  r  )theSuiteniterr   s      r   suiter    s   ((**HE 5\\ mI mI223EFFGGGO%%&ABB	D 	D 	D223DEEFFF223GHHIII223KLLMMM223KLLMMM223MNNOOOO%%&BCC	E 	E 	EO%%&ABB	D 	D 	DO%%&BCC	E 	E 	E22.0 0 	1 	1 	122/1 1 	2 	2 	22213 3 	4 	4 	42224 4 	5 	5 	522.0 0 	1 	1 	122/1 1 	2 	2 	2O%%&DEE	G 	G 	GO%%&EFF	H 	H 	HO%%&FGG	I 	I 	IO%%&GHH	J 	J 	JO%%&GHH	J 	J 	JO%%&EFF	H 	H 	HO%%&FGG	I 	I 	IO%%&EFF	H 	H 	HO%%&FGG	I 	I 	I223LMMNNNO%%&FGG	I 	I 	I223MNNOOOO%%&GHH	J 	J 	J223KLLMMM223KLLMMM223LMMNNN22.0 0 	1 	1 	1223MNNOOO223MNNOOO223DEEFFF223HIIJJJ223FGGHHH22?CCDDD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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2;??@@@22;??@@@223CDDEEE223DEEFFF223JKKLLL223KLLMMMO%%&FGG	I 	I 	I223EFFGGG223EFFGGG223EFFGGG223EFFGGG223EFFGGG223EFFGGG223EFFGGG223EFFGGG223EFFGGG22=AABBB223IJJKKK22?CCDDD22?CCDDD223FGGHHH223GHHIII223EFFGGG223DEEFFF223JKKLLL223CDDEEE22=AABBB22=AABBB22>BBCCC22>BBCCC223IJJKKK223EFFGGG223CDDEEE22=AABBB223JKKLLL223FGGHHH223GHHIII223JKKLLL223FGGHHHH| 	GO%%&ABB	D 	D 	D22.0 0 	1 	1 	1223FGGHHH223FGGHHH223FGGHHH22<@@AAA223DEEFFFOr   __main__r  )defaultTest)r#  r   rf  r   r   pathlibr   r&  r   tablesr7   tables.testsr   r   r   r  r   r8   r:   r<   r>   r@   rB   rE   rG   rF  rJ   r*   r-   r.   rQ   TempFileMixinPyTablesTestCaser`   r<  r?  rC  rJ  rX  r\  r`  rc  r  skipIfblosc_availrf  blosc2_availrl  rp  rt  rv  r{  r  r  blosc_compressor_listr  blosc2_compressor_listr  r  r  r  r  r  r  r  	lzo_availr  r  bzip2_availr  r  r  r  r  r  r  r  r  r  r2  rZ  r  r  r  r  r  r  r(  r,  r.  r1  r3  rR  rT  rV  rX  rZ  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*  r5  r7  r9  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r
  r  r.  r6  r=  rX  rp  r  r4   
parse_argvargvprint_versionsmainr
   r   r   <module>r     sZ       



                       % % %
- - -
( ( ( ( (R ( ( (: BL!'q999BI1!$$$BKQA&&&BMs***BMs***BLaQ'''BL1& & &BJDa(((BM&q* * *R]6+ + +    72| =%2R]%<%<%<'"
72| =%2R]%<%<%<'"
72} >%3R^%=%=%='"
72 $%2R]6&$ &$ &$'"
72 $%2R]6&$ &$ &$'"
D D D D D  D D D.H, H, H, H, H,F(&*A H, H, H,V6           -   
           =   2? ? ? ? ?} ? ? ?2? ? ? ? ?} ? ? ?6? ? ? ? ? ? ? ?6M M M M M= M M M6 F..AC C    -  C C
 F//BD D    =  D D F..AC C      C C F//BD D    -  D D F..AC C    M  C C F//BD D    ]  D D F..AC C      C C F//AC C    -  C C F..AC C	))+++^= =    ]  = =C C F//BD D	**,,,n> >    m  > >D D F..AC C	))+++^= =    }  = =C C F//BD D	**,,,n> >      > >D D F..AC C(@(@(B(BB)+ +      + +C C F..AC C
*"*,,,o? ?    m  ? ?C C F//BD D
+"+---@ @    }  @ @D D F..AC C
*"*,,,o? ?    m  ? ?C C F//BD D
+"+---@ @    }  @ @D D F,,?A A      A A F,,?A A    }  A A F..AC C    -  C C F..AC C      C C                  }       }   # # # # # # # #       1L 1L 1L 1L 1L)=)/)@1L 1L 1Lh{F {F {F {F {F!5!'!8{F {F {F|JK JK JK JK JK!5!'!8JK JK JKZx  x  x  x  x -v/F x  x  x |	 	 	 	 	* 	 	 	    .   - - - - -, - - -*~7 ~7 ~7 ~7 ~7f*F,C ~7 ~7 ~7B
    "
   n) n) n) n) n)f*F,C n) n) n)b       
       
       
       
m- m- m- m- m-,f.E m- m- m-`    *   
    *   
    *   
    *   
U) U) U) U) U)%v'> U) U) U)p    *       *   g< g< g< g< g<6')@ g< g< g<T+ + + + + + + +* * * * *| * * *+ + + + +| + + +* * * * *l * * *+ + + + +| + + +a4 a4 a4 a4 a4,f.E a4 a4 a4H    *       *       *       *       *       *       *       *       *       +       +       +   4 4 4 4 46')@ 4 4 48OB OB OB OB OBF(&*A OB OB OBr    ]   
# # # # #b # # #:A :A :A :A :AV)6+B :A :A :Az    n   
    n   
k4 k4 k4 k4 k4&.0G k4 k4 k4\= = = = =6/1H = = =0 0 0 0 0-v/F 0 0 02H H H H H,f.E H H H2M M M M Mf2F4K M M M<T' T' T' T' T'v+V-D T' T' T'na: a: a: a: a:v+V-D a: a: a:H    $       $       %       %   lP lP lP lP lPV163J lP lP lP`I I I I I-v/F I I I"    +       )   7@ 7@ 7@ 7@ 7@F(&*A 7@ 7@ 7@t
* 
* 
* 
* 
*f2F4K 
* 
* 
*
! 
! 
! 
! 
!&.0G 
! 
! 
!<E <E <E <E <E6/1H <E <E <E~+# +# +# +# +#f2F4K +# +# +#\_= _= _= _= _=&.0G _= _= _=D  D zFchF
OW----- r   