ó
jˆú\c           @@ s5  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 m Z d  d l m	 Z	 d  d l m
 Z d  d l m Z d „  Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e j e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d  „  ƒ  YZ d! e j e f d" „  ƒ  YZ d# e f d$ „  ƒ  YZ d% e f d& „  ƒ  YZ d' „  Z e  d( k r1d  d l! Z! e j" e! j# ƒ e j$ ƒ  e	 j% d) d* ƒ n  d S(+   i    (   t   print_function(   t   absolute_importN(   t   common(   t   unittest(   t   PyTablesTestCase(   t   rangec         C@ s  t  j r1 t d d d ƒ t d t | ƒ ƒ n  t j |  d d ƒ} | j } z  | } | j | d | d ƒ Wd  | j ƒ  Xt j |  d d	 ƒ} | j } zb | j	 j
 ƒ  } | | k rê t  j rê t d
 ƒ t d | ƒ t d | ƒ n  | | k sü t ‚ Wd  | j ƒ  Xd  S(   Ns   
s   -=i   s   Running test for object %st   modet   wt	   somearrays
   Some arrayt   rs#   Write and read lists/tuples differ!s   Object written:s   Object read:(   R   t   verboset   printt   typet   tablest	   open_filet   roott   create_arrayt   closeR   t   readt   AssertionError(   t   filenamet	   testTuplet   filehR   t   at   b(    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt	   WriteRead   s&    			
t   BasicTestCasec           B@ s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@ s2   t  t |  ƒ j ƒ  t j d ƒ |  _ d  |  _ d  S(   Ns   .h5(   t   superR   t   setUpt   tempfilet   mktempt   h5fnamet   Nonet   h5file(   t   self(    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR   4   s    c         C@ s^   |  j  d  k	 r |  j  j ƒ  n  t j j |  j ƒ rG t j |  j ƒ n  t t	 |  ƒ j
 ƒ  d  S(   N(   R!   R    R   t   ost   patht   existsR   t   removeR   R   t   tearDown(   R"   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR'   9   s
    c         C@ s   |  j  } t |  j | ƒ d S(   s0   Data integrity during recovery (character types)N(   t   charListR   R   (   R"   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test00_char@   s    	c         C@ s   |  j  } t |  j | ƒ d S(   s0   Data integrity during recovery (numerical types)N(   t   numericalListR   R   (   R"   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test01_typesF   s    	(   t   __name__t
   __module__R   R'   R)   R+   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR   3   s   			t   Basic0DOneTestCasec           B@ s   e  Z d  Z d Z d Z RS(   s   Rank-0 case 1i   t   3(   R,   R-   t   titleR*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR.   M   s   t   Basic0DTwoTestCasec           B@ s   e  Z d  Z d Z d d Z RS(   s   Rank-0 case 2gìQ¸…«@@t   33iô  (   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR1   T   s   t   Basic1DOneTestCasec           B@ s    e  Z d  Z d g Z d g Z RS(   s   Rank-1 case 1i   R   (   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR3   b   s   	t   Basic1DTwoTestCasec           B@ s#   e  Z d  Z d d g Z d g Z RS(   s   Rank-1 case 2gš™™™™™	@gÍÌÌÌÌÌ@t   aaa(   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR4   i   s   t   Basic2DTestCasec           B@ s4   e  Z d  Z d d g g d Z d d g g d Z RS(   s   Rank-2 case 1i   i   i   t   qqt   zz(   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR6   p   s   t   Basic10DTestCasec           B@ sv   e  Z d  Z d d g d d g g g g g g g g g g d Z d d g d d	 g g g g g g g g g g d Z RS(
   s   Rank-10 case 1i   i   i   i   i   R   R   R7   R8   (   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR9   w   s   4t   ExceptionTestCasec           B@ s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@ s2   t  t |  ƒ j ƒ  t j d ƒ |  _ d  |  _ d  S(   Ns   .h5(   R   R:   R   R   R   R   R    R!   (   R"   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR   €   s    c         C@ s^   |  j  d  k	 r |  j  j ƒ  n  t j j |  j ƒ rG t j |  j ƒ n  t t	 |  ƒ j
 ƒ  d  S(   N(   R!   R    R   R#   R$   R%   R   R&   R   R:   R'   (   R"   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR'   …   s
    c         C@ sg   t  j r. t d d d ƒ t d |  j ƒ n  |  j } |  j t t f ƒ  t |  j	 | ƒ Wd QXd S(   s0   Non suppported lists objects (character objects)s   
s   -=i   s   Running test for %sN(
   R   R
   R   R0   R(   t   assertRaisest
   ValueErrort	   TypeErrorR   R   (   R"   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR)   Œ   s    		c         C@ s9   |  j  } |  j t t f ƒ  t |  j | ƒ Wd QXd S(   s,   Non supported lists object (numerical types)N(   R*   R;   R<   R=   R   R   (   R"   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR+   –   s    	(   R,   R-   R   R'   R)   R+   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR:      s   			
t   Basic1DFourTestCasec           B@ s2   e  Z d  Z d d d g g Z d d d g g Z RS(   s    Rank-1 case 4 (non-regular list)i   i   gÍÌÌÌÌÌ@R5   t   bbbt   ccc(   R,   R-   R0   R*   R(   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR>   ž   s   t   GetItemTestCasec           B@ sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C@ st   |  j  } |  j j |  j j d | d ƒ } t j rX t d | d ƒ t d | d ƒ n  |  j | d | d ƒ d S(   s'   Single element access (character types)R   s
   Some arrays   Original first element:i    s   Read first element:N(   R(   R!   R   R   R   R
   R   t   assertEqual(   R"   R   t   arr(    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test00_single¥   s    			c         C@ st   |  j  } |  j j |  j j d | d ƒ } t j rX t d | d ƒ t d | d ƒ n  |  j | d | d ƒ d S(   s'   Single element access (numerical types)R   s
   Some arrays   Original first element:i    s   Read first element:N(   R*   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test01_single³   s    			c         C@ s€   |  j  } |  j j |  j j d | d ƒ } t j r^ t d | d d !ƒ t d | d d !ƒ n  |  j | d d !| d d !ƒ d S(   s&   Range element access (character types)R   s
   Some arrays   Original elements:i   i   s   Read elements:N(   t
   charListMER!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test02_rangeÁ   s    			c         C@ s€   |  j  } |  j j |  j j d | d ƒ } t j r^ t d | d d !ƒ t d | d d !ƒ n  |  j | d d !| d d !ƒ d S(   s&   Range element access (numerical types)R   s
   Some arrays   Original elements:i   i   s   Read elements:N(   t   numericalListMER!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test03_rangeÏ   s    			c         C@ s˜   |  j  } |  j j |  j j d | d ƒ } t j rj t d | d d d … ƒ t d | d d d … ƒ n  |  j | d d d … | d d d … ƒ d S(	   s/   Range element access, strided (character types)R   s
   Some arrays   Original elements:i   i   i   s   Read elements:N(   RF   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test04_rangeÝ   s    			c         C@ s˜   |  j  } |  j j |  j j d | d ƒ } t j rj t d | d d d … ƒ t d | d d d … ƒ n  |  j | d d d … | d d d … ƒ d S(	   s&   Range element access (numerical types)R   s
   Some arrays   Original elements:i   i   i   s   Read elements:N(   RH   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test05_rangeë   s    			c         C@ st   |  j  } |  j j |  j j d | d ƒ } t j rX t d | d ƒ t d | d ƒ n  |  j | d | d ƒ d S(   s/   Negative Index element access (character types)R   s
   Some arrays   Original last element:iÿÿÿÿs   Read last element:N(   RF   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test06_negativeIndexù   s    			c         C@ st   |  j  } |  j j |  j j d | d ƒ } t j rX t d | d ƒ t d | d ƒ n  |  j | d | d ƒ d S(   s/   Negative Index element access (numerical types)R   s
   Some arrays   Original before last element:iþÿÿÿs   Read before last element:N(   RH   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test07_negativeIndex  s    			c         C@ s€   |  j  } |  j j |  j j d | d ƒ } t j r^ t d | d d !ƒ t d | d d !ƒ n  |  j | d d !| d d !ƒ d S(   s/   Negative range element access (character types)R   s
   Some arrays   Original last elements:iüÿÿÿiÿÿÿÿs   Read last elements:N(   RF   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test08_negativeRange  s    			c         C@ s€   |  j  } |  j j |  j j d | d ƒ } t j r^ t d | d d !ƒ t d | d d !ƒ n  |  j | d d !| d d !ƒ d S(   s/   Negative range element access (numerical types)R   s
   Some arrays   Original last elements:iüÿÿÿiÿÿÿÿs   Read last elements:N(   RH   R!   R   R   R   R
   R   RB   (   R"   R   RC   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test09_negativeRange#  s    			(   R,   R-   RD   RE   RG   RI   RJ   RK   RL   RM   RN   RO   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyRA   ¤   s   									t   GI1ListTestCasec           B@ sV   e  Z d  Z d g Z d d d d d d d g Z d g Z d	 d
 d d d d d g Z RS(   s   Rank-1 case 1 (lists)i   i   i   i    i   i   i   R/   t   321t   221t   121t   021t   421t   521t   621(   R,   R-   R0   R*   RH   R(   RF   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyRP   2  s
   		t   GI2ListTestCasec           B@ s:  e  Z d  Z d d g Z d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g g Z d	 d
 g Z d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d  d! g d" d# d$ d% d& d' d( g g Z RS()   s   Rank-1,2 case 2 (lists)i   i   i   i   i    i   i   i   R   R   RQ   RR   RS   RT   RU   RV   RW   t   21t   11t   02t   42t   61t   31t   12t   41t   51t   3241t   2321t   13216t   0621t   4421t   5421t   a621t   a321t   s221t   d121t   g021t   b421t   5vvv21t   6zxzxs21(   R,   R-   R0   R*   RH   R(   RF   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyRX   :  s   t   GeneratorTestCasec           B@ s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@ s–   |  j  } |  j j |  j j d | d ƒ } g  | D] } | ^ q1 } g  | D] } | ^ qJ } t j r‚ t d | ƒ t d | ƒ n  |  j | | ƒ d S(   s:   Testing generator access to Arrays, single elements (char)R   s
   Some arrays   Result of original iterator:s   Result of read generator:N(   R(   R!   R   R   R   R
   R   RB   (   R"   R   RC   t   it   gat   garr(    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test00a_singleP  s    			c         C@ sË   |  j  } |  j j |  j j d | d ƒ } t | d t ƒ r_ g  | D] } t | ƒ ^ qD } n g  | D] } | ^ qf } g  | D] } | ^ q } t j r· t	 d | ƒ t	 d | ƒ n  |  j
 | | ƒ d S(   s<   Testing generator access to Arrays, multiple elements (char)R   s
   Some arrayi    s   Result of original iterator:s   Result of read generator:N(   RF   R!   R   R   t
   isinstancet   tuplet   listR   R
   R   RB   (   R"   R   RC   Rq   Rr   Rs   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt
   test00b_me`  s    		"	c         C@ s–   |  j  } |  j j |  j j d | d ƒ } g  | D] } | ^ q1 } g  | D] } | ^ qJ } t j r‚ t d | ƒ t d | ƒ n  |  j | | ƒ d S(   s=   Testing generator access to Arrays, single elements (numeric)R   s
   Some arrays   Result of original iterator:s   Result of read generator:N(   R*   R!   R   R   R   R
   R   RB   (   R"   R   RC   Rq   Rr   Rs   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   test01a_singles  s    			c         C@ sË   |  j  } |  j j |  j j d | d ƒ } t | d t ƒ r_ g  | D] } t | ƒ ^ qD } n g  | D] } | ^ qf } g  | D] } | ^ q } t j r· t	 d | ƒ t	 d | ƒ n  |  j
 | | ƒ d S(   s?   Testing generator access to Arrays, multiple elements (numeric)R   s
   Some arrayi    s   Result of original iterator:s   Result of read generator:N(   RH   R!   R   R   Ru   Rv   Rw   R   R
   R   RB   (   R"   R   RC   Rq   Rr   Rs   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt
   test01b_meƒ  s    		"	(   R,   R-   Rt   Rx   Ry   Rz   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyRp   O  s   			t   GE1ListTestCasec           B@ sV   e  Z d  Z d g Z d d d d d d d g Z d g Z d	 d
 d d d d d g Z RS(   s   Rank-1 case 1 (lists)i   i   i   i    i   i   i   R/   RQ   RR   RS   RT   RU   RV   RW   (   R,   R-   R0   R*   RH   R(   RF   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR{   —  s
   		t   GE2ListTestCasec           B@ s:  e  Z d  Z d d g Z d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g g Z d	 d
 g Z d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d d g d d d d d d  d! g d" d# d$ d% d& d' d( g g Z RS()   s   Rank-1,2 case 2 (lists)i   i   i   i   i    i   i   i   R   R   RQ   RR   RS   RT   RU   RV   RW   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   (   R,   R-   R0   R*   RH   R(   RF   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyR|      s   c          C@ s  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 ƒ ƒ q W|  S(   Ni   (   R   t	   TestSuiteR   t   addTestt	   makeSuiteR.   R1   R3   R4   R>   R6   R9   RP   RX   R{   R|   (   t   theSuitet   niterRq   (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   suiteµ  s    t   __main__t   defaultTestR‚   (&   t
   __future__R    R   R#   R   R   t   tables.testsR   t   tables.tests.commonR   R   t   TestCaset	   six.movesR   R   R   R.   R1   R3   R4   R6   R9   R:   R>   t   TempFileMixinRA   RP   RX   Rp   R{   R|   R‚   R,   t   syst
   parse_argvt   argvt   print_versionst   main(    (    (    s6   lib/python2.7/site-packages/tables/tests/test_lists.pyt   <module>   s<   	$ŽH		
