ó
jˆú\c           @@ sG  d  d l  m Z d  d l  m Z 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 m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z m Z m Z m Z d  d
 l m  Z  m! Z! d  d l m" Z# d  d l$ Z$ d  d l% m& Z& d Z' d d d d f Z( d e j) f d „  ƒ  YZ* d e j e# f d „  ƒ  YZ+ e( d Z, d e+ f d „  ƒ  YZ- d e+ f d „  ƒ  YZ. e  j/ e j0 d ƒ d e+ f d „  ƒ  Yƒ Z1 e  j/ e j2 d ƒ d e+ f d  „  ƒ  Yƒ Z3 e  j/ e j4 d! ƒ d" e+ f d# „  ƒ  Yƒ Z5 d$ e+ f d% „  ƒ  YZ6 d& e+ f d' „  ƒ  YZ7 d( e+ f d) „  ƒ  YZ8 d* e+ f d+ „  ƒ  YZ9 d, e+ f d- „  ƒ  YZ: d. e+ f d/ „  ƒ  YZ; d0 e j e# f d1 „  ƒ  YZ< d2 e= f d3 „  ƒ  YZ> e> ƒ  Z? e> d4 e@ ƒ ZA e> d5 e jB d6 d d7 d8 d9 e@ d: e@ ƒ ƒ ZC d; e j e# f d< „  ƒ  YZD d= eD f d> „  ƒ  YZE d? eD f d@ „  ƒ  YZF dA eD f dB „  ƒ  YZG dC eD f dD „  ƒ  YZH dE eD f dF „  ƒ  YZI dG eD f dH „  ƒ  YZJ dI eD f dJ „  ƒ  YZK dK eD f dL „  ƒ  YZL dM eD f dN „  ƒ  YZM dO eD f dP „  ƒ  YZN dQ eD f dR „  ƒ  YZO dS e j e# f dT „  ƒ  YZP dU e e# f dV „  ƒ  YZQ dW e e# f dX „  ƒ  YZR dY e jS e# f dZ „  ƒ  YZT d[ d\ d] d^ f Z( d_ e e# f d` „  ƒ  YZU da e e# f db „  ƒ  YZV dc eV f dd „  ƒ  YZW de eV f df „  ƒ  YZX dg eV f dh „  ƒ  YZY di eV f dj „  ƒ  YZZ dk e j e# f dl „  ƒ  YZ[ dm e[ f dn „  ƒ  YZ\ do e[ f dp „  ƒ  YZ] dq e j e# f dr „  ƒ  YZ^ ds e^ f dt „  ƒ  YZ_ du e e# f dv „  ƒ  YZ` dw „  Za eb dx k rCd  d lc Zc e jd ec je ƒ e jf ƒ  e  jg dy dz ƒ n  d S({   i    (   t   print_function(   t   absolute_importN(	   t	   StringColt   BoolColt   IntColt   FloatColt   Int8Colt   Int32Colt   Int64Colt	   UInt16Colt
   Float32Col(   t   Indext   default_auto_indext   default_index_filters(   t   calc_chunksize(   t   OldIndexWarning(   t   common(   t   verboset   allequalt   heavyt   TempFileMixin(   t   unittestt   test_filename(   t   PyTablesTestCase(   t   rangei
   i`   i   i   i   t   TDescrc           B@ sb   e  Z e d  d d d d d ƒ Z e d d d d ƒ Z e d d d d ƒ Z e d d d d ƒ Z	 RS(	   t   itemsizei   t   dfltt    t   posi   i    i   i   (
   t   __name__t
   __module__R   t   var1R   t   var2R   t   var3R   t   var4(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR       s   t   BasicTestCasec           B@ sö   e  Z d  Z d Z d  Z d  Z e Z e 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 RS(   i    t   zlibi   c         C@ s=   t  t |  ƒ j ƒ  |  j j |  _ |  j ƒ  |  j j ƒ  d  S(   N(   t   superR$   t   setUpt   h5filet   roott	   rootgroupt   populateFilet   close(   t   self(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   /   s    
c      	   C@ sK  |  j  } d } t j d |  j d |  j d |  j d |  j ƒ |  _ |  j j	 | d t
 | |  j |  j ƒ } x| t |  j ƒ D]k } t | ƒ j d ƒ | j d <| d	 | j d
 <| | j d <t |  j | d ƒ | j d <| j j ƒ  qy W| j ƒ  x, t j | j ƒ D] } | j d t ƒ } qWt rGt d |  j ƒ t d | ƒ n  d  S(   Ns   This is the IndexArray titlet	   complevelt   complibt   shufflet
   fletcher32t   tablet   asciiR    i   R!   R"   i   R#   t   _blocksizess   Number of written rows:s   Number of indexed rows:(   R*   t   tablest   Filterst   compressR/   R0   R1   t   filtersR(   t   create_tableR   t   nrowsR   t   strt   encodet   rowt   floatt   appendt   flusht   sixt
   itervaluest   colinstancest   create_indext   small_blocksizesR   t   print(   R-   t   groupt   titleR2   t   it   colt	   indexrows(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR+   7   s*    			
c         C@ sX  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } x= t
 d ƒ D]/ } t | ƒ j d ƒ | j d	 <| j j ƒ  qe W| j ƒ  | j j j } t  rt d
 | j ƒ t d | j ƒ t d | j j ƒ t d | j d ƒ n  g  | j d ƒ D] } | d	 ^ q} |  j t | ƒ d ƒ |  j | d g d ƒ d S(   s:   Checking flushing an Index incrementing only the last row.s   
s   -=i   s!   Running %s.test00_flushLastRow...t   modet   ai   R3   R    s   Max rows in buf:s   Number of elements per slice:s   Chunk size:s   Elements in last row:iÿÿÿÿs   var1 == b"1"i   t   1N(   R   RF   t	   __class__R   R5   t	   open_filet   h5fnameR(   R)   R2   R   R;   R<   R=   R?   R@   t   colsR    t   indext
   nrowsinbuft	   slicesizet   sortedt	   chunksizet	   indicesLRt   wheret   assertEqualt   len(   R-   R2   RI   t   idxcolt   pt   results(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test00_flushLastRowR   s&    
&c         C@ sÃ  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } xG t
 | j d ƒ ƒ D]0 \ } } t | ƒ | d <| | d	 <| j ƒ  qn W| j ƒ  | j j j } | j j j } t  ró t d
 | j ƒ t d | j ƒ n  |  j | j t ƒ |  j | j t ƒ g  | j d ƒ D] } | d ^ q)} |  j t | ƒ d ƒ |  j | d g d ƒ g  | j d ƒ D] } | d	 ^ q|} |  j t | ƒ d ƒ |  j | d g d ƒ d S(   s9   Checking automatic re-indexing after an update operation.s   
s   -=i   s   Running %s.test00_update...RL   RM   s   (var3>1) & (var3<5)R    R"   s   Dirtyness of var1 col:s   Dirtyness of var3 col:s   var1 == b"1"i   RN   s	   var3 == 0i    N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   t	   enumerateRY   R;   t   updateR@   RR   R    RS   R"   t   dirtyRZ   t   FalseR[   (   R-   R2   RI   R=   t   idxcol1t   idxcol3R]   R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test00_updaten   s.    "

&&c         C@ sö   t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r£ t d | j ƒ t d | j ƒ t d	 | j j ƒ n  g  | j d
 ƒ D] } | d ^ q³ } |  j t | ƒ d ƒ |  j | d g ƒ d S(   s)   Checking reading an Index (string flavor)s   
s   -=i   s   Running %s.test01_readIndex...RL   t   rs   Max rows in buf:s   Number of elements per slice:s   Chunk size:s   var1 == b"1"R    i   RN   N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RT   RU   RV   RW   RY   RZ   R[   (   R-   R2   R\   R]   R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01_readIndexŽ   s    &c         C@ s.  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r³ t d | j ƒ t d | j ƒ t d	 | j ƒ t d
 | j j ƒ n  g  | j d ƒ D] } | d ^ qÃ } t  rï t d | ƒ n  |  j t | ƒ |  j d ƒ |  j | t g |  j d ƒ d S(   s'   Checking reading an Index (bool flavor)s   
s   -=i   s   Running %s.test02_readIndex...RL   Rg   s   Rows in table:s   Max rows in buf:s   Number of elements per slice:s   Chunk size:s   var2 == TrueR!   s   Selected values:i   N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R!   RS   R:   RT   RU   RV   RW   RY   RZ   R[   t   True(   R-   R2   R\   R]   R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndex£   s     &c         C@ s4  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r£ t d | j ƒ t d | j ƒ t d	 | j j ƒ n  g  | j d
 ƒ D] } | d ^ q³ } t  rß t d | ƒ n  |  j t | ƒ t d | j ƒ d ƒ |  j | t t d t d | j ƒ ƒ ƒ ƒ d S(   s&   Checking reading an Index (int flavor)s   
s   -=i   s   Running %s.test03_readIndex...RL   Rg   s   Max rows in buf:s   Number of elements per slice:s   Chunk size:s   (1<var3)&(var3<10)R"   s   Selected values:i
   i   N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R"   RS   RT   RU   RV   RW   RY   RZ   R[   t   minR:   t   listR   (   R-   R2   R\   R]   R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03_readIndex»   s    &&c      	   C@ s\  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r³ t d | j ƒ t d | j ƒ t d	 | j ƒ t d
 | j j ƒ n  g  | j d ƒ D] } | d ^ qÃ } t  rï t d | ƒ n  |  j t | ƒ t d | j ƒ ƒ |  j | g  t t t t d | j ƒ ƒ ƒ ƒ D] } t | ƒ ^ q?ƒ d S(   s(   Checking reading an Index (float flavor)s   
s   -=i   s   Running %s.test04_readIndex...RL   Rg   s   Max rows in buf:s   Number of rows in table:s   Number of elements per slice:s   Chunk size:s	   var4 < 10R#   s   Selected values:i
   N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R#   RS   RT   R:   RU   RV   RW   RY   RZ   R[   Rk   t   reversedRl   R   R>   (   R-   R2   R\   R]   R^   RI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_readIndexÒ   s"    &"c         C@ s:  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r£ t d | j ƒ t d | j ƒ t d	 | j j ƒ n  d
 | _ | j d ƒ } g  | D] } | d d k  rÂ | j ^ qÂ } t  r
t d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s=   Checking reading an Index with get_where_list (string flavor)s   
s   -=i   s!   Running %s.test05_getWhereList...RL   RM   s   Max rows in buf:s   Number of elements per slice:s   Chunk size:t   pythons   var1 < b"10"R    t   10s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R#   RS   RT   RU   RV   RW   t   flavort   get_where_listt   nrowRZ   R[   (   R-   R2   R\   t   rowList1R]   t   rowList2(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_getWhereListì   s&    	,c         C@ sk  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r³ t d | j ƒ t d | j ƒ t d	 | j ƒ t d
 | j j ƒ n  d | _ | j d d t ƒ} g  | D] } | d t k rØ | j ^ qØ } t j | t j ƒ } t  r5t d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j t | | ƒ ƒ d S(   s;   Checking reading an Index with get_where_list (bool flavor)s   
s   -=i   s!   Running %s.test06_getWhereList...RL   RM   s   Max rows in buf:s   Rows in tables:s   Number of elements per slice:s   Chunk size:t   numpys   var2 == Falset   sortR!   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R!   RS   RT   R:   RU   RV   RW   Rr   Rs   Ri   Rc   Rt   Rx   t   arrayt   int64RZ   R[   t
   assertTrueR   (   R-   R2   R\   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_getWhereList  s*    	,c         C@ s@  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r£ t d | j ƒ t d | j ƒ t d	 | j j ƒ n  d
 | _ | j d d t ƒ} g  | D] } | d d k  rÈ | j ^ qÈ } t  rt d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s:   Checking reading an Index with get_where_list (int flavor)s   
s   -=i   s!   Running %s.test07_getWhereList...RL   RM   s   Max rows in buf:s   Number of elements per slice:s   Chunk size:Rp   s	   var3 < 15Ry   R"   i   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R#   RS   RT   RU   RV   RW   Rr   Rs   Ri   Rt   RZ   R[   (   R-   R2   R\   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test07_getWhereList%  s&    	,c         C@ s@  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r£ t d | j ƒ t d | j ƒ t d	 | j j ƒ n  d
 | _ | j d d t ƒ} g  | D] } | d d k  rÈ | j ^ qÈ } t  rt d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s<   Checking reading an Index with get_where_list (float flavor)s   
s   -=i   s!   Running %s.test08_getWhereList...RL   RM   s   Max rows in buf:s   Number of elements per slice:s   Chunk size:Rp   s	   var4 < 10Ry   R#   i
   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R#   RS   RT   RU   RV   RW   Rr   Rs   Ri   Rt   RZ   R[   (   R-   R2   R\   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test08_getWhereList@  s&    	,c         C@ s®  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d ƒ t d | j
 j ƒ n  |  j | j d	 d
 ƒ |  j | d k	 ƒ | j
 j j ƒ  t  rí t d ƒ t d | j
 j ƒ n  |  j | j
 j j d k ƒ |  j | j d	 d ƒ | j
 j j d t ƒ } |  j | d k	 ƒ | j
 j j } t  r€t d ƒ t d | j
 j ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ d S(   s   Checking removing an index.s   
s   -=i   s!   Running %s.test09a_removeIndex...RL   RM   s   Before deletions   var1 column:R    i   s   After deletioni    R4   s   After re-creationN(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   t
   colindexedR|   t   Nonet   remove_indexRD   RE   (   R-   R2   R\   RK   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test09a_removeIndex[  s4    


c         C@ sÜ  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d ƒ t d | j
 j ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ | j
 j j ƒ  |  j d d ƒ |  j j j	 } | j
 j j } t  rt d ƒ t d | j
 j ƒ n  |  j | j
 j j d k ƒ |  j | j d	 d ƒ | j
 j j d t ƒ } |  j | d k	 ƒ | j
 j j } t  r®t d ƒ t d | j
 j ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ d S(   s/   Checking removing an index (persistent version)s   
s   -=i   s!   Running %s.test09b_removeIndex...RL   RM   s   Before deletions   var1 index column:R    i   s   After deletions   var1 column:i    R4   s   After re-creationN(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   R|   R   RZ   R€   R‚   t   _reopenRD   RE   (   R-   R2   R\   RK   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test09b_removeIndex  s:    


c         C@ sÀ  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r‡ t d ƒ t d | ƒ n  |  j | j d	 d
 ƒ |  j | d k	 ƒ |  j j d d ƒ } | j | d ƒ t  rö t d ƒ t d | ƒ n  |  j | j
 j j d k	 ƒ |  j | j d	 d
 ƒ d | _ | j d ƒ } g  | D] } | d	 d k  rH| j ^ qH} t  rt d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s&   Checking moving a table with an index.s   
s   -=i   s   Running %s.test10a_moveIndex...RL   RM   s   Before moves   var1 column:R    i   t   /t   agroupt   table2s
   After moveRp   s   var1 < b"10"Rq   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   R€   R|   R   t   create_groupt   moveRr   Rs   Rt   R[   (   R-   R2   R\   R‡   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test10a_moveIndex¨  s4    

	,c         C@ s  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r‡ t d ƒ t d | ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ |  j j d d ƒ } | j | d ƒ |  j d d ƒ |  j j j j } | j
 j j } t  r't d ƒ t d | ƒ n  |  j | j
 j j d k	 ƒ |  j | j d	 d
 ƒ d | _ | j d ƒ } g  | D] } | d	 d k  ry| j ^ qy} t  rÓt d | t | ƒ ƒ t d | t | ƒ ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s:   Checking moving a table with an index (persistent version)s   
s   -=i   s   Running %s.test10b_moveIndex...RL   RM   s   Before moves   var1 index column:R    i   R†   R‡   Rˆ   s
   After moves   var1 column:Rp   s   var1 < b"10"Rq   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   R|   R   RZ   R€   R‰   RŠ   R„   R‡   Rˆ   Rr   Rs   Rt   t   typeR[   (   R-   R2   R\   R‡   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test10b_moveIndexÎ  s:    

	,c         C@ sÆ  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d	 ƒ t d
 | ƒ n  |  j | j d d ƒ |  j | d k	 ƒ |  j j d d ƒ } | j | d ƒ t  rü t d ƒ t d
 | ƒ n  |  j | j
 j j d k	 ƒ |  j | j d d ƒ d | _ | j d ƒ } g  | D] } | d d k  rN| j ^ qN} t  r–t d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s9   Checking moving a table with an index (small node cache).s   
s   -=i   s   Running %s.test10c_moveIndex...RL   RM   t   node_cache_slotsi
   s   Before moves   var1 column:R    i   R†   R‡   Rˆ   s
   After moveRp   s   var1 < b"10"Rq   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   R€   R|   R   R‰   RŠ   Rr   Rs   Rt   R[   (   R-   R2   R\   R‡   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test10c_moveIndexù  s6    

	,c         C@ sÆ  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d	 ƒ t d
 | ƒ n  |  j | j d d ƒ |  j | d k	 ƒ |  j j d d ƒ } | j | d ƒ t  rü t d ƒ t d
 | ƒ n  |  j | j
 j j d k	 ƒ |  j | j d d ƒ d | _ | j d ƒ } g  | D] } | d d k  rN| j ^ qN} t  r–t d | ƒ t d | ƒ n  |  j t | ƒ t | ƒ ƒ |  j | | ƒ d S(   s6   Checking moving a table with an index (no node cache).s   
s   -=i   s   Running %s.test10d_moveIndex...RL   RM   RŽ   i    s   Before moves   var1 column:R    i   R†   R‡   Rˆ   s
   After moveRp   s   var1 < b"10"Rq   s   Selected values:s   Should look like:N(   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   R€   R|   R   R‰   RŠ   Rr   Rs   Rt   R[   (   R-   R2   R\   R‡   Ru   R]   Rv   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test10d_moveIndex   s6    

	,c         C@ s?  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d ƒ t d | j
 j ƒ n  |  j | j d	 d
 ƒ |  j | d k	 ƒ |  j j d ƒ t  rÚ t d ƒ n  |  j d |  j j k ƒ |  j j d d t d |  j |  j ƒ } xs t |  j ƒ D]b } t | ƒ | j d	 <| d | j d <| | j d <t |  j | d
 ƒ | j d <| j j ƒ  q*W| j ƒ  x? t j | j ƒ D]+ } | j d t  ƒ } |  j | d k	 ƒ q­W| j
 j j } t  rt d ƒ t d | j
 j ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ d S(   s'   Checking removing a table with indexes.s   
s   -=i   s*   Running %s.test11a_removeTableWithIndex...RL   RM   s   Before deletions   var1 column:R    i   s   /tables   After deletionR2   R†   s	   New tablei   R!   R"   R#   R4   s   After re-creationN(!   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   R€   R|   R   t   remove_nodeR9   R   R8   R:   R   R;   R=   R>   R?   R@   RA   RB   RC   RD   RE   (   R-   R2   R\   RI   RJ   RK   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test11a_removeTableWithIndexG  sD    


c         C@ sO  t  r. t d d d ƒ t d |  j j ƒ n  t j |  j d d ƒ|  _ |  j j j	 } | j
 j j } t  r t d ƒ t d | j
 j ƒ n  |  j | j d	 d
 ƒ |  j | d k	 ƒ |  j j d ƒ t  rÚ t d ƒ n  |  j d |  j j k ƒ |  j d d ƒ |  j j d d t d |  j |  j ƒ } xs t |  j ƒ D]b } t | ƒ | j d	 <| d | j d <| | j d <t |  j | d
 ƒ | j d <| j j ƒ  q:W| j ƒ  x? t j | j ƒ D]+ } | j  d t! ƒ } |  j | d k	 ƒ q½W| j
 j j } t  r!t d ƒ t d | j
 j ƒ n  |  j | d k	 ƒ |  j | j d	 d
 ƒ d S(   s=   Checking removing a table with indexes (persistent version 2)s   
s   -=i   s*   Running %s.test11b_removeTableWithIndex...RL   RM   s   Before deletions   var1 column:R    i   s   /tables   After deletionR2   s   r+R†   s	   New tablei   R!   R"   R#   R4   s   After re-creationN("   R   RF   RO   R   R5   RP   RQ   R(   R)   R2   RR   R    RS   RZ   R€   R|   R   R‘   R„   R9   R   R8   R:   R   R;   R=   R>   R?   R@   RA   RB   RC   RD   RE   (   R-   R2   R\   RI   RJ   RK   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test11b_removeTableWithIndext  sF    


c         C@ s7  t  r. t d d d ƒ t d |  j j ƒ n  d t j f d „  ƒ  Y} t j |  j ƒ t	 j
 d ƒ |  _ t j |  j d d	 ƒ|  _ |  j j |  j j d
 | ƒ } | j j j d t ƒ | j } x< t d ƒ D]. } | | d <t | d ƒ | d <| j ƒ  qÎ W| j ƒ  |  j d d ƒ |  j j |  j j j ƒ d S(   s=   Checking removing a table with indexes (persistent version 3)s   
s   -=i   s*   Running %s.test11c_removeTableWithIndex...t   Distancec           B@ s&   e  Z e d  d ƒ Z e d  d ƒ Z RS(   R   i    i   (   R   R   R   t   frameR   t   distance(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR”   ¬  s   s   .h5RL   t   wt   distance_tableR4   i
   R•   i   R–   s   r+N(   R   RF   RO   R   R5   t   IsDescriptiont   ost   removeRQ   t   tempfilet   mktempRP   R(   R9   R)   RR   R•   RD   RE   R=   R   R>   R?   R@   R„   R‘   R˜   (   R-   R”   R2   Rg   RI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test11c_removeTableWithIndex¤  s&    		

c      	   C@ sŸ  t  j |  j d d ƒ|  _ |  j j j } d d |  j g } |  j d k rb | j |  j d ƒ n  x6| D].} d | j d t	 d | ƒ ƒ g } d | j d t	 d | ƒ ƒ g } y/ x( t
 rÞ t | d ƒ | d c d 7<q· WWn[ t k
 r=x" | d D] } | d c d 7<qû Wx& | d D] } | d c d 7<q Wn X|  j | d | ƒ |  j | d | ƒ |  j t t | j d t	 d | ƒ ƒ ƒ ƒ | ƒ qi Wd  S(	   NRL   Rg   i   i   iô  i    s
   (var3 < e)t   e(   R5   RP   RQ   R(   R)   R2   R:   R?   RY   t   dictRi   t   nextt   StopIterationRZ   R[   Rl   (   R-   R2   t   testst   limitt   handle_at   handle_bt   _(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test12_doubleIterateÃ  s*    !!	(    R   R   R7   R/   R0   R1   t   minRowIndexR:   RE   t   ssR'   R+   R_   Rf   Rh   Rj   Rm   Ro   Rw   R}   R~   R   Rƒ   R…   R‹   R   R   R   R’   R“   Rž   R¨   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR$   '   s8   
				 									$	)	&	+	'	'	-	0	i   t   BasicReadTestCasec           B@ s&   e  Z d  Z d Z d  Z d  Z e Z RS(   i    R%   (   R   R   R7   R/   R0   R1   t   small_ssR:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR«   ß  s
   t   ZlibReadTestCasec           B@ s&   e  Z d  Z d Z d Z d Z e Z RS(   i   R%   i    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR­   ç  s
   s'   BLOSC compression library not availablet   BloscReadTestCasec           B@ s&   e  Z d  Z d Z d Z d Z e Z RS(   i   t   blosci    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR®   ï  s
   s%   LZO compression library not availablet   LZOReadTestCasec           B@ s&   e  Z d  Z d Z d Z d Z e Z RS(   i   t   lzoi    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR°   ù  s
   s'   BZIP2 compression library not availablet   Bzip2ReadTestCasec           B@ s&   e  Z d  Z d Z d Z d Z e Z RS(   i   t   bzip2i    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR²     s
   t   ShuffleReadTestCasec           B@ s&   e  Z d  Z d Z d  Z d Z e Z RS(   i   R%   i    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR´     s
   t   Fletcher32ReadTestCasec           B@ s&   e  Z d  Z d Z d Z d  Z e Z RS(   i   R%   i    (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRµ     s
   t   ShuffleFletcher32ReadTestCasec           B@ s&   e  Z d  Z d Z d  Z d  Z e Z RS(   i   R%   (   R   R   R7   R/   R0   R1   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR¶     s
   t   OneHalfTestCasec           B@ s   e  Z e e d  Z RS(   i   (   R   R   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR·   $  s   t   UpperBoundTestCasec           B@ s   e  Z e d  Z RS(   i   (   R   R   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR¸   (  s   t   LowerBoundTestCasec           B@ s   e  Z e d  d Z RS(   i   i   (   R   R   R¬   R:   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR¹   ,  s   t   DeepTableIndexTestCasec           B@ s;   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@ sî   |  j  j |  j  j d ƒ } d } |  j  j | d t | d |  j ƒ } x$ t |  j ƒ D] } | j j	 ƒ  qU W| j
 ƒ  | j j j ƒ  } |  j | d k	 ƒ | j j j } |  j | j d d ƒ |  j | d k	 ƒ |  j | j |  j ƒ d S(   s9   Checking the indexing of a table in a 2nd level hierarchyR‡   s   This is the IndexArray titleR2   R    i   N(   R(   R‰   R)   R9   R   R   R:   R   R=   R?   R@   RR   R    RD   R|   RS   RZ   R€   t	   nelements(   R-   RG   RH   R2   RI   RK   R\   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test013  s    
c         C@ s  |  j  j |  j  j d ƒ } d } |  j  j | d t | d |  j ƒ } x$ t |  j ƒ D] } | j j	 ƒ  qU W| j
 ƒ  | j j j ƒ  } |  j | d k	 ƒ | j j j } |  j d d ƒ |  j  j j j } | j j j } |  j | j d d ƒ |  j | d k	 ƒ |  j | j |  j ƒ d S(	   sJ   Checking the indexing of a table in 2nd level
        (persistent version)R‡   s   This is the IndexArray titleR2   RL   RM   R    i   N(   R(   R‰   R)   R9   R   R   R:   R   R=   R?   R@   RR   R    RD   R|   RS   R„   R‡   R2   RZ   R€   R»   (   R-   RG   RH   R2   RI   RK   R\   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01bI  s     
c         C@ s  |  j  j |  j  j d ƒ } |  j  j | d ƒ } |  j  j | d ƒ } d } |  j  j | d t | d |  j ƒ } x$ t |  j ƒ D] } | j j	 ƒ  q W| j
 ƒ  | j j j ƒ  } |  j | d k	 ƒ | j j j } |  j | j d d ƒ |  j | d k	 ƒ |  j | j |  j ƒ d S(   s9   Checking the indexing of a table in a 4th level hierarchyR‡   s   This is the IndexArray titleR2   R    i   N(   R(   R‰   R)   R9   R   R   R:   R   R=   R?   R@   RR   R    RD   R|   RS   RZ   R€   R»   (   R-   RG   RH   R2   RI   RK   R\   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02h  s    
c         C@ sO  |  j  j |  j  j d ƒ } |  j  j | d ƒ } |  j  j | d ƒ } d } |  j  j | d t | d |  j ƒ } x$ t |  j ƒ D] } | j j	 ƒ  q W| j
 ƒ  | j j j ƒ  } |  j | d k	 ƒ | j j j } |  j d d ƒ |  j  j j j j j } | j j j } |  j | j d d ƒ |  j | d k	 ƒ |  j | j |  j ƒ d S(	   sL   Checking the indexing of a table in a 4th level
        (persistent version)R‡   s   This is the IndexArray titleR2   RL   RM   R    i   N(   R(   R‰   R)   R9   R   R   R:   R   R=   R?   R@   RR   R    RD   R|   RS   R„   R‡   R2   RZ   R€   R»   (   R-   RG   RH   R2   RI   RK   R\   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02bƒ  s$    
c         C@ s  |  j  j } x) t d ƒ D] } |  j  j | d ƒ } q Wd } |  j  j | d t | d |  j ƒ } x$ t |  j ƒ D] } | j j	 ƒ  qr W| j
 ƒ  | j j j ƒ  } |  j | d k	 ƒ | j j j } |  j | j d d ƒ |  j | d k	 ƒ |  j | j |  j ƒ d S(   s;   Checking the indexing of a table in a 100th level hierarchyid   R‡   s   This is the IndexArray titleR2   R    i   N(   R(   R)   R   R‰   R9   R   R   R:   R=   R?   R@   RR   R    RD   R|   RS   RZ   R€   R»   (   R-   RG   RI   RH   R2   RK   R\   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03¥  s    
(	   R   R   R©   R:   R¼   R½   R¾   R¿   RÀ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRº   0  s   				"t
   IndexPropsc           B@ s   e  Z e e d  „ Z RS(   c         C@ s   | |  _  | |  _ d  S(   N(   t   autoR8   (   R-   RÂ   R8   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   __init__Â  s    	(   R   R   R   R   RÃ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRÁ   Á  s   RÂ   R8   R.   R/   R%   R0   R1   t   AutomaticIndexingTestCasec           B@ s°   e  Z d  Z e Z d d d g 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 RS(   i   R    R!   R"   i   i   i   i   c      	   C@ s  t  t |  ƒ j ƒ  d } |  j j } d } |  j j | d t | d  |  j d | ƒ|  _	 |  j
 j |  j	 _ x. |  j D]# } |  j	 j | j d |  j ƒ qt Wx' t |  j ƒ D] } |  j	 j j ƒ  q« W|  j	 j ƒ  |  j r |  j d d ƒ |  j j j	 |  _	 n  d  S(	   Ns   This is the IndexArray titlei   R2   t
   chunkshapeR4   RL   RM   (   i   (   R&   RÄ   R'   R(   R)   R9   R   R   R:   R2   t   ipropsRÂ   t	   autoindext   colsToIndexRC   RD   RE   R   R=   R?   R@   t   reopenR„   (   R-   RH   R)   RÅ   t   colnameRI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   Ó  s"    	c         C@ s  t  r. t d d d ƒ t d |  j j ƒ n  |  j } |  j t k r\ |  j | j d ƒ n |  j | j d ƒ |  j t k rM|  j | j	 d d ƒ |  j
 | j j j d k ƒ |  j | j	 d d ƒ |  j
 | j j j d k ƒ |  j | j	 d	 d ƒ |  j
 | j j j d k ƒ |  j | j	 d
 d ƒ |  j
 | j j j d k ƒ nÌ |  j | j	 d d ƒ |  j
 | j j j d k	 ƒ |  j | j	 d d ƒ |  j
 | j j j d k	 ƒ |  j | j	 d	 d ƒ |  j
 | j j j d k	 ƒ |  j | j	 d
 d ƒ |  j
 | j j j d k ƒ d S(   s$   Checking indexing attributes (part1)s   
s   -=i   s   Running %s.test01_attrs...i    i   R    R!   R"   R#   N(   R   RF   RO   R   R2   RÆ   t   DefaultPropsRZ   t   indexedR€   R|   RR   R    RS   R   R!   R"   R#   (   R-   R2   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01_attrsë  s0    	c         C@ sš  t  r. t d d d ƒ t d |  j j ƒ n  |  j } t  rf | j rY t d | j ƒ qf t d ƒ n  |  j t k rˆ |  j	 | j ƒ n" |  j t
 k rª |  j | j ƒ n  |  j t k r |  j | j j j d ƒ |  j | j j j d ƒ |  j | j j j d ƒ |  j | j j j d ƒ nv |  j t | j j j t ƒ ƒ |  j t | j j j t ƒ ƒ |  j t | j j j t ƒ ƒ |  j | j j j d ƒ d S(   s$   Checking indexing attributes (part2)s   
s   -=i   s   Running %s.test02_attrs...s   index props:s   Table is not indexedN(   R   RF   RO   R   R2   RÌ   RÇ   RÆ   t   NoAutoPropst   assertFalset   ChangeFiltersPropsR|   RË   RZ   RR   R    RS   R   R!   R"   R#   t
   isinstanceR   (   R-   R2   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_attrs  s*    		c         C@ s  t  r. t d d d ƒ t d |  j j ƒ n  |  j } t  r¬ | j rŸ t d | j ƒ t d | j ƒ | j j	 j
 } t d | j ƒ t d | j | j ƒ q¬ t d	 ƒ n  |  j t k	 r| j j	 j
 } | j } |  j | j | ƒ | j } |  j | j |  j | ƒ n  d
 S(   s   Checking indexing counterss   
s   -=i   s   Running %s.test03_counters...s   indexedrows:s   unsavedindexedrows:s   table rows:s   computed indexed rows:s   Table is not indexedN(   R   RF   RO   R   R2   RÌ   t   _indexedrowst   _unsaved_indexedrowsRR   R    RS   R:   RU   RÆ   RË   R»   RZ   (   R-   R2   RS   t   indexedrows(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03_counters.  s&    				c         C@ sT  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  t  rŸ | j r’ t d | j ƒ t d | j ƒ | j	 j
 j } t d | j ƒ qŸ t d ƒ n  | j	 j
 j } |  j t k rÓ |  j | d	 k ƒ n9 | j } |  j | j | j ƒ |  j | j |  j | ƒ |  j t k r.|  j | j ƒ n" |  j t k rP|  j | j ƒ n  d	 S(
   s/   Checking indexing counters (non-automatic mode)s   
s   -=i   s   Running %s.test04_noauto...s   indexedrows:s   unsavedindexedrows:s   computed indexed rows:s   Table is not indexedN(   R   RF   RO   R   R2   t   flush_rows_to_indexRÌ   RÓ   RÔ   RR   R    RS   R»   RÆ   RË   R|   R   RZ   R:   RÎ   RÏ   RÇ   RÐ   (   R-   R2   RS   RÕ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_noautoH  s.    	
		c         C@ sŸ  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  |  j t k	 re | j } | j	 } n  | j
 d d ƒ |  j r  |  j d d ƒ |  j j j } n  t  r| j rt d	 | j ƒ t d
 | ƒ t d | j	 ƒ t d | ƒ t d | j j j j ƒ qt d ƒ n  |  j | j |  j d ƒ |  j t k rW|  j | j j j j ƒ n  |  j t k ry|  j | j ƒ n" |  j t k r›|  j | j ƒ n  d S(   s(   Checking indexing counters (remove_rows)s   
s   -=i   s   Running %s.test05_icounters...i   i   RL   RM   s   indexedrows:s   original indexedrows:s   unsavedindexedrows:s   original unsavedindexedrows:s   index dirty:s   Table is not indexedN(   R   RF   RO   R   R2   R×   RÆ   RË   RÓ   RÔ   t   remove_rowsRÉ   R„   R(   R)   RÌ   RR   R    RS   Rb   RZ   R:   RÎ   R|   RÏ   RÇ   RÐ   (   R-   R2   RÕ   t   unsavedindexedrows(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_icountersm  s6    	
			c         C@ sg  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  | j d d ƒ |  j r| |  j d d ƒ |  j	 j
 j } n  t  rç t d	 | j ƒ xR | j D]D } | j j | ƒ j rœ t d
 | | j j | ƒ j j f ƒ qœ qœ Wn  xy | j D]n } | j j | ƒ j rñ | j s:|  j | j j | ƒ j j t ƒ q_|  j | j j | ƒ j j t ƒ qñ qñ Wd S(   s)   Checking dirty flags (remove_rows action)s   
s   -=i   s   Running %s.test06_dirty...i   i   RL   RM   s
   auto flag:s   dirty flag col %s: %sN(   R   RF   RO   R   R2   R×   RÙ   RÉ   R„   R(   R)   RÇ   t   colnamesRR   t   _f_colRS   Rb   RZ   Ri   Rc   (   R-   R2   RÊ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_dirtyš  s,    	
	*	
c         C@ s=  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  |  j t k	 re | j } | j	 } n  | j
 d d d d g ƒ |  j r© |  j d
 d ƒ |  j j j } n  t  r!| j rt d | j ƒ t d | ƒ t d | j	 ƒ t d | ƒ | j j j } t d | j ƒ q!t d ƒ n  |  j | j |  j ƒ |  j t k rb|  j | j j j j ƒ n  t  r½xR | j D]D } | j j | ƒ j rrt d | | j j | ƒ j j f ƒ qrqrWn  xy | j D]n } | j j | ƒ j rÇ| j s|  j | j j | ƒ j j t ƒ q5|  j | j j | ƒ j j t ƒ qÇqÇWd S(   s6   Checking indexing counters (modify_rows, no-auto mode)s   
s   -=i   s   Running %s.test07_noauto...i   i   t   asai    gÍÌÌÌÌÌ@RL   RM   s   indexedrows:s   original indexedrows:s   unsavedindexedrows:s   original unsavedindexedrows:s   computed indexed rows:s   Table is not indexeds   dirty flag col %s: %sN(   Rß   i    i   gÍÌÌÌÌÌ@(   R   RF   RO   R   R2   R×   RÆ   RË   RÓ   RÔ   t   modify_rowsR   RÉ   R„   R(   R)   RÌ   RR   R    RS   R»   RZ   R:   RÎ   R|   Rb   RÜ   RÝ   RÇ   Ri   Rc   (   R-   R2   RÕ   RÚ   RS   RÊ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test07_noauto¼  sH    	
			*	
c         C@ sv  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  g  | j d ƒ D] } | j ^ qQ } xR | D]J } | j d k rm d | d <t | d	 <d | d
 <d | d <| j	 ƒ  qm qm W| j
 ƒ  |  j rð |  j d d ƒ |  j j j } n  g  | j d ƒ D] } | j ^ q } | d g } t  rbt d | j ƒ t d | ƒ t d | ƒ t d | ƒ n  |  j | | ƒ d S(   s<   Checking indexing queries (modify in iterator, no-auto mode)s   
s   -=i   s   Running %s.test07b_noauto...s   (var2 == True) & (var3 > 0)i   Rß   R    R!   R"   gÍÌÌÌÌÌ@R#   RL   RM   s   AutoIndex?:s   Query results (original):s&   Query results (after modifying table):s   Should look like:N(   R   RF   RO   R   R2   R×   RY   Rt   Ri   Ra   R@   RÉ   R„   R(   R)   RÇ   RZ   (   R-   R2   R=   t   rest   resqt   res_(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test07b_noautoò  s2    	
%




	%c         C@ s  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  g  | j d ƒ D] } | j ^ qQ } | j d t	 d d f g ƒ | j d	 t	 d
 d f g ƒ | j d t	 d d f g ƒ | j
 ƒ  |  j rï |  j d d ƒ |  j j j } n  g  | j d ƒ D] } | j ^ qÿ } | | j d | j d
 | j d g } t  r|t d | j ƒ t d | ƒ t d | ƒ t d | ƒ n  |  j | | ƒ d S(   s0   Checking indexing queries (append, no-auto mode)s   
s   -=i   s   Running %s.test07c_noauto...s   (var2 == True) & (var3 > 0)Rß   i   gÍÌÌÌÌÌ@t   asbi   t   asci   RL   RM   s   AutoIndex?:s   Query results (original):s&   Query results (after modifying table):s   Should look like:N(   R   RF   RO   R   R2   R×   RY   Rt   R?   Ri   R@   RÉ   R„   R(   R)   R:   RÇ   RZ   (   R-   R2   R=   Râ   Rã   Rä   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test07c_noauto  s*    	
%
	%(c         C@ s4  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  |  j t k	 r‹ | j } |  j	 | d k	 ƒ | j } |  j	 | d k	 ƒ n  | j d d d d g d	 d
 g g d d d g ƒ|  j rç |  j d d ƒ |  j j j } n  |  j | j |  j ƒ |  j t k r(|  j	 | j j j j ƒ n  t  rƒxR | j D]D } | j j | ƒ j r8t d | | j j | ƒ j j f ƒ q8q8Wn  xª | j D]Ÿ } | j j | ƒ j r| j s| d k râ|  j | j j | ƒ j j t ƒ q)|  j | j j | ƒ j j t ƒ q,|  j | j j | ƒ j j t ƒ qqWd S(   s%   Checking dirty flags (modify_columns)s   
s   -=i   s   Running %s.test08_dirty...i   t   columnsRß   Ræ   g      ð?g       @t   namesR    R#   RL   RM   s   dirty flag col %s: %sN(   R    (   R   RF   RO   R   R2   R×   RÆ   RË   RÓ   R|   R   RÔ   t   modify_columnsRÉ   R„   R(   R)   RZ   R:   RÎ   RR   R    RS   Rb   RÜ   RÝ   RÇ   Ri   Rc   (   R-   R2   RÕ   RÚ   RÊ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test08_dirty8  sB    	
		$	*	c         C@ sy  t  r. t d d d ƒ t d |  j j ƒ n  |  j } |  j t k	 r | j } |  j | d k	 ƒ | j
 } |  j | d k	 ƒ n  | j d d d t ƒ} |  j rÓ |  j d d	 ƒ |  j j j } |  j j j } n  | j j j } | j j j } t  r=t d
 | ƒ t d | ƒ | r=t d | j ƒ t d | j ƒ q=n  |  j | j | j ƒ | j ro|  j | j ƒ n  |  j t k r§|  j | d k ƒ |  j | d k ƒ n% |  j t k rÌ|  j | d k	 ƒ n  t  r'xR | j D]D } | j j | ƒ j rÜt d | | j j | ƒ j j f ƒ qÜqÜWn  xK | j D]@ } | j j | ƒ j r1|  j | j j | ƒ j j t ƒ q1q1Wd S(   s8   Checking propagate Index feature in Table.copy() (attrs)s   
s   -=i   s   Running %s.test09a_propIndex...R†   Rˆ   t   propindexesRL   RM   s   Copied index:s   Original index:s   Elements in copied index:s   Elements in original index:s   dirty flag col %s: %sN(   R   RF   RO   R   R2   RÆ   RË   RÓ   R|   R   RÔ   t   copyRi   RÉ   R„   R(   R)   Rˆ   RR   R    RS   R»   RZ   R:   RÌ   RÎ   RÜ   RÝ   Rb   Rc   (   R-   R2   RÕ   RÚ   Rˆ   t   index1t   index2RÊ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test09a_propIndexi  sN    					*c         C@ s›  t  r. t d d d ƒ t d |  j j ƒ n  |  j } |  j t k	 r | j } |  j | d k	 ƒ | j
 } |  j | d k	 ƒ n  | j d d d t ƒ} |  j rÓ |  j d d	 ƒ |  j j j } |  j j j } n  t  rt d
 |  j j ƒ t d | j j j ƒ t d | j j j ƒ n  |  j t k rY|  j | j j j ƒ |  j | j j j ƒ n> |  j t k r—|  j | j j j ƒ |  j | j j j ƒ n  d S(   s%   Checking that propindexes=False workss   
s   -=i   s   Running %s.test09b_propIndex...R†   Rˆ   Rí   RL   RM   s   autoindex?:s   Copied index indexed?:s   Original index indexed?:N(   R   RF   RO   R   R2   RÆ   RË   RÓ   R|   R   RÔ   Rî   Rc   RÉ   R„   R(   R)   Rˆ   RÂ   RR   R    t
   is_indexedRÏ   RÎ   (   R-   R2   RÕ   RÚ   Rˆ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test09b_propIndex¢  s0    				c         C@ sA  t  r. t d d d ƒ t d |  j j ƒ n  |  j } |  j t k	 r | j } |  j | d k	 ƒ | j
 } |  j | d k	 ƒ n  | j d d d t ƒ} |  j rÓ |  j d d	 ƒ |  j j j } |  j j j } n  | j j j } | j j j } t  r=t d
 | ƒ t d | ƒ | r=t d | j ƒ t d | j ƒ q=n  d S(   s9   Checking propagate Index feature in Table.copy() (values)s   
s   -=i   s   Running %s.test10_propIndex...R†   Rˆ   Rí   RL   RM   s   Copied index:s   Original index:s   Elements in copied index:s   Elements in original index:N(   R   RF   RO   R   R2   RÆ   RË   RÓ   R|   R   RÔ   Rî   Ri   RÉ   R„   R(   R)   Rˆ   RR   R"   RS   R»   (   R-   R2   RÕ   RÚ   Rˆ   Rï   Rð   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test10_propIndexÈ  s,    				c         C@ s1  t  r. t d d d ƒ t d |  j j ƒ n  |  j } | j ƒ  |  j t k	 r‹ | j } |  j	 | d k	 ƒ | j } |  j	 | d k	 ƒ n  | j d d d d g d	 d
 g g d d d g ƒ| j d d d t ƒ} |  j r|  j d d ƒ |  j j j } |  j j j } n  | j j j } | j j j } t  rxt d | ƒ t d | ƒ | rxt d | j ƒ t d | j ƒ qxn  t  rÓxR | j D]D } | j j | ƒ j rˆt d | | j j | ƒ j j f ƒ qˆqˆWn  xW | j D]L } | j j | ƒ j rÝ| j r)|  j | j j | ƒ j j t ƒ q)qÝqÝWd S(   s>   Checking propagate Index feature in Table.copy() (dirty flags)s   
s   -=i   s   Running %s.test11_propIndex...i   Ré   Rß   Ræ   g      ð?g       @Rê   R    R#   R†   Rˆ   Rí   RL   RM   s   Copied index:s   Original index:s   Elements in copied index:s   Elements in original index:s   dirty flag col %s: %sN(   R   RF   RO   R   R2   R×   RÆ   RË   RÓ   R|   R   RÔ   Rë   Rî   Ri   RÉ   R„   R(   R)   Rˆ   RR   R    RS   R»   RÜ   RÝ   Rb   RÇ   RZ   Rc   (   R-   R2   RÕ   RÚ   Rˆ   Rï   Rð   RÊ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test11_propIndexë  sF    	
		$	*	(   i   i   i   i   (   R   R   RÉ   RÎ   RÆ   RÈ   RE   R'   RÍ   RÒ   RÖ   RØ   RÛ   RÞ   Rá   Rå   Rè   Rì   Rñ   Ró   Rô   Rõ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRÄ   Í  s&   		!	"		%	-	"	6	%	!	1	9	&	#t   AI1TestCasec           B@ s)   e  Z d  Z d Z e Z d d d g Z RS(   if   i    R    R!   R"   (   R   R   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRö   #  s   t   AI2TestCasec           B@ s)   e  Z d  Z d Z e Z d d d g Z RS(   if   i   R    R!   R"   (   R   R   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR÷   +  s   t   AI4bTestCasec           B@ s)   e  Z d  Z d Z e Z d d d g Z RS(   ip   i   R    R!   R"   (   R   R   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRø   3  s   t   AI5TestCasec           B@ sO   e  Z e e d  d ƒ\ Z Z Z Z e d d Z d Z	 e
 Z d d d g Z RS(   t   memleveli   i   i    R    R!   R"   (   R   R   R   R©   t   sbst   bsRª   t   csR:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRù   ;  s
   t   AI6TestCasec           B@ sO   e  Z e e d  d ƒ\ Z Z Z Z e d d Z d Z	 e
 Z d d d g Z RS(   Rú   i   i   R    R!   R"   (   R   R   R   R©   Rû   Rü   Rª   Rý   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRþ   C  s
   t   AI7TestCasec           B@ sO   e  Z e e d  d ƒ\ Z Z Z Z e d d Z d Z	 e
 Z d d d g Z RS(   Rú   i   i   i    R    R!   R"   (   R   R   R   R©   Rû   Rü   Rª   Rý   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRÿ   K  s
   t   AI8TestCasec           B@ sO   e  Z e e d  d ƒ\ Z Z Z Z e d d Z d Z	 e
 Z d d d g Z RS(   Rú   i   i   id   R    R!   R"   (   R   R   R   R©   Rû   Rü   Rª   Rý   R:   RÉ   RÎ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR   T  s
   t   AI9TestCasec           B@ s>   e  Z e e d  d ƒ\ Z Z Z Z e Z d Z	 e
 Z g  Z RS(   Rú   i   i    (   R   R   R   R©   Rû   Rü   Rª   Rý   R:   RÉ   RË   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  ]  s
   t   AI10TestCasec           B@ s    e  Z d  Z d Z e Z g  Z RS(   if   i   (   R   R   R:   RÉ   RË   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  e  s   t   AI11TestCasec           B@ s)   e  Z d  Z d Z e Z d d d g Z RS(   if   i    R    R!   R"   (   R   R   R:   RÉ   RÐ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  m  s   t   AI12TestCasec           B@ s)   e  Z d  Z d Z e Z d d d g Z RS(   if   i    R    R!   R"   (   R   R   R:   RÉ   RÐ   RÆ   RÈ   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  u  s   t   ManyNodesTestCasec           B@ s    e  Z e d  d ƒ Z d „  Z RS(   RŽ   i@   c         C@ så   i t  ƒ  d 6t  ƒ  d 6t  ƒ  d 6} xº t d ƒ D]¬ } x£ t d ƒ D]• } d t | ƒ } d t | ƒ } d | } |  j j | | | d d ƒ} | j j j ƒ  | j j j ƒ  | j j	 j ƒ  | j
 j ƒ  | j ƒ  qD Wq1 Wd	 S(
   s<   Indexing many nodes in one single session (based on bug #26)t   f0t   f1t   f2i   t   chrs	   /at/%s/ptt   createparentsi   N(   R   R   R;   R(   R9   RR   R  RD   R  R  R=   R?   R@   (   R-   t	   IdxRecordt   qnt   snt   qchrt   namet   pathR2   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test00€  s     


	(   R   R   R    t   opem_kwargsR  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  }  s   t   IndexPropsChangeTestCasec           B@ sl   e  Z d  Z d e j f d „  ƒ  YZ e ƒ  Z e d e d e j	 d d ƒ ƒ Z
 d „  Z d „  Z d	 „  Z RS(
   s3   Test case for changing index properties in a table.t   MyDescriptionc           B@ s   e  Z e ƒ  Z RS(    (   R   R   R   t   icol(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  š  s   RÂ   R8   R.   i	   c         C@ sŒ   t  t |  ƒ j ƒ  |  j j d d |  j ƒ } |  j j | _ | j	 } x, t
 d ƒ D] } | d | d <| j ƒ  qS W| j ƒ  | |  _ d  S(   NR†   t   testid   i   R  (   R&   R  R'   R(   R9   R  t   oldIndexPropsRÂ   RÇ   R=   R   R?   R@   R2   (   R-   R2   R=   RI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   Ÿ  s    	
c         C@ sL   xE |  j  |  j g D]1 } |  j |  j j | j ƒ |  j j |  j _ q Wd S(   s-   Storing index properties as table attributes.N(   R  t   newIndexPropsRZ   R2   RÇ   RÂ   (   R-   t   refprops(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_attributes«  s    c         C@ s5   |  j  } | j d d ƒ } |  j | j | j ƒ d S(   s$   Copying index properties attributes.R†   t   test2N(   R2   Rî   RZ   RÇ   (   R-   t   oldtablet   newtable(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_copyattrs±  s    	(   R   R   t   __doc__R5   R™   R  RÁ   R  Rc   R6   R  R'   R  R  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  —  s   	!		t   IndexFiltersTestCasec           B@ s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s$   Test case for setting index filters.c         C@ sB   t  t |  ƒ j ƒ  i t ƒ  d 6} |  j j d d | ƒ |  _ d  S(   NR  R†   R  (   R&   R   R'   R   R(   R9   R2   (   R-   t   description(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   »  s    c         C@ s"  t  j  t ƒ } t j | _ t  j  t ƒ } t j | _ t j | _ |  j j j } | j d d d d ƒ |  j | j	 j
 d ƒ |  j | j	 j d ƒ |  j | j	 j t ƒ | j ƒ  | j d d d d d | ƒ |  j | j	 j
 d ƒ |  j | j	 j d ƒ |  j | j	 j | ƒ | j ƒ  d S(	   s)   Checking input parameters in new indexes.t   kindt
   ultralightt   optleveli   t   mediumi   R8   N(   Rî   R   R0   R1   R2   RR   R  RD   RZ   RS   R"  R$  R8   R‚   (   R-   t
   argfilterst
   idxfiltersR  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_createIndexÀ  s     
c      	   C@ së   |  j  j j } | j d d d d d t j d d ƒ ƒ | j j } | j j } | j j	 } | j
 ƒ  | j } t r® t d | | | f ƒ t d	 | j | j | j	 f ƒ n  |  j | j | ƒ |  j | j | ƒ |  j | j	 | ƒ d
 S(   s0   Checking input parameters in recomputed indexes.R"  t   fullR$  i   R8   R.   i   s   Old parameters: %s, %s, %ss   New parameters: %s, %s, %sN(   R2   RR   R  RD   R5   R6   RS   R"  R$  R8   t   reindexR   RF   RZ   (   R-   R  R"  R$  R8   t   ni(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_reindexÛ  s    	
	(   R   R   R  R'   R(  R,  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR   ¸  s   		t   OldIndexTestCasec           B@ s   e  Z e d  ƒ Z d „  Z RS(   s   idx-std-1.x.h5c         C@ s   |  j  t |  j j d ƒ d S(   s<   Check that files with 1.x indexes are recognized and warned.s   /tableN(   t   assertWarnsR   R(   t   get_node(   R-   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test1_xñ  s    (   R   R   R   RQ   R0  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR-  î  s   i   i€   i    i   t   CompletelySortedIndexTestCasec           B@ sÈ  e  Z d  Z d Z d Z d e j f d „  ƒ  YZ 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% „  Z( d& „  Z) d' „  Z* d( „  Z+ d) „  Z, d* „  Z- d+ „  Z. d, „  Z/ d- „  Z0 d. „  Z1 d/ „  Z2 d0 „  Z3 d1 „  Z4 RS(2   s1   Test case for testing a complete sort in a table.id   i   R  c           B@ s&   e  Z e d  d ƒ Z e d  d ƒ Z RS(   R   i   i   (   R   R   R   t   rcolR  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR    s   c         C@ sµ   t  t |  ƒ j ƒ  |  j j d d |  j ƒ } | j } |  j } x6 t | ƒ D]( } | | d <| | | d <| j	 ƒ  qM W| j
 ƒ  | |  _ |  j j j |  _ |  j j d t ƒ d  S(   NR†   R2   R2  R  R4   (   R&   R1  R'   R(   R9   R  R=   R:   R   R?   R@   R2   RR   R  t   create_csindexRE   (   R-   R2   R=   R:   RI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'     s    		

	c         C@ sÄ   |  j  } |  j | j j t ƒ | j ƒ  | j d d d d ƒ |  j | j j t ƒ | j ƒ  | j d d d d ƒ |  j | j j t ƒ |  j j	 d d d	 d
 d t ƒ|  j | j j t ƒ d S(   s#   Testing the Column.is_csi property.R"  R%  R$  i	   R)  i   R†   Rˆ   t   sortbyR  t   checkCSIN(
   R  RZ   RS   t   is_csiRi   R‚   RD   Rc   R2   Rî   (   R-   R  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test00_isCompletelySortedIndex  s    	

c         C@ se   |  j  } t j | ƒ } | j j ƒ  } t rK t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s9   Testing the Index.read_sorted() method with no arguments.s   Original sorted column:s   The values from the index:N(	   R  Rx   Ry   RS   t   read_sortedR   RF   R|   R   (   R-   R  t	   sortedcolt
   sortedcol2(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01_readSorted1&  s    	c         C@ sr   |  j  } t j | ƒ d d !} | j j d d ƒ } t rX t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s:   Testing the Index.read_sorted() method with arguments (I).i   i7   s   Original sorted column:s   The values from the index:N(	   R  Rx   Ry   RS   R8  R   RF   R|   R   (   R-   R  R9  R:  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01_readSorted21  s    	c         C@ sr   |  j  } t j | ƒ d d !} | j j d d ƒ } t rX t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s;   Testing the Index.read_sorted() method with arguments (II).i!   ia   s   Original sorted column:s   The values from the index:N(	   R  Rx   Ry   RS   R8  R   RF   R|   R   (   R-   R  R9  R:  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test01_readSorted3<  s    	c         C@ sn   |  j  } t j | ƒ j d ƒ } | j j ƒ  } t rT t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s:   Testing the Index.read_indices() method with no arguments.t   uint64s   Original indices column:s   The values from the index:N(
   R  Rx   t   argsortt   astypeRS   t   read_indicesR   RF   R|   R   (   R-   R  t
   indicescolt   indicescol2(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices1G  s    	c         C@ s{   |  j  } t j | ƒ d d !j d ƒ } | j j d d ƒ } t ra t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s;   Testing the Index.read_indices() method with arguments (I).i   i7   R>  s   Original indices column:s   The values from the index:N(
   R  Rx   R?  R@  RS   RA  R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices2R  s    	 c         C@ s{   |  j  } t j | ƒ d d !j d ƒ } | j j d d ƒ } t ra t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s<   Testing the Index.read_indices() method with arguments (II).i!   ia   R>  s   Original indices column:s   The values from the index:N(
   R  Rx   R?  R@  RS   RA  R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices3]  s    	 c         C@ s„   |  j  } t j | ƒ d d d … j d ƒ } | j j d d d ƒ } t rj t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s=   Testing the Index.read_indices() method with arguments (III).i!   ia   i   R>  s   Original indices column:s   The values from the index:N(
   R  Rx   R?  R@  RS   RA  R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices4h  s    	&c         C@ s„   |  j  } t j | ƒ d d d … j d ƒ } | j j d d d ƒ } t rj t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s<   Testing the Index.read_indices() method with arguments (IV).i!   i7   i   R>  s   Original indices column:s   The values from the index:N(
   R  Rx   R?  R@  RS   RA  R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices5s  s    	&c         C@ s   |  j  } t j | ƒ d d d … j d ƒ } | j j d d ƒ } t rg t d | ƒ t d | ƒ n  |  j t	 | | ƒ ƒ d S(   s7   Testing the Index.read_indices() method with step only.Ni   R>  t   steps   Original indices column:s   The values from the index:(
   R  Rx   R?  R@  RS   RA  R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_readIndices6~  s    	&c         C@ si   |  j  } t j | ƒ j d ƒ } | j } t rO t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s9   Testing the Index.__getitem__() method with no arguments.R>  s   Original indices column:s   The values from the index:N(	   R  Rx   R?  R@  RS   R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03_getitem1‰  s    	
c         C@ sp   |  j  } t j | ƒ d j d ƒ } | j d } t rV t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s2   Testing the Index.__getitem__() method with start.i   R>  s   Original indices column:s   The values from the index:N(	   R  Rx   R?  R@  RS   R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03_getitem2”  s    	c         C@ sv   |  j  } t j | ƒ d d !j d ƒ } | j d d !} t r\ t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s8   Testing the Index.__getitem__() method with start, stop.i   i   R>  s   Original indices column:s   The values from the index:N(	   R  Rx   R?  R@  RS   R   RF   R|   R   (   R-   R  RB  RC  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test03_getitem3Ÿ  s    	 c         C@ s–   |  j  } t j | d d ƒ} t j g  | j d ƒ D] } | j ƒ  ^ q5 d | j ƒ} t r| t d | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(   s8   Testing the Table.itersorted() method with no arguments.t   orderR  t   dtypes   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   t
   itersortedt   fetch_all_fieldst   _v_dtypeR   RF   R|   R   (   R-   R2   t   sortedtableR=   t   sortedtable2(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted1ª  s    		+c         C@ s    |  j  } t j | d d ƒd } t j g  | j d d d ƒD] } | j ƒ  ^ q? d | j ƒ} t r† t d | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(	   s3   Testing the Table.itersorted() method with a start.RN  R  i   t   startRO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted2·  s    		1c         C@ s    |  j  } t j | d d ƒd  } t j g  | j d d d ƒD] } | j ƒ  ^ q? d | j ƒ} t r† t d | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(	   s2   Testing the Table.itersorted() method with a stop.RN  R  i   t   stopRO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted3Ä  s    		1c         C@ s©   |  j  } t j | d d ƒd d !} t j g  | j d d d d d ƒD] } | j ƒ  ^ qH d | j ƒ} t r t d | ƒ t d	 | ƒ n  |  j	 t
 | | ƒ ƒ d
 S(   s<   Testing the Table.itersorted() method with a start and stop.RN  R  i   i   RV  RX  RO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted4Ñ  s    		7c      
   C@ sµ   |  j  } t j | d d ƒd d d … } t j g  | j d d d d d d d ƒD] } | j ƒ  ^ qT d	 | j ƒ} t r› t d
 | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(   sJ   Testing the Table.itersorted() method with a start, stop and
        step.RN  R  i   i-   i   RV  RX  RI  RO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted5Þ  s    	#	=c      
   C@ sµ   |  j  } t j | d d ƒd d d … } t j g  | j d d d d d d d ƒD] } | j ƒ  ^ qT d	 | j ƒ} t r› t d
 | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(   sJ   Testing the Table.itersorted() method with a start, stop and
        step.RN  R  i!   i7   i   RV  RX  RI  RO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted6ì  s    	#	=c         C@ sœ   |  j  } t j | d d ƒ} t j g  | j d d t ƒD] } | j ƒ  ^ q; d | j ƒ} t r‚ t	 d | ƒ t	 d | ƒ n  |  j
 t | | ƒ ƒ d S(   s9   Testing the Table.itersorted() method with checkCSI=True.RN  R  R5  RO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  Ri   RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted7ú  s    		1c      
   C@ sµ   |  j  } t j | d d ƒd d d … } t j g  | j d d d d d d d ƒD] } | j ƒ  ^ qT d	 | j ƒ} t r› t d
 | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(   sS   Testing the Table.itersorted() method with a start, stop and
        negative step.RN  R  i7   i!   iûÿÿÿRV  RX  RI  RO  s   Original sorted table:s   The values from the iterator:N(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted8  s    	#	=c         C@ s©   |  j  } t j | d d ƒd d d … } t j g  | j d d d ƒD] } | j ƒ  ^ qH d | j ƒ} t r t d | ƒ t d | ƒ n  |  j	 t
 | | ƒ ƒ d S(	   s;   Testing the Table.itersorted() method with a negative step.RN  R  NiûÿÿÿRI  RO  s   Original sorted table:s   The values from the iterator:(   R2   Rx   Ry   Rz   RP  RQ  RR  R   RF   R|   R   (   R-   R2   RS  R=   RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test04_itersorted9  s    	#	1c         C@ sk   |  j  } t j | d d ƒ} | j d ƒ } t rQ t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s9   Testing the Table.read_sorted() method with no arguments.RN  R  s   Original sorted table:s   The values from read_sorted:N(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted1$  s    	c         C@ sx   |  j  } t j | d d ƒd d !} | j d d d ƒ} t r^ t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(	   s4   Testing the Table.read_sorted() method with a start.RN  R  i   i   RV  s   Original sorted table:s   The values from read_sorted:N(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted2/  s    	c         C@ s~   |  j  } t j | d d ƒd d !} | j d d d d d ƒ} t rd t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d	 S(
   s=   Testing the Table.read_sorted() method with a start and stop.RN  R  i   i!   RV  RX  s   Original sorted table:s   The values from read_sorted:N(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted3:  s    	c         C@ sŠ   |  j  } t j | d d ƒd d d … } | j d d d d d d d ƒ} t rp t d	 | ƒ t d
 | ƒ n  |  j t | | ƒ ƒ d S(   sK   Testing the Table.read_sorted() method with a start, stop and
        step.RN  R  i!   i7   i   RV  RX  RI  s   Original sorted table:s   The values from read_sorted:N(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted4E  s    	#!c         C@ s~   |  j  } t j | d d ƒd d d … } | j d d d ƒ} t rd t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s8   Testing the Table.read_sorted() method with only a step.RN  R  Ni   RI  s   Original sorted table:s   The values from read_sorted:(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted5Q  s    	#c         C@ s~   |  j  } t j | d d ƒd d d … } | j d d d ƒ} t rd t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s:   Testing the Table.read_sorted() method with negative step.RN  R  NiÿÿÿÿRI  s   Original sorted table:s   The values from read_sorted:(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted6\  s    	#c         C@ s~   |  j  } t j | d d ƒd d d … } | j d d d ƒ} t rd t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s?   Testing the Table.read_sorted() method with negative step (II).RN  R  NiþÿÿÿRI  s   Original sorted table:s   The values from read_sorted:(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted7g  s    	#c         C@ s–   |  j  } d } d } t j | d d ƒ| | d … } | j d d d d	 d d
 d ƒ} t r| t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   sA   Testing the Table.read_sorted() method with negative step (III)).id   i   i   i6   RN  R  iÿÿÿÿRV  RX  RI  s   Original sorted table:s   The values from read_sorted:NiL   iK   i.   i-   (   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   t   sstartt   sstopRS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted8r  s    	#!c         C@ s–   |  j  } d } d } t j | d d ƒ| | d … } | j d d d d	 d d
 d ƒ} t r| t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s@   Testing the Table.read_sorted() method with negative step (IV)).id   i   i   i6   RN  R  iýÿÿÿRV  RX  RI  s   Original sorted table:s   The values from read_sorted:NiV   iU   i.   i-   (   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   Rg  Rh  RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted9  s    	#!c         C@ s–   |  j  } d } d } t j | d d ƒ| | d … } | j d d d d	 d d
 d ƒ} t r| t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s?   Testing the Table.read_sorted() method with negative step (V)).id   i   i   i   RN  R  iþÿÿÿRV  RX  RI  s   Original sorted table:s   The values from read_sorted:NiL   iK   iK   iJ   (   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   Rg  Rh  RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted10Œ  s    	#!c         C@ s–   |  j  } d } d } t j | d d ƒ| | d … } | j d d d d	 d d
 d ƒ} t r| t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s9   Testing the Table.read_sorted() method with start > stop.id   i‰   i   i   RN  R  iþÿÿÿRV  RX  RI  s   Original sorted table:s   The values from read_sorted:NiÛÿÿÿiÚÿÿÿiK   iJ   (   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   Rg  Rh  RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05_readSorted11™  s    	#!c         C@ sq   |  j  } t j | d d ƒ} | j d d t ƒ} t rW t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s9   Testing the Table.read_sorted() method with checkCSI (I).RN  R  R5  s   Original sorted table:s   The values from read_sorted:N(	   R2   Rx   Ry   R8  Ri   R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05a_readSorted12¦  s    	c         C@ s)   |  j  } |  j t | j d d t ƒd S(   s:   Testing the Table.read_sorted() method with checkCSI (II).R2  R5  N(   R2   t   assertRaisest
   ValueErrorR8  Rc   (   R-   R2   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test05b_readSorted12±  s    		c         C@ s‡   |  j  } |  j | _ | j d d d d ƒ} t j | d d ƒ} | } t rm t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(	   s8   Testing the Table.copy(sortby) method with no arguments.R†   Rˆ   R4  R  RN  s   Original sorted table:s   The values from copy:N(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted1¸  s    	c         C@ sš   |  j  } |  j | _ | j d d d d d d ƒ} t j | d d ƒd d d … } | } t r€ t d	 | ƒ t d
 | ƒ n  |  j t | | ƒ ƒ d S(   s3   Testing the Table.copy(sortby) method with step=-1.R†   Rˆ   R4  R  RI  iÿÿÿÿRN  Ns   Original sorted table:s   The values from copy:(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted2Æ  s    	#c         C@ s”   |  j  } |  j | _ | j d d d d d d ƒ} t j | d d ƒd d !} | } t rz t d	 | ƒ t d
 | ƒ n  |  j t | | ƒ ƒ d S(   s8   Testing the Table.copy(sortby) method with only a start.R†   Rˆ   R4  R  RV  i   RN  i   s   Original sorted table:s   The values from copy:N(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted3Ô  s    	c      	   C@ sš   |  j  } |  j | _ | j d d d d d d d d ƒ} t j | d	 d ƒd d !} | } t r€ t d
 | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s7   Testing the Table.copy(sortby) method with start, stop.R†   Rˆ   R4  R  RV  i   RX  i(   RN  s   Original sorted table:s   The values from copy:N(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted4â  s    	$c         C@ s¦   |  j  } |  j | _ | j d d d d d d d d d	 d
 ƒ} t j | d d ƒd d d
 … } | } t rŒ t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(   s=   Testing the Table.copy(sortby) method with start, stop, step.R†   Rˆ   R4  R  RV  i   RX  i!   RI  i   RN  s   Original sorted table:s   The values from copy:N(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted5ð  s    	#c         C@ s   |  j  d d ƒ |  j j j } |  j | _ | j d d d d ƒ} t j | d d ƒ} | } t rƒ t	 d | ƒ t	 d	 | ƒ n  |  j
 t | | ƒ ƒ d
 S(   s=   Testing the Table.copy(sortby) method after table re-opening.RL   RM   R†   Rˆ   R4  R  RN  s   Original sorted table:s   The values from copy:N(   R„   R(   R)   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted6ÿ  s    c      	   C@ sV   |  j  } |  j | _ | j d d d d ƒ} |  j t | j d d d d d t ƒd S(	   s5   Testing the `checkCSI` parameter of Table.copy() (I).R†   Rˆ   R4  R  t   table3R2  R5  N(   R2   RT   Rî   Rn  Ro  Rc   (   R-   R2   Rˆ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted7	  s    		c      	   C@ sV   |  j  } |  j | _ | j d d d d ƒ} |  j t | j d d d d d t ƒd S(	   s6   Testing the `checkCSI` parameter of Table.copy() (II).R†   Rˆ   R4  R  Rw  R2  R5  N(   R2   RT   Rî   Rn  Ro  Ri   (   R-   R2   Rˆ   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test06_copy_sorted8	  s    		c         C@ sw   |  j  j d d |  j ƒ } | j j j ƒ  } t rI t d t | ƒ ƒ n  |  j	 | d ƒ |  j	 | j
 d j t ƒ d S(   s8   Testing the representation of an index with no elements.R†   t   t2s   repr(t2)-->
i    R2  N(   R(   R9   R  RR   R2  R3  R   RF   t   reprRZ   t
   colindexesR6  Rc   (   R-   Rz  t   irows(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test07_isCSI_noelements&	  s    (5   R   R   R  R:   RT   R5   R™   R  R'   R7  R;  R<  R=  RD  RE  RF  RG  RH  RJ  RK  RL  RM  RU  RW  RY  RZ  R[  R\  R]  R^  R_  R`  Ra  Rb  Rc  Rd  Re  Rf  Ri  Rj  Rk  Rl  Rm  Rp  Rq  Rr  Rs  Rt  Ru  Rv  Rx  Ry  R~  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR1  û  sb   																																												t   ReadSortedIndexTestCasec           B@ s`   e  Z d  Z d Z d Z d e j f d „  ƒ  YZ d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   s?   Test case for testing sorted reading in a "full" sorted column.id   i   R  c           B@ s&   e  Z e d  d ƒ Z e d  d ƒ Z RS(   R   i   i   (   R   R   R   R2  R  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  7	  s   c         C@ sÄ   t  t |  ƒ j ƒ  |  j j d d |  j ƒ } | j } |  j } x6 t | ƒ D]( } | | d <| | | d <| j	 ƒ  qM W| j
 ƒ  | |  _ |  j j j |  _ |  j j d |  j d d d t ƒ d  S(	   NR†   R2   R2  R  R$  R"  R)  R4   (   R&   R  R'   R(   R9   R  R=   R:   R   R?   R@   R2   RR   R  RD   R$  RE   (   R-   R2   R=   R:   RI   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   ;	  s    		

	c         C@ sz   |  j  } t j | d d ƒ} | j d ƒ } t rQ t d | ƒ t d | ƒ n  |  j t | t j | d d ƒƒ ƒ d S(   s9   Testing the Table.read_sorted() method with no arguments.RN  R  s   Sorted table:s   The values from read_sorted:N(   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR;  L	  s    	c         C@ sŠ   |  j  ƒ  |  j j j } t j | d d ƒ} | j d ƒ } t ra t d | ƒ t d | ƒ n  |  j	 t
 | t j | d d ƒƒ ƒ d S(   sK   Testing the Table.read_sorted() method with no arguments
        (re-open).RN  R  s   Sorted table:s   The values from read_sorted:N(   R„   R(   R)   R2   Rx   Ry   R8  R   RF   R|   R   (   R-   R2   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR<  Z	  s    
c         C@ s—   |  j  } |  j | _ | j d d d d ƒ} t j | d d ƒ} t j | d d ƒ} t r} t d | ƒ t d | ƒ n  |  j t | | ƒ ƒ d S(	   s&   Testing the Table.copy(sortby) method.R†   Rˆ   R4  R  RN  s   Original table:s   The sorted values from copy:N(	   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_copy_sorted1j	  s    	c         C@ s­   |  j  d d ƒ |  j j j } |  j | _ | j d d d d ƒ} t j | d d ƒ} t j | d d ƒ} t r“ t	 d | ƒ t	 d	 | ƒ n  |  j
 t | | ƒ ƒ d
 S(   s=   Testing the Table.copy(sortby) method after table re-opening.RL   RM   R†   Rˆ   R4  R  RN  s   Original table:s   The sorted values from copy:N(   R„   R(   R)   R2   RT   Rî   Rx   Ry   R   RF   R|   R   (   R-   R2   Rˆ   RS  RT  (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test02_copy_sorted2x	  s    (   R   R   R  R:   RT   R5   R™   R  R'   R;  R<  R€  R  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR  1	  s   				t   ReadSortedIndex0c           B@ s   e  Z d  Z RS(   i    (   R   R   R$  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR‚  ˆ	  s   t   ReadSortedIndex3c           B@ s   e  Z d  Z RS(   i   (   R   R   R$  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRƒ  Œ	  s   t   ReadSortedIndex6c           B@ s   e  Z d  Z RS(   i   (   R   R   R$  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR„  	  s   t   ReadSortedIndex9c           B@ s   e  Z d  Z RS(   i	   (   R   R   R$  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR…  ”	  s   t   Issue156TestBasec           B@ s    e  Z d Z d  „  Z d „  Z RS(   c         C@ sÖ   t  t |  ƒ j ƒ  d t j f d „  ƒ  Y} |  j j d d | d t j d d ƒ d t ƒ} |  j j	 ƒ  xY t
 d	 ƒ D]K } | j } t j j d
 d ƒ | d <t j j d
 d ƒ | d <| j ƒ  qv W|  j j	 ƒ  d  S(   Nt   Fooc           B@ s*   e  Z e ƒ  Z d  e j f d „  ƒ  YZ RS(   t   Barc           B@ s   e  Z e ƒ  Z RS(    (   R   R   R	   t   code(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyRˆ  £	  s   (   R   R   R	   R•   R5   R™   Rˆ  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR‡   	  s   	R†   t   fooR8   i   R%   R
  i
   i    i   i   i   R•   s   Bar/codei   iÿÿ  i   iÿÿ  (   R&   R†  R'   R5   R™   R(   R9   R6   Ri   R@   R   R=   Rx   t   randomt   randintR?   (   R-   R‡  R2   t   kR=   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   œ	  s    		c         C@ sÄ   |  j  j d ƒ } | j |  j j ƒ  | j d d d t d |  j d t d t ƒ } |  j t j	 | j
 |  j ƒ t | j
 |  j ƒ ƒ k ƒ ƒ |  j |  j | j k ƒ |  j | j |  j j ƒ d  S(   Ns   /foot   newnamet   foo2t	   overwriteR4  R5  Rí   (   R(   R/  RC   t
   sort_fieldR3  Rî   Ri   R|   Rx   t   allRJ   RV   R|  R6  (   R-   t   oldNodet   new_node(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_copysortµ	  s    	N(   R   R   R   R‘  R'   R•  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR†  ˜	  s   	t   Issue156TestCase01c           B@ s   e  Z d  Z RS(   R•   (   R   R   R‘  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR–  Ì	  s   t   Issue156TestCase02c           B@ s   e  Z d  Z RS(   s   Bar/code(   R   R   R‘  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR—  Ñ	  s   t   Issue119Time32ColTestCasec        
   B@ sM   e  Z d  Z e j Z d d d d d d d d d	 d
 g
 Z d „  Z d „  Z RS(   s   TimeCol not properly indexing.gmõþAÖí?gûv9Tlè?gôÜ|  ^Å?gž?fò3í?gëÈLªî?g•?­:Ñvà?gèõ†TyLÏ?gL¥Ø\0Zë?g”}gÒÑÎÔ?gŽ¶t
è?c         @ s¬   t  t ˆ  ƒ j ƒ  d t j f ‡  f d †  ƒ  Y} ˆ  j j d d | ƒ ˆ  _ d ˆ  _ g  t	 ˆ  j
 ƒ D] \ } } ˆ  j | | f ^ qf } ˆ  j j | ƒ ˆ  j j ƒ  d  S(   Nt   Descrc           @ s)   e  Z ˆ  j d  d ƒ Z e d  d ƒ Z RS(   R   i   i   (   R   R   t   col_typt   whenR
   t   value(    (   R-   (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR™  ê	  s   R†   R  g  ÀËU¯ÓA(   R&   R˜  R'   R5   R™   R(   R9   R2   t   tR`   t   valuesR?   R@   (   R-   R™  RI   t   itemt   data(    (   R-   s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR'   ç	  s    	5c         C@ sw   |  j  } |  j } d | | d f } | j | ƒ } | j j j d t ƒ | j | ƒ } |  j | | k j ƒ  ƒ d  S(   Ns   (when >= %d) & (when < %d)i   t   _verbose(	   R2   R  t
   read_whereRR   R›  RD   Rc   R|   R’  (   R-   t   tblR  t   wherestrt   no_indext
   with_index(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_timecol_issueõ	  s    		(	   R   R   R  R5   t	   Time32ColRš  Rž  R'   R§  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR˜  Ö	  s   			t   Issue119Time64ColTestCasec           B@ s   e  Z e j Z RS(    (   R   R   R5   t	   Time64ColRš  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR©  
  s   t   TestIndexingNansc           B@ s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@ sË   i t  ƒ  d 6t ƒ  d 6} |  j j d d | ƒ } | j } xG t d ƒ D]9 } | | d <| d k rm t j n | | d <| j ƒ  qH W| j	 ƒ  | j
 j j ƒ  | j d ƒ } |  j t | ƒ d k ƒ d  S(	   NRS   Rž  R†   R2   i   i    s   (values >= 0)i   (   R   R   R(   R9   R=   R   Rx   t   nanR?   R@   RR   Rž  RD   R¢  R|   R[   (   R-   t   trMapR2   Rg   RI   t   result(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_issue_282
  s    	

c         C@ s#  |  j  j d d t d t ƒ  d t d d ƒ d t d d ƒ ƒ ƒ } | j } x] t d ƒ D]O } | | d <| d k s€ | d	 k r‰ t j n | | d <| | d <| j	 ƒ  qX W| j
 ƒ  | j j j ƒ  | j j j ƒ  | j d
 ƒ } |  j t | ƒ d ƒ | j d ƒ } |  j t | ƒ d ƒ d  S(   NR†   R2   RS   Rž  t   shapet   values2i   i   i   s   (values2 > 0)i   s   (values > 0)(    (    (   R(   R9   R    R   R   R=   R   Rx   R¬  R?   R@   RR   Rž  RD   R±  R¢  R|   R[   RZ   (   R-   R2   Rg   RI   t   results2R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_issue_327
  s"    		
+

c         C@ sF  |  j  j d d t d t ƒ  d t d d ƒ d t d d ƒ ƒ ƒ } | j } xt t d ƒ D]f } x] t d ƒ D]O } | | d <| d	 k s“ | d
 k rœ t j n | | d <| | d <| j	 ƒ  qk WqX W| j
 ƒ  | j j j d t ƒ | j j j d t ƒ | j d ƒ } |  j t | ƒ d ƒ | j d ƒ } |  j t | ƒ d ƒ d  S(   NR†   R2   RS   Rž  R°  R±  id   i   i   i   R4   s   (values2 > 0)i  s   (values > 0)iÈ   (    (    (   R(   R9   R    R   R   R=   R   Rx   R¬  R?   R@   RR   Rž  RD   RE   R±  R¢  R|   R[   RZ   (   R-   R2   Rg   R§   RI   R²  R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_issue_327_b1
  s$    		
+

c         C@ sF  |  j  j d d t d t ƒ  d t d d ƒ d t d d ƒ ƒ ƒ } | j } xt t d ƒ D]f } x] t d ƒ D]O } | | d <| d	 k s“ | d
 k rœ t j n | | d <| | d <| j	 ƒ  qk WqX W| j
 ƒ  | j j j d t ƒ | j j j d t ƒ | j d ƒ } |  j t | ƒ d ƒ | j d ƒ } |  j t | ƒ d ƒ d  S(   NR†   R2   RS   Rž  R°  R±  id   i   i   i   R4   s   (values2 > 0)i   s   (values > 0)(    (    i  iÈ   (   R(   R9   R    R   R   R=   R   Rx   R¬  R?   R@   RR   Rž  R3  RE   R±  R¢  R|   R[   RZ   (   R-   R2   Rg   t   xRI   R²  R^   (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   test_csindex_nansJ
  s$    		
+

(   R   R   R¯  R³  R´  R¶  (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyR«  
  s   			c          C@ sd  t  j ƒ  }  d } x’t | ƒ D]„} |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t	 ƒ ƒ |  j t  j t
 ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t  ƒ ƒ |  j t  j t! ƒ ƒ q Wt" r`|  j t  j t# ƒ ƒ |  j t  j t$ ƒ ƒ |  j t  j t% ƒ ƒ |  j t  j t& ƒ ƒ |  j t  j t' ƒ ƒ |  j t  j t( ƒ ƒ |  j t  j t) ƒ ƒ |  j t  j t* ƒ ƒ n  |  S(   Ni   (+   R   t	   TestSuiteR   t   addTestt	   makeSuiteR«   R­   R®   R°   R²   R´   Rµ   R¶   R·   R¸   R¹   Rö   R÷   R  Rº   R  R   R-  R1  R  R‚  Rƒ  R„  R…  R–  R—  R˜  R©  R«  R   Rø   Rù   Rþ   Rÿ   R   R  R  R  (   t   theSuitet   nitert   n(    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   suited
  sT    t   __main__t   defaultTestR½  (h   t
   __future__R    R   Rš   Rî   Rœ   Rx   R5   R   R   R   R   R   R   R   R	   R
   t   tables.indexR   R   R   t   tables.idxutilsR   t   tables.exceptionsR   t   tables.testsR   t   tables.tests.commonR   R   R   R   R   R   R   t   TestCaseRA   t	   six.movesR   R©   RE   R™   R   R$   R¬   R«   R­   t   skipIft   blosc_availR®   t	   lzo_availR°   t   bzip2_availR²   R´   Rµ   R¶   R·   R¸   R¹   Rº   t   objectRÁ   RË   Rc   RÎ   R6   RÐ   RÄ   Rö   R÷   Rø   Rù   Rþ   Rÿ   R   R  R  R  R  R  R  R   t   TestFileMixinR-  R1  R  R‚  Rƒ  R„  R…  R†  R–  R—  R˜  R©  R«  R½  R   t   syst
   parse_argvt   argvt   print_versionst   main(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_indexes.pyt   <module>   sª   @"ÿ ÿ ·
		‘	ÿ ÿ X		!6
ÿ ÿ 8W4-]	2
