
j\c           @@ sl  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 m Z m Z m Z 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 d  d	 l m  Z  d
 d d d d d d g Z! e j" d k r\e! d d d d d d d g 7Z! n e! d d d d d d g 7Z! e! d g 7Z! e# e d  re! j$ d  n  e# e d  pe# e d  re! j$ d  n  e# e d  pe# e d   r e! j$ d!  n  i d" d# 6d$ d% 6e j% 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* d0 e& f d1     YZ+ d2 e& f d3     YZ, d4 e& f d5     YZ- d6 e j. e f d7     YZ/ d8 e j0 f d9     YZ1 d: e j. e f d;     YZ2 d< e j0 f d=     YZ3 d> e j0 f d?     YZ4 d@ e j. e f dA     YZ5 dB e5 f dC     YZ6 dD e5 f dE     YZ7 dF e j. e f dG     YZ8 dH e8 f dI     YZ9 dJ e8 f dK     YZ: dL e j. e f dM     YZ; dN e; f dO     YZ< dP e; f dQ     YZ= dR   Z> e? dS k rhe j@ e jA  e jB   e jC dT dU  n  d S(V   i    (   t   print_function(   t   absolute_importN(   t	   StringColt   BoolColt   FloatColt
   ComplexColt   EnumColt   Int8Colt   UInt8Colt   Int16Colt	   UInt16Colt   Int32Colt	   UInt32Colt   Int64Colt
   Float32Colt
   Float64Colt	   Time64Col(   t   common(   t   allequal(   t   unittest(   t   PyTablesTestCase(   t   ranget   bt   ht   it   lt   qt   ft   dt   win32t   Bt   Ht   It   Lt   Qt   Ft   Dt   b1t   Float16Atomt   et   Float96Atomt   Float128Atomt   gt   Complex192Atomt   Conplex256Atomt   Gt   <t   littlet   >t   bigt   BasicTestCasec           B@ sA   e  Z d  Z d Z d   Z d   Z d   Z d   Z d   Z RS(   sm   Basic test for all the supported typecodes present in NumPy.

    All of them are included on PyTables.

    i    c      
   C@ s  t  j rG t d d d  t d | j j d d t d |  j  n  t j d  |  _ z+t	 j
 |  j d	 d
 ; |  _ |  j j |  _ | } |  j j |  j d | d  Wd  QXt	 j
 |  j d	 d |  _ |  j j |  _ |  j j j   } t | d  s t j j | d | j j } n  t  j rt d |  t d | j  t d | j  t d | j j  t d |  t d | j  t d | j  t d | j j  n  |  j j j j } |  j t |  t |   |  j | j | j  |  j | j |  j j j  |  j | j | j  | j j d d k rK|  j | d  n |  j | j j j |  |  j t | | d   Wd  QXWd  t j j |  j  rt j  |  j  n  Xd  S(   Ns   
s   -=i   s)   Running test for array with typecode '%s't   endt    s   for class check:s   .h5t   modet   wt	   somearrays
   Some arrayt   rt   shapet   dtypes   Array written:s   Array written shape:s   Array written itemsize:s   Array written type:s   Array read:s   Array read shape:s   Array read itemsize:s   Array read type:i    t   St   stringt   numpy(!   R   t   verboset   printR:   t   chart   titlet   tempfilet   mktempt   h5fnamet   tablest	   open_filet   h5filet   roott   create_arrayR7   t   readt   hasattrt   npt   arrayt   strR9   t   itemsizet   atomt   typet   assertEqualt   baset   namet
   assertTrueR   t   ost   patht   existst   remove(   t   selft	   testArrayt   aR   t   type_(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt	   WriteRead3   sJ    	!	#c         C@ s9   t  j |  j d t t |  j    } |  j |  d S(   s2   Data integrity during recovery (character objects)R;   N(   RL   RM   t	   tupleCharRN   t   lenR^   (   RZ   R\   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test00_charo   s    (c         C@ s   t  j |  j d t t |  j    } | j d k r@ | } n@ | d d d  } | j d d k r |  j | j d t  n  |  j	 |  d S(   sA   Data integrity during recovery (non-contiguous character objects)R;   Ni   i    t
   CONTIGUOUS(    (
   RL   RM   R_   RN   R`   R9   RR   t   flagst   FalseR^   (   RZ   R\   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01_char_ncu   s    (	c         C@ s[   xT t  D]L } |  j j r. |  j j |  } n t j |  j d | } |  j |  q Wd S(   s0   Data integrity during recovery (numerical types)R:   N(   t	   typecodest   tupleIntR9   t   astypeRL   RM   R^   (   RZ   t   typecodeR\   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test02_types   s
    c         C@ s   x t  D] } |  j j r. |  j j |  } n t j |  j d | } t | j  d k rg t j  n  | d d d  } | j d d k r |  j	 | j
 d t  n  |  j |  q Wd S(   s?   Data integrity during recovery (non-contiguous numerical types)R:   i    Ni   Rb   (   Rf   Rg   R9   Rh   RL   RM   R`   R   t   SkipTestRR   Rc   Rd   R^   (   RZ   Ri   R\   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test03_types_nc   s    (	   t   __name__t
   __module__t   __doc__t   endiancheckR^   Ra   Re   Rj   Rl   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR2   +   s   	<			t   Basic0DOneTestCasec           B@ s#   e  Z d  Z e j d  Z d Z RS(   s   Rank-0 case 1i   t   4(   Rm   Rn   RA   RL   RM   Rg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyRq      s   t   Basic0DTwoTestCasec           B@ s#   e  Z d  Z e j d  Z d Z RS(   s   Rank-0 case 2i!   t   44(   Rm   Rn   RA   RL   RM   Rg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyRs      s   t   Basic1DOneTestCasec           B@ s#   e  Z d  Z e j d  Z d Z RS(   s   Rank-1 case 1i   R\   (   i   (   R\   (   Rm   Rn   RA   RL   RM   Rg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyRu      s   t   Basic1DTwoTestCasec           B@ s#   e  Z d  Z e j d  Z d Z RS(   s   Rank-1 case 2i    i   t   aaa(   i    i   (   Rw   (   Rm   Rn   RA   RL   RM   Rg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyRv      s   t   Basic1DThreeTestCasec           B@ s#   e  Z d  Z e j d  Z d Z RS(   s   Rank-1 case 3i   i   i   t   aaaat   bbb(   i   i   i   (   Ry   Rz   (   Rm   Rn   RA   RL   RM   Rg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyRx      s   t   Basic2DTestCasec           B@ s>   e  Z d  Z e j d
  Z d d g d d g d d g g Z RS(   s   Rank-2 case 1i   i   Rw   t   dddddR   t   sst   st   tt(   i   (   i   i   (   Rm   Rn   RA   RL   t   onesRg   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR{      s   t   Basic10DTestCasec           B@ s2   e  Z d  Z e j d  Z e j e d d Z RS(   s   Rank-10 case 1i   i
   R:   t   S1(   i   (
   i   i   i   i   i   i   i   i   i   i   (   Rm   Rn   RA   RL   R   Rg   RM   R_   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR      s   t   GroupsArrayTestCasec           B@ s    e  Z d  Z d   Z d   Z RS(   sv   This test class checks combinations of arrays with groups.

    It also uses arrays ranks which ranges until 10.

    c         C@ s  t  j r1 t d d d  t d |  j j  n  |  j j } d } x t D] } t j	 d | |  } d | } t  j r t d | j
 |   n  |  j j | | | d	  |  j j | d
 t |   } | d 7} qJ W|  j   |  j j } xt d t t   D]} t j	 d | t | d  } t | d t | d  } | j   } t | | d  rt  j rt d | j  t d |  t d | j  t d | j d d t d | j  t d | j d d t d | j j  n  |  j | j | j  t j d  j d k r| j j d k s>| j j d k rl|  j | j j d k pe| j j d k  q| j j d k s| j j d k r|  j | j j d k p| j j d k  q|  j t | | d   n t j d  j d k r| j j d k s| j j d k rD|  j | j j d k p=| j j d k  q| j j d k sh| j j d k r|  j | j j d k p| j j d k  q|  j t | | d   n  t | d
 t |   } qWd S(    so   Checking combinations of arrays with groups

        It also uses arrays ranks which ranges until 10.

        s   
s   -=i   s$   Running %s.test00_iterativeGroups...i   i   t   array_s   Creating dataset:s   Large arrayt   groupR=   s   Array a original. Shape: ==>s   Array a original. Data: ==>s   Info from dataset:s     shape ==>R3   R4   s     dtype ==> %ss"   Array b read from file. Shape: ==>s   . Type ==> %sR   i   R   R    R!   i   R   R"   N(   i   (   i   (   R   R>   R?   t	   __class__Rm   RG   RH   Rf   RL   R   t   _g_joinRI   t   create_groupRN   t   _reopenR   R`   t   getattrRJ   R   R9   t   _v_pathnameR:   R@   RR   RO   RU   (   RZ   R   R   Ri   R\   t   dsetnamet   dsetR   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test00_iterativeGroups   sT    	
	
$.$.$.$.c         C@ s  d } d } t  j rJ t d d d  t d |  j j  t d |  n  |  j j } t  j rr t d d	 d
 n  x t | | d  D]x } t j	 d | d  } t  j r t d | d	 d
 n  |  j j
 | d | d |  |  j j | d t |   } q W|  j j   |  j   |  j j } t  j rBt   t d  n  xt | | d  D]{} t j	 d | d  } | j j   } t  j rt d | d	 d
 n  | j   | j   k r0t  j r0| j } t d | j  t d | j d	 d
 t d | j  t d | j d	 d
 t d | j j  n  |  j | j | j  | j j d k r|  j | j j d k p| j j d k  n |  j | j j | j j  |  j | |  |  j j | d t |   } qVWt  j rt   n  d S(   s   Checking creation of large rank arrays (0 < rank <= 32)

        It also uses arrays ranks which ranges until maxrank.

        i   i    s   
s   -=i   s$   Running %s.test01_largeRankArrays...s   Maximum rank for tested arrays:s   Rank array writing progress: R3   R4   R   s   %3d,RM   s   Rank: %sR   s   Rank array reading progress: s   Info from dataset:s     Shape: ==>s     typecode ==> %cs"   Array b read from file. Shape: ==>s   . Type ==> %cR   N(   i   (   i   (   R   R>   R?   R   Rm   RG   RH   R   RL   R   RI   R   RN   t   flushR   RM   RJ   t   tolistR   R9   Ri   R:   R@   RR   RU   t   get_node(   RZ   t   minrankt   maxrankR   t   rankR\   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01_largeRankArrays:  sT    
			#
		"	.#	(   Rm   Rn   Ro   R   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR      s   	Rt   Recordc           B@ s  e  Z e d  d d d d d  Z e d  d d d d d  Z e d d  Z e d d  Z e	 d d  Z
 e d d  Z e d d  Z e d d  Z e d d  Z e d d  Z e d d  Z e d d  Z e d  d	 d d  Z e d  d d d  Z e e d  r e j d d  Z n  e e d  rDe j  d d  Z! n  e e d  rhe j" d d  Z# n  e e d  re j d  d d d  Z$ n  e e d  re j d  d d d  Z% n  RS(   RO   i   t   dfltt   abcdt   posi    i   R\   g      ?i   y                i   t
   Float16Colt
   Float96Colt   Float128Colt   Complex196Coli   t   Complex256Coli    y      ?        y      ?        y      ?        y      ?        (&   Rm   Rn   R   t   var1t   var2R   t   var3R   t   var4R   t   var5R	   t   var6R
   t   var7R   t   var8R   t   var9R   t   var10R   t   var11R   t   var12R   t   var13t   var14RK   RE   R   t   var15R   t   var16R   t   var17t   var18t   var19(    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR     s0   t   TableReadTestCasec           B@ sM   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   id   c         C@ sl   t  t |   j   |  j j |  j j d t  } x$ t |  j  D] } | j	 j
   qA W|  j d d  d  S(   Nt   tableR5   R\   (   t   superR   t   setUpRG   t   create_tableRH   R   R   t   nrowst   rowt   appendR   (   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR     s
    c         C@ sJ  |  j  j j } d | _ x+| j D] } | j d |  } | j | } | j j | j	 j
 } | j j } | d k r" | d k r t j d g |  j d d } n t j d g |  j d d	 } t j r&t d
 |  t d d  t d |  t d | j  t d | j  t d | d   n  |  j t | | d   q" q" Wd S(   sO   Checking column conversion into NumPy in read().

        Char flavor

        R=   t   fieldR<   i   R   R:   t   S4R\   R   s   Typecode of NumPy column read:s   Should look like:t   cs   Itemsize of column:s   Shape of NumPy column read:s   First 3 elements of read col:i   N(   RG   RH   R   t   flavort   colnamesRJ   t   coltypest   descriptiont	   _v_dtypesRS   RO   R:   R@   RL   RM   R   R   R>   R?   R9   RU   R   (   RZ   R   t   colnamet   numcolt   typecolt   itemsizecolt
   nctypecodet
   orignumcol(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01_readTableChar  s&    	"	c         C@ s   |  j  j j } d | _ x | j D] } | j d |  } | j | } t j | j	 j
 d } | d k r" t j r t d |  t d |  n  t j d |  j d | j	 j
  } |  j t | | d   q" q" Wd	 S(
   sP   Checking column conversion into NumPy in read().

        NumPy flavor

        R=   R   i    R<   s   Typecode of NumPy column read:s   Should look like:R9   R:   N(   RG   RH   R   R   R   RJ   R   RL   t
   sctypeDictR:   R@   R   R>   R?   R   R   RU   R   (   RZ   R   R   R   R   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01_readTableNum  s    		!c   	      C@ sk  |  j  j j } d | _ d d d g } t |  |  _ x.| j D]#} | j | d | } | j | } | j	 j
 | j j } | j j } | d k r@ | d k r t j d g |  j d d	 } n t j d
 g |  j d d } t j rGt d |  t d d  t d |  t d | j  t d | j  t d | d   n  |  j t | | d   q@ q@ Wd S(   sF   Column conversion into NumPy in readCoords().

        Chars

        R=   i   i   i   R   R<   R   R:   R   R\   R   s   Typecode of NumPy column read:s   Should look like:R   s   Itemsize of column:s   Shape of NumPy column read:s   First 3 elements of read col:N(   RG   RH   R   R   R`   R   R   t   read_coordinatesR   R   R   RS   RO   R:   R@   RL   RM   R   R>   R?   R9   RU   R   (	   RZ   R   t   coordsR   R   R   R   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test02_readCoordsChar  s*    	"	c         C@ s   |  j  j j } d | _ d d d g } t |  |  _ x | j D] } | j | d | } | j | } | j	 j
 } | d k r@ | d k r d St j r t d	 |  t d
 |  n  t j d |  j d | j	 j  } |  j t | | d   q@ q@ Wd S(   sM   Column conversion into NumPy in read_coordinates().

        NumPy.

        R=   i   i   i   R   R<   t   int64Ns   Type of read NumPy column:s   Should look like:R9   R:   (   RG   RH   R   R   R`   R   R   R   R   R:   RQ   R   R>   R?   RL   R   R@   RU   R   (   RZ   R   R   R   R   R   R]   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test02_readCoordsNum  s     		!c   	      C@ s  |  j  j j } t j d d d g d d } x | j D] } g  | D] } | | | ^ qD } | j | } | d k r7 | d k r d St j | |  } t j r | j	 j
 } t d	 |  t d
 |  n  t j d t |  d | j	 j  } |  j t | | d   q7 q7 Wd S(   s7   Getting table rows specifyied as NumPy scalar integers.i   i   i   R:   t   int8R<   R   Ns   Type of read NumPy column:s   Should look like:R9   R=   (   RG   RH   R   RL   RM   R   R   R   R>   R:   RQ   R?   R   R`   R@   RU   R   (	   RZ   R   R   R   t   coordR   R   R]   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test03_getIndexNumPy  s     !	c         C@ s'  |  j  d d  |  j j j } d | _ t j d d d g d d } t t j	  d } t
 d	 d
 g d g |  | | d <| j | d | d d  } t j r t d  t d |  n  |  j | d d	  |  j | d d
  |  j | d t  |  j | d d  |  j | d d  d S(   s0   Setting table rows specifyied as NumPy integers.R5   R\   R=   i   i   i   R:   R   t   aasat   xi   i    s{   Original row:
['aasa', 'x', True, -24, 232, 232, 232, 232, 232L, 232, 232.0, 232.0, (232 + 0j), (232+0j), 232.0, (232+0j)]
s
   Read row:
R   R   R   R   iR   N(   R   RG   RH   R   R   RL   RM   R`   R   t   columnst   tupleRJ   R   R>   R?   RR   t   True(   RZ   R   R   t   nt   record(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test04_setIndexNumPy+  s    	%	
(
   Rm   Rn   R   R   R   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR     s   	
					t   Infoc           B@ s,   e  Z d  Z e d d  Z e d d  Z RS(   i   RO   i   i   (   Rm   Rn   t   _v_posR   t   NameR   t   Value(    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   J  s   t
   TestTDescrc           B@ s   e  Z d  Z e d d d d d d  Z e d d d d  Z e d d  Z e	 i d d 6d d	 6d d
 6d d d d Z
 e d d d d d d  Z e   Z d e j f d     YZ RS(   s.   A description that has several nested columns.R   i    R9   i   R   i   i   R8   R*   R   t   int32RO   t   abR   c           B@ sc   e  Z d  Z e d d  Z e d d d d  Z e d d   Z e	   Z
 d e j f d     YZ RS(   i   RO   i   i   R   i    t   Info2c           B@ s;   e  Z e d  d  Z e d d  Z e d d d  d  Z RS(   R9   i   RO   i   (   Rm   Rn   R   t   y3R   RT   R   t   value(    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   b  s   (   Rm   Rn   R   R   RT   R   R   R   t   y2R   t   z2RE   t   IsDescriptionR   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   [  s   	(   i   i   (   Rm   Rn   Ro   R   R   R   t   yR   t   zR   t   z3R   t   colorR   t   infoRE   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   P  s   -	t   TableNativeFlavorTestCasec           B@ s   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   id   c         C@ sx   t  t |   j   |  j j |  j j d t d |  j } d | _ x$ t	 |  j  D] } | j
 j   qS W| j   d  S(   NR   t   expectedrowsR=   (   R   R   R   RG   R   RH   R   R   R   R   R   R   R   (   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   k  s    	c         C@ s  |  j  r |  j d d  n  |  j j j } | } t j ru t d t |   t d | j	 j
  t d | d   n  |  j t | t j   | j j d  } |  j t | t j   t j d d d	 } |  j t | | d
   | j j d  } |  j t | t j   d d d d d d d f d d d f g f d d g } t j d  d | } |  j | j	 j
 | j	 j
  t j rt d |  t d |  n  |  j t | j   j  t | j   d S(!   s)   Checking the return of a NumPy in read().R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:i   i   R:   R   R=   R   t   c16R   t   f8R   RT   t   S2R   R   t   u1s   col-->s   npcol-->N(   i   i   (   R   R   (   R   R   (   RT   R   (   i   (   i   (   RT   R   (   R   R   (   i   (   t   closeR   RG   RH   R   R   R>   R?   RQ   R:   t   descrRU   t
   isinstanceRL   t   ndarrayt   colsR   t   zerosR   R   RR   t   bytest   copyt   data(   RZ   R   R   t   colt   npcolR:   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01a_basicTableReadv  s:    				c         C@ s  |  j  r |  j d d  n  |  j j j } | d d d  } t j r t d t |   t d | j	 j
  t d | d   n  |  j t | t j   | j j d d d  } |  j t | t j   t j d d
 d } |  j t | | d   | j j d d d  } |  j t | t j   d d t f d d t f d d d d t d f d d t d f g f d d g } t j d d
 | } |  j | j	 j
 | j	 j
  t j rt d |  t d |  n  |  j t | j   j  t | j   d S(    s;   Checking the return of a NumPy in read() (strided version).R5   R\   Ni   s   Type of read:s   Description of the record:s   First 3 elements of read:i	   i   R:   R   R=   R   s   %sc16R   s   %sf8R   RT   s   |S2R   R   s   |u1s   col-->s   npcol-->(   i   i   (   RT   s   |S2(   i   (   i   (   RT   s   |S2(   R   s   |u1(   i   (   R   R   RG   RH   R   R   R>   R?   RQ   R:   R   RU   R   RL   R   R   R   R   R   R   t	   byteorderRR   R   R   R   (   RZ   R   R   R   R   R:   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01b_basicTableRead  s:    				c         C@ s   |  j  r |  j d d  n  |  j j j } | j d  } t j r} t d t	 |   t d | j
 j  t d | d   n  |  j t | t j   |  j t |  d  |  j t | t j d d	 d
 d   d S(   s6   Checking the return of NumPy in get_where_list method.R5   R\   s   z == 1s   Type of read:s   Description of the record:s   First 3 elements of read:i   id   R:   t   i8R=   N(   R   R   RG   RH   R   t   get_where_listR   R>   R?   RQ   R:   R   RU   R   RL   R   RR   R`   R   t   arange(   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test02_getWhereList  s    		c         C@ s   |  j  j j } | j j j   |  j rJ |  j d d  |  j  j j } n  | j d  } t	 j
 r t d t |   t d t |   n  |  j t | t j   |  j t |  |  j  d S(   s<   Checking the return of NumPy in read_where method (strings).R5   R\   s   color == b"ab"s   Type of read:s   Length of the data read:N(   RG   RH   R   R   R   t   create_indexR   R   t
   read_whereR   R>   R?   RQ   R`   RU   R   RL   R   RR   R   (   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test03a_readWhere  s    		c         C@ s   |  j  j j } | j j j   |  j rJ |  j d d  |  j  j j } n  | j d  } t	 j
 r t d t |   t d t |   n  |  j t | t j   |  j t |  d  d S(   s<   Checking the return of NumPy in read_where method (numeric).R5   R\   s   z == 0s   Type of read:s   Length of the data read:i    N(   RG   RH   R   R   R   R  R   R   R  R   R>   R?   RQ   R`   RU   R   RL   R   RR   (   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test03b_readWhere  s    		c         C@ s  d d t  f d d t  f d d d d t  d f d	 d t  d f g f d d g } t j d d | } |  j j |  j j d |  } |  j r |  j d d  |  j j j } n  | } t	 j
 rt d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t	 j
 rht d |  t d |  n  |  j t | j   j  t | j   d S(   s2   Checking the Table creation from a numpy recarray.R   s   %sc16R   s   %sf8R   RT   s   |S2i   R   R   s   |u1i   R:   t   table2R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s	   npdata-->s   data-->N(   RT   s   |S2(   i   (   i   (   RT   s   |S2(   R   s   |u1(   i   (   R   RL   R   RG   R   RH   R   R   R	  R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   R   R   (   RZ   R:   t   npdataR   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test04a_createTable  s2    				c         C@ s;  |  j  j j } | d d !} | j |  |  j rT |  j d d  |  j  j j } n  | d } t j r t d t	 |   t d | j
 j  t d | d  t d	 t |   n  |  j t | t j   |  j | j
 j | j
 j  t j rt d
 |  t d |  n  |  j t | j   j  t | j   d S(   s$   Checking appending a numpy recarray.i   i   R5   R\   is   Type of read:s   Description of the record:s   Last 3 elements of read:s   Length of the data read:s	   npdata-->s   data-->N(   RG   RH   R   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   RL   R   RR   R   R   R   (   RZ   R   R
  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test04b_appendTable(  s$    	
		c         C@ s  |  j  j j } t j d d d | j j (|  j rV |  j d d  |  j  j j } n  | j j } t	 j
 r t d t |   t d | j j  t d | d	   t d
 t |   n  |  j t | t j   |  j t |  d  |  j t | t j d d d d   d S(   s   Checking assigning to a column.id   R:   R   R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:i   s   Length of the data read:R=   N(   id   (   id   (   RG   RH   R   RL   R   R   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   (   RZ   R   R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test05a_assignColumnD  s    		c         C@ s  |  j  j j } t j d d  } t j d d  } t j d d  } | j d d d | | | g d d	 d
 g  |  j r |  j d d  |  j  j j } n  | j	 j
 d d !} t j rt d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t j r_t d |  t d |  n  |  j | j   j | j  d S(   s+   Checking modifying several columns at once.i   i   R   t   float64t   uint8i   i   R   R   R   R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->N(   i   i   (   i   i   i   (   i   (   RG   RH   R   RL   R   R   t   modify_columnsR   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   R   (   RZ   R   t   xcolt   ycolt   zcolR   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test05b_modifyingColumns\  s(    +			c         C@ s  |  j  j j } d d d f d d d f d g } t j d d	 | } | j d d
 d | d d d g  |  j r |  j d d  |  j  j j } n  t j d d  } | j j	 d d
 !} t
 j rt d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t
 j rht d |  t d |  n  |  j | j   j | j  d S(   s?   Checking modifying several columns using a single numpy buffer.R   t   i4i   R   R   R   R   i   R:   i   i   R5   R\   R  s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->N(   i   (   i   i   (   R   R   (   i   (   i   i   i   (   RG   RH   R   RL   R   R  R   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   R   (   RZ   R   R:   t   nparrayR  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test05c_modifyingColumnsz  s(    !"			c         C@ s  |  j  j j } d d t f d d t f d d d d t d f d	 d t d f g f d d  g } t j d! d | } | j j d d !} | j d d d d | d d |  j	 r |  j
 d d  |  j  j j } n  | j j d d !} t j r<t d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t j rt d |  t d |  n  |  j t | j   j  t | j   d S("   s9   Checking assigning a nested column (using modify_column).R   s   %sc16R   s   %sf8R   RT   s   |S2i   R   R   s   |u1i   R:   i   i   t   columnR   R   R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s	   npdata-->s   data-->N(   RT   s   |S2(   i   (   i   (   RT   s   |S2(   R   s   |u1(   i   (   RG   RH   R   R   RL   R   R   R   t   modify_columnR   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   R   R   (   RZ   R   R:   R
  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test06a_assignNestedColumn  s6    				c         C@ s  |  j  j j } d d t f d d t f d d d d t d f d	 d t d f g f d d g } t j d d | } | | j j d d +|  j r |  j	 d d  |  j  j j } n  | j j d d !} t
 j rt d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t
 j rxt d |  t d |  n  |  j t | j   j  t | j   d S(   s>   Checking assigning a nested column (using the .cols accessor).R   s   %sc16R   s   %sf8R   RT   s   |S2i   R   R   s   |u1i   R:   i   R5   R\   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s	   npdata-->s   data-->N(   RT   s   |S2(   i   (   i   (   RT   s   |S2(   R   s   |u1(   i   (   RG   RH   R   R   RL   R   R   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   R   R   (   RZ   R   R:   R
  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test06b_assignNestedColumn  s4    				c         C@ sb  |  j  j j } | d d !} d | d (| j d d d d | |  j rk |  j d d	  |  j  j j } n  t j d d  d } | j j	 d d !} t
 j r t d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t
 j rEt d |  t d |  n  |  j t | | d   d S(   s<   Checking modifying several rows at once (using modify_rows).i    i   iR   i   i   t   rowsR5   R\   i   R  s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->R=   N(   i   i   i   (   RG   RH   R   t   modify_rowsR   R   RL   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   (   RZ   R   t   chunkR  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test07a_modifyingRows  s(    			c         C@ sY  |  j  j j } | d d !} d | d (| | j d d +|  j rb |  j d d  |  j  j j } n  t j d d	  d
 } | j j d d !} t	 j
 r t d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t	 j
 r<t d |  t d |  n  |  j t | | d   d S(   s>   Checking modifying several rows at once (using cols accessor).i    i   iR   i   R5   R\   i   R  i   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->R=   N(   i   i   i   (   RG   RH   R   R   R   R   RL   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   (   RZ   R   R  R  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test07b_modifyingRows  s(    			c         C@ s\  |  j  j j } | d d !} d | d (| j d d d |  |  j rh |  j d d	  |  j  j j } n  t j d d  d } | j j	 d } t
 j r t d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t
 j r?t d |  t d |  n  |  j t | | d   d S(   s<   Checking modifying just one row at once (using modify_rows).i   i   iR   i   i   i   R5   R\   i   R  s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->R=   N(   i   i   (   RG   RH   R   R  R   R   RL   R   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   (   RZ   R   R  R  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test08a_modifyingRows%  s(    			c         C@ sS  |  j  j j } | d d !} d | d (| | j d <|  j r_ |  j d d  |  j  j j } n  t j d d	  d
 } | j j d } t	 j
 r t d t |   t d | j j  t d | d   t d t |   n  |  j t | t j   |  j | j j | j j  t	 j
 r6t d |  t d |  n  |  j t | | d   d S(   s>   Checking modifying just one row at once (using cols accessor).i   i   iR   i   R5   R\   i   R  i   s   Type of read:s   Description of the record:s   First 3 elements of read:s   Length of the data read:s   ycol-->s   data-->R=   N(   i   i   (   RG   RH   R   R   R   R   RL   R   R   R   R>   R?   RQ   R:   R   R`   RU   R   R   RR   R   (   RZ   R   R  R  R   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test08b_modifyingRowsG  s(    			c         C@ s   |  j  r |  j d d  n  |  j j j } | j d  } | j |  } t j r t	 d t
 |   t	 d | j j  t	 d | d   n  |  j t | t j   |  j t |  d  x1 | d	 D]% } |  j | t j d
 d d  q Wd S(   s2   Checking the return of string columns with spaces.R5   R\   s   color == b"ab"s   Type of read:s   Description of the record:s   First 3 elements of read:i   id   R   R   R:   s   |S4N(   R   R   RG   RH   R   R  R   R   R>   R?   RQ   R:   R   RU   R   RL   R   RR   R`   RM   (   RZ   R   t   rdataR   t   idata(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test09a_getStringsi  s    		c         C@ sK  |  j  r |  j d d  n  |  j j j } x$ t d  D] } d | j j | <q8 W| j   | } t	 j
 r t d t |   t d | j j  t d | d   n  |  j t | t j   |  j t |  d	  xo t d	  D]a } | d
 | } | d k r$|  j | t j d d d  q |  j | t j d d d  q Wd S(   sN   Checking the return of string columns with spaces.

        (modify)

        R5   R\   i2   s   a  s   Type of read:s   Description of the record:s   First 3 elements of read:i   id   R   R   R:   s   |S4N(   R   R   RG   RH   R   R   R   R   R   R   R>   R?   RQ   R:   R   RU   R   RL   R   RR   R`   RM   (   RZ   R   R   R   R$  (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test09b_getStrings  s$    	
	"c         C@ s  |  j  r |  j d d  n  |  j j j } | j } x( t d  D] } d | d <| j   qA W| j   |  j  r |  j j    t	 j
 |  j d  |  _ n  |  j j j } t j r t d t |   t d | j j  t d | d	   n  |  j t | t j   |  j t |  d
  xo t d
  D]a } | d | } | d k  rk|  j | t j d d d  q)|  j | t j d d d  q)Wd S(   sN   Checking the return of string columns with spaces.

        (append)

        R5   R\   i2   s   a  R   s   Type of read:s   Description of the record:s   First 3 elements of read:i   i   id   R   R:   s   |S4N(   R   R   RG   RH   R   R   R   R   R   RE   RF   RD   R   R>   R?   RQ   R:   R   RU   R   RL   R   RR   R`   RM   (   RZ   R   R   R   R   R$  (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test09c_getStrings  s.    		

		"(   Rm   Rn   R   R   R   R   R  R  R  R  R  R  R  R  R  R  R  R   R!  R"  R%  R&  R'  (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR   h  s*   		*	*				#					%	&	 	"	"	"		!t   TableNativeFlavorOpenTestCasec           B@ s   e  Z e Z RS(    (   Rm   Rn   Rd   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR(    s   t   TableNativeFlavorCloseTestCasec           B@ s   e  Z e Z RS(    (   Rm   Rn   R   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR)    s   t   AttributesTestCasec           B@ s#   e  Z d    Z d   Z d   Z RS(   c         C@ s0   t  t |   j   |  j j |  j j d  d  S(   NR   (   R   R*  R   RG   R   RH   (   RZ   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR     s    c         C@ s   |  j  j j } | j } t j d
 d d | _ |  j rd |  j d d  |  j  j j } | j } n  | j } t j d d d } |  j	 t
 | t j   |  j | j j | j j  t j r t d |  t d |  n  |  j	 t | | d   d	 S(   s+   Checking the creation of a numpy attribute.i   R:   t   int16R5   R\   s	   npcomp-->s   data-->R=   N(   i   i   (   i   i   (   RG   RH   R   t   _v_attrsRL   R   t   numpy1R   R   RU   R   R   RR   R:   R   R   R>   R?   R   (   RZ   R   t   g_attrsR   t   npcomp(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01_writeAttribute  s    				c         C@ s  |  j  j j } | j } t j d d d | _ |  j rd |  j d d  |  j  j j } | j } n  t j	 d d d | _ | j } t j	 d d d } |  j
 t | t j   |  j | j j | j j  t j r t d |  t d |  n  |  j
 t | | d	   d
 S(   s/   Checking the modification of a numpy attribute.i   i   R:   R+  R5   R\   s	   npcomp-->s   data-->R=   N(   i   i   (   i   i   (   i   i   (   RG   RH   R   R,  RL   R   R-  R   R   R   RU   R   R   RR   R:   R   R   R>   R?   R   (   RZ   R   R.  R   R/  (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test02_updateAttribute  s     				(   Rm   Rn   R   R0  R1  (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR*    s   		t   AttributesOpenTestCasec           B@ s   e  Z d  Z RS(   i    (   Rm   Rn   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR2    s   t   AttributesCloseTestCasec           B@ s   e  Z d  Z RS(   i   (   Rm   Rn   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR3    s   t   StrlenTestCasec           B@ s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@ s   t  t |   j   |  j j |  j j d  } i t d d  d 6} |  j j | d |  |  _ d |  j _	 |  j j
 } d | d <| j   d | d <| j   |  j j   d  S(	   NR   RO   i  t   TextR   R=   s   Hello Francesc!s   Hola Francesc!(   R   R4  R   RG   R   RH   R   R   R   R   R   R   R   (   RZ   R   t   tablelayoutR   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR     s    



c         C@ s   |  j  r1 |  j d d  |  j j j j |  _ n  |  j j d  d } |  j j d  d } t j r t	 d |  t	 d |  n  |  j
 t |  t d   |  j
 t |  t d	   |  j
 | d  |  j
 | d	  d
 S(   s-   Checking the lengths of strings (read field).R5   R\   R5  i    i   s
   string1-->s
   string2-->s   Hello Francesc!s   Hola Francesc!N(   R   R   RG   RH   R   R   R   R   R>   R?   RR   R`   (   RZ   t   str1t   str2(    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test01%  s    		c         C@ s   |  j  r1 |  j d d  |  j j j j |  _ n  |  j d d } |  j d d } |  j t |  t d   |  j t |  t d   |  j | d  |  j | d  d S(	   s0   Checking the lengths of strings (read recarray).R5   R\   R5  i    i   s   Hello Francesc!s   Hola Francesc!N(   R   R   RG   RH   R   R   RR   R`   (   RZ   R7  R8  (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test029  s    	c         C@ s   |  j  r1 |  j d d  |  j j j j |  _ n  |  j d d } |  j d d } |  j t |  t d   |  j t |  t d   |  j | d  |  j | d  d S(	   s<   Checking the lengths of strings (read recarray, row by row).R5   R\   i    R5  i   s   Hello Francesc!s   Hola Francesc!N(   R   R   RG   RH   R   R   RR   R`   (   RZ   R7  R8  (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   test03J  s    	(   Rm   Rn   R   R9  R:  R;  (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR4    s   			t   StrlenOpenTestCasec           B@ s   e  Z d  Z RS(   i    (   Rm   Rn   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR<  \  s   t   StrlenCloseTestCasec           B@ s   e  Z d  Z RS(   i   (   Rm   Rn   R   (    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyR=  `  s   c          C@ s  t  j   }  d } xj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   t j r |  j t  j t   q q W|  S(   Ni   (   R   t	   TestSuiteR   t   addTestt	   makeSuiteRq   Rs   Ru   Rv   Rx   R{   R   R   R(  R)  R2  R3  R<  R=  R   t   heavyR   (   t   theSuitet   niterR   (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   suited  s(    	t   __main__t   defaultTestRD  (D   t
   __future__R    R   RV   t   sysRB   R=   RL   RE   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   t   tables.testsR   t   tables.tests.commonR   R   R   t   TestCaset	   six.movesR   Rf   t   platformRK   R   R   R2   Rq   Rs   Ru   Rv   Rx   R{   R   t   TempFileMixinR   R   R   R   R   R   R   R(  R)  R*  R2  R3  R4  R<  R=  RD  Rm   t
   parse_argvt   argvt   print_versionst   main(    (    (    s6   lib/python2.7/site-packages/tables/tests/test_numpy.pyt   <module>   sj   d"w  b=G	
