
    ꢩem                    
   d dl Z d dlZd dlmZ  G d dej        ej                  Z G d de          Z G d dej        ej                  Z	 G d	 d
ej        ej                  Z
dZd Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Z G d dej        ej                  Zd Zedk    rEd dlZ ej        ej                    ej                     ej                            d            dS dS )!    N)commonc                        e Zd ZdZdZ	 d Z fdZd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )BasicTestCasez$Test for basic Undo/Redo operations.Fc                 B    | j         r|                     d           d S d S )Nzr+)_reopen_flag_reopenselfs    9lib/python3.11/site-packages/tables/tests/test_do_undo.py
_do_reopenzBasicTestCase._do_reopen   s/     	LL	 	    c                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           d S Narray      Title exampletitleanarrayArray titleagroupGroup titleanarray1Array title 1anarray2Array title 2agroup2Group title 2agroup3Group title 3supersetUph5filerootcreate_arraycreate_groupr
   r%   r&   group	__class__s       r   r$   zBasicTestCase.setUp       { 	D'Aq6III 	D)aS-@@@ ##D(MBB 	E:sODDDE:sODDD 	D)_=== 	E9o>>>>>r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | 	                    d	| j                   | 
                    | j        j        d
           | 
                    | j        j        d
           |                                  | j                                         t           j        rt          d| j                   |                     d	| j                   | 
                    | j        j        j                                        ddg           | 
                    | j        j        j        j        d           | 
                    | j        j        d           | 
                    | j        j        d
           dS )zChecking simple do/undo.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=zRunning %s.test00_simple.../
otherarray      Another array/otherarrayr   zObject tree after redo:r   N)r   verboseprintr+   __name__r%   enable_undor'   undoassertNotInassertEqual
_curaction_curmarkr   redoassertInr&   r1   readr   r	   s    r   test00_simplezBasicTestCase.test00_simple*   s    > 	K$	"""/$.2IIJJJ 	!!! 	  lQFOLLL 	 	444/333-q111 	> 	:+T[999 	mT[111)499;;aVDDD)4:OLLL/333-q11111r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            dd	dd
gd           |                                  | j        	                                 | 
                    d| j                   | 
                    d| j                   |                     | j        j        d           |                     | j        j        d           | j                                         |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        d           |                     | j        j        d           dS )z/Checking do/undo (twice operations intertwined)r.   r/   zRunning %s.test01_twice...r0   r1   r2   r3   r4   otherarray2   Another array 2r5   /otherarray2r   r   N)r   r6   r7   r+   r8   r%   r9   r'   r   r:   r;   r<   r=   r>   r?   r@   r&   r1   rA   rD   r   r	   s    r   test01_twicezBasicTestCase.test01_twiceL   s<    > 	J$	""".1HHIII 	!!! 	  lQFOLLL  maV=NOOO 	444555/333-q111 	 	mT[111ndk222)499;;aVDDD)5::<<q!fEEE)4:OLLL)5;=NOOO/333-q11111r   c                 *   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           |                                  | j        	                                 | j                            dd	dd
gd           | 
                    | j        j        d           | 
                    | j        j        d           | j                                         |                     d| j                   |                     d| j                   | 
                    | j        j        d           | 
                    | j        j        d           | j                                         | 
                    | j        j        d           | 
                    | j        j        d           |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     d| j                   |                                  | 
                    | j        j        d           | 
                    | j        j        d           | j                                         |                     d| j                   |                     d| j                   | 
                    | j        j        j                                        ddg           | 
                    | j        j        j                                        dd
g           | 
                    | j        j        j        j        d           | 
                    | j        j        j        j        d           | 
                    | j        j        d           | 
                    | j        j        d           dS )z!Checking twice ops and two marks.r.   r/   zRunning %s.test02_twice2...r0   r1   r2   r3   r4   rD   rE   rF   r   r5   rG   r   r   N)r   r6   r7   r+   r8   r%   r9   r'   r   markr<   r=   r>   r:   r@   r;   r?   r&   r1   rA   rD   r   r	   s    r   test02_twice2zBasicTestCase.test02_twice2o   s    > 	K$	"""/$.2IIJJJ 	!!! 	  lQFOLLL 	  maV=NOOO/333-q111 	mT[111555/333-q111 	/333-q111444555 	mT[111555/333-q111 	mT[111ndk222)499;;aVDDD)5::<<q!fEEE)4:OLLL)5;=NOOO/333-q11111r   c                 8   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            dd	dd
gd           | j                                         | j                            ddd
dgd           | j                            ddddgd           | 	                                 | j                                         | j                            ddddgd           | j                            ddddgd           | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 	                                 | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j                                        d
dg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS )z&Checking with six ops and three marks.r.   r/   z!Running %s.test03_6times3marks...r0   otherarray1r2   r3   Another array 1rD   rE   rF   otherarray3   Another array 3otherarray4   Another array 4otherarray5   Another array 5otherarray6	   Another array 6/otherarray1rG   /otherarray3/otherarray4/otherarray5/otherarray6N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   r@   r;   r?   r<   r&   rM   rA   rD   rO   rR   rU   rX   r   r	   s    r   test03_6times3marksz!BasicTestCase.test03_6times3marks   s    > 	+$	"""5.)* + + + 	!!! 	  maV=NOOO  maV=NOOO 	  maV=NOOO  maV=NOOO 	  maV=NOOO  maV=NOOO 	ndk222ndk222ndk222ndk222555555 	ndk222ndk222555555555555 	555555555555555555 	ndk222ndk222555555555555 	ndk222ndk222ndk222ndk222555555 	ndk222ndk222ndk222ndk222ndk222ndk222)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5;=NOOO)5;=NOOO)5;=NOOO)5;=NOOO)5;=NOOO)5;=NOOOOOr   c                 &   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            dd	dd
gd           | j                                         | 	                                 | j                            ddd
dgd           | j                            ddddgd           | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   t           j        r't          d| j                                                   | j                                         | 	                                 | j                            ddddgd           | j                            ddddgd           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 	                                 | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS ) zNChecking with six operations, three marks and do/undo in random
        order.r.   r/   z#Running %s.test04_6times3marksro...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   rR   rS   rT   r[   rG   r\   r]   z
All nodes:rU   rV   rW   rX   rY   rZ   r^   r_   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   r@   r;   
walk_nodesr?   r<   r&   rM   rA   rD   rU   rX   r   r	   s    r   test04_6times3marksroz#BasicTestCase.test04_6times3marksro  s    > 	+$	"""7.)* + + + 	!!! 	  maV=NOOO  maV=NOOO 	  maV=NOOO  maV=NOOO 	ndk222ndk222555555 > 	:, 6 6 8 8999  maV=NOOO  maV=NOOOndk222ndk222555555ndk222ndk222 	ndk222ndk222555555555555 	ndk222ndk222555555ndk222ndk222 	ndk222ndk222555555ndk222ndk222)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5;=NOOO)5;=NOOO)5;=NOOO)5;=NOOOOOr   c                 D   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | 	                                 | j                            dd	dd
gd           | j        
                                 | 	                                 | j                            ddd
dgd           |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j        j        d           |                     d| j                   |                     d| j                   |                     | j        j        j                                        d
dg           |                     | j        j        j        j        d           dS )z/Checking with a destructive action during undo.r.   r/   z Running %s.test05_destructive...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   r@   r<   r&   rM   rA   r   r;   rO   r	   s    r   test05_destructivez BasicTestCase.test05_destructiveP  s    > 	P$	"""4t~7NNOOO 	!!! 	  maV=NOOO 	  maV=NOOO 	 	  maV=NOOO 	ndk222)5::<<q!fEEE)5;=NOOO555ndk222)5::<<q!fEEE)5;=NOOOOOr   c                 R   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           |                                  | j        	                                 | j                            dd	dd
gd           | j        
                                 | j                            ddd
dgd           |                                  | j        	                                 | j                            ddddgd           |                     d| j                   | j        
                                 |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j        j        d           |                     d| j                   |                     d| j                   |                     | j        j        j                                        d
dg           |                     | j        j        j        j        d           |                     d| j                   dS )z3Checking with a destructive action during undo (II)r.   r/   z!Running %s.test05b_destructive...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   rR   rS   rT   r]   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   r   rJ   r:   r@   r<   r&   rM   rA   r   r;   rO   r	   s    r   test05b_destructivez!BasicTestCase.test05b_destructiver  sp    > 	+$	"""5.)* + + + 	!!! 	  maV=NOOO 	  maV=NOOO 	 	  maV=NOOO 	  maV=NOOOndk222 	 	ndk222)5::<<q!fEEE)5;=NOOO555ndk222)5::<<q!fEEE)5;=NOOO55555r   c                     t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | 	                                 | j                            dd	dd
gd           | j        
                                 | j                            ddd
dgd           | j                                         | 	                                 | j                            ddddgd           |                     d| j                   | j        
                                 | 	                                 | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   dS )z4Checking with a destructive action during undo (III)r.   r/   z!Running %s.test05c_destructive...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   rR   rS   rT   r]   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   r@   r;   r	   s    r   test05c_destructivez!BasicTestCase.test05c_destructive  s    > 	+$	"""5.)* + + + 	!!! 	  maV=NOOO 	  maV=NOOO 	 	  maV=NOOO 	  maV=NOOOndk222 	 	ndk22255555555555r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           |                                  | j        	                                 | j                            dd	dd
gd           | j        
                                 | j                            ddd
dgd           | j        	                                 | j                            ddddgd           |                     d| j                   |                                  | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   dS )z3Checking with a destructive action during undo (IV)r.   r/   z!Running %s.test05d_destructive...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   rR   rS   rT   r]   r   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   r   rJ   r:   r@   r;   r	   s    r   test05d_destructivez!BasicTestCase.test05d_destructive  s    > 	+$	"""5.)* + + + 	!!! 	  maV=NOOO 	  maV=NOOO 	 	  maV=NOOO 	  maV=NOOOndk222 	 	55555555555555r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | j                            dd	dd
gd           | j        	                                 | 
                                 | j                            ddd
dgd           | j        	                    d           | 
                                 |                     d| j                   |                     d| j                   |                     d| j                   dS )z2Checking with a destructive action during undo (V)r.   r/   z!Running %s.test05e_destructive...r0   rM   r2   r3   rN   rD   rE   rF   rO   rP   rQ   r   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r:   r   r;   r	   s    r   test05e_destructivez!BasicTestCase.test05e_destructive  sq    > 	+$	"""5.)* + + + 	!!! 	  maV=NOOO 	  maV=NOOO 	 	  maV=NOOO 	 	55555555555r   c                     t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dddg           | j                                         | 	                                 | 
                    d| j                   | j                            dddg          }| j                                         | 
                    d| j                   | 	                                 | j                                         |                     d| j                   | j        s'|                     | j        j        j        |           dS dS )	zAChecking with a destructive creation of existing node during undor.   r/   z!Running %s.test05f_destructive...r0   newarrayr   z	/newarrayN)r   r6   r7   r+   r8   r%   r9   r'   r:   r   r;   r?   r@   r   assertIsr&   ro   )r
   newarrs     r   test05f_destructivez!BasicTestCase.test05f_destructive  sf    > 	+$	"""5.)* + + + 	!!!  j1#666dk222))#zA3??dk222k4;///  	=MM$+*3V<<<<<	= 	=r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | j                            dd	dd
gd           | 	                                 | j        
                    d           |                     d| j                   |                     d| j                   dS )zChecking do/undo (total unwind)r.   r/   z Running %s.test06_totalunwind...r0   r1   r2   r3   r4   rD   rE   rF   r   r5   rG   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   r;   r	   s    r   test06_totalunwindz BasicTestCase.test06_totalunwind(  s    > 	P$	"""4t~7NNOOO 	!!! 	  lQFOLLL  maV=NOOO 	44455555r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | j                            dd	dd
gd           | j        	                    d           | 
                                 | j                            d           |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS )zChecking do/undo (total rewind)r.   r/   z Running %s.test07_totalunwind...r0   r1   r2   r3   r4   rD   rE   rF   r   r5   rG   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r:   r   r?   r@   r<   r&   r1   rA   rD   r   r	   s    r   test07_totalrewindz BasicTestCase.test07_totalrewind=  s    > 	P$	"""4t~7NNOOO 	!!! 	  lQFOLLL  maV=NOOO 	 	 	mT[111ndk222)499;;aVDDD)5::<<q!fEEE)4:OLLL)5;=NOOOOOr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            d	           | j                            dd
ddgd           | j                            d           | j                            ddddgd           | j                            d           | j                            ddddgd           | j        	                    d	           | 
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                            d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        	                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 
                                 | j                            d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           dS )zChecking mark names.r.   r/   zRunning %s.test08_marknames...r0   rM   r2   r3   rN   firstrD   rE   rF   secondrO   rP   rQ   thirdrR   rS   rT   r[   rG   r\   r]   rv   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r:   r   r@   r;   r?   r<   r&   rM   rA   rD   rO   rR   r	   s    r   test08_marknameszBasicTestCase.test08_marknames[  s    > 	N$	"""2T^5LLMMM 	!!! 	  maV=NOOO!!!  maV=NOOO"""  maV=NOOO!!!  maV=NOOO 	!!!ndk222555555555 	!!!ndk222ndk222ndk222555 	"""ndk222ndk222555555 	ndk222ndk222ndk222ndk222 	)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEEEEr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                                        }| j                            ddddgd           | j        	                                 | 
                                 | j                            dd	dd
gd           | j                            |           |                     d| j                   |                     d| j                   | j                            d           | 
                                 |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS )zChecking initial mark.r.   r/   z Running %s.test08_initialmark...r0   r1   r2   r3   r4   rD   rE   rF   r5   rG   rv   N)r   r6   r7   r+   r8   r%   r9   get_current_markr'   rJ   r   r:   r;   r?   r@   r<   r&   r1   rA   rD   r   )r
   initmids     r   test08_initialmarkz BasicTestCase.test08_initialmark  s    > 	P$	"""4t~7NNOOO 	!!!+..00 	  lQFOLLL  maV=NOOO 	!!!444555 	 	mT[111ndk222)499;;aVDDD)5::<<q!fEEE)4:OLLL)5;=NOOOOOr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            d	           | j                            dd
ddgd           | j                            d           | 	                                 | j                            ddddgd           | j                            d           | j                            ddddgd           | j        
                    d	           |                     t          j                  5  | j        
                    d           ddd           n# 1 swxY w Y   | j                            d           | 	                                 |                     t          j                  5  | j                            d           ddd           n# 1 swxY w Y   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   dS )z%Checking mark names (wrong direction)r.   r/   zRunning %s.test09_marknames...r0   rM   r2   r3   rN   ry   rD   rE   rF   rz   rO   rP   rQ   r{   rR   rS   rT   Nr[   rG   r\   r]   )r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r:   assertRaisestbUndoRedoErrorr?   r@   r;   r	   s    r   test09_marknameszBasicTestCase.test09_marknames  s    > 	N$	"""2T^5LLMMM 	!!! 	  maV=NOOO!!!  maV=NOOO"""  maV=NOOO!!!  maV=NOOO 	!!! r/00 	& 	&KW%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	!!! r/00 	' 	'KX&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	ndk222ndk222ndk22255555s$   )FFF(HHHc                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           |                                  | j        	                    d	           | j                            dd
ddgd           | j        	                    d           | j                            ddddgd           |                                  | j        	                    d           | j                            ddddgd           | j        
                    d	           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                                  | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           dS )zChecking mark names (goto)r.   r/   zRunning %s.test10_goto...r0   rM   r2   r3   rN   ry   rD   rE   rF   rz   rO   rP   rQ   r{   rR   rS   rT   r[   rG   r\   r]   rv   N)r   r6   r7   r+   r8   r%   r9   r'   r   rJ   gotor@   r;   r<   r&   rM   rA   rD   rO   rR   r	   s    r   test10_gotozBasicTestCase.test10_goto  s    > 	I$	"""-0GGHHH 	!!! 	  maV=NOOO!!!  maV=NOOO"""  maV=NOOO!!!  maV=NOOO 	!!!ndk222555555555 	!!!ndk222ndk222ndk222555 	"""ndk222ndk222555555 	ndk222ndk222ndk222ndk222 	ndk222)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEEEEr   c                 
   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            d	           | j                            dd
ddgd           | j                            d           | 	                                 | j                            ddddgd           | j                            d           | j                            ddddgd           | j        
                    d           | 	                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 	                                 | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 	                                 | j        
                    d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           |                     | j        j        j                                        ddg           dS )z#Checking mark sequential ids (goto)r.   r/   zRunning %s.test10_gotoint...r0   rM   r2   r3   rN   ry   rD   rE   rF   rz   rO   rP   rQ   r{   rR   rS   rT   r   r[   rG   r\   r]   r   r   rv   N)r   r6   r7   r+   r8   r%   r9   r'   rJ   r   r   r@   r;   r<   r&   rM   rA   rD   rO   rR   r	   s    r   test10_gotointzBasicTestCase.test10_gotoint  sp    > 	L$	"""04>3JJKKK 	!!! 	  maV=NOOO!!!  maV=NOOO"""  maV=NOOO!!!  maV=NOOO 	ndk222555555555 	555555555555 	ndk222ndk222ndk222555 	ndk222ndk222555555 	ndk222ndk222ndk222ndk222 	ndk222)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEEEEr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                                        }| j                                        }|                     ||           | 	                                 | j        
                    |           |                     | j                                        |           | j                            |           |                     | j                                        |           | j                            |           |                     | j                                        |           | j                            |           |                     | j                                        |           | j                            d           | 	                                 |                     | j                                        |           | j                            d           |                     | j                                        d           dS )zCreating contiguous marksr.   r/   zRunning %s.test11_contiguous...rv   r   N)r   r6   r7   r+   r8   r%   r9   rJ   assertNotEqualr   r:   r<   r~   r?   r   )r
   m1m2s      r   test11_contiguouszBasicTestCase.test11_contiguousW  s
    > 	O$	"""3dn6MMNNN!!![[B###5577<<<5577<<<5577<<<5577<<<5577<<<5577;;;;;r   c                 (   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dddg           | j                                        }| 	                    |           | 
                                 | j                                         |                     | j                                        d           |                     d| j                   d	S )
z1Ensuring the mark is kept after an UNDO operationr.   r/   zRunning %s.test12_keepMark...r0   	newarray1r   r   
/newarray1N)r   r6   r7   r+   r8   r%   r9   r'   rJ   assertIsNotNoner   r:   r<   r~   r;   r
   mids     r   test12_keepMarkzBasicTestCase.test12_keepMarkq  s     > 	M$	"""1DN4KKLLL!!!  kA3777k  S!!! 	5577;;; 	t{33333r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dddg           | j                                         | 	                                 | 
                    | j                                        d           |                     d| j                   | j                                         | j                            dd	dg           | j                                         | j                            dd
dg           | j                                        }| j                            dddg           | j                                         | 
                    | j                                        |           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | 	                                 | j                                         | j                                         | j                            dddg           | j                            dddg           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         | 	                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         dS )z2Checking that successive enable/disable Undo worksr.   r/   z)Running %s.test13_severalEnableDisable...r0   r   r   r   r   	newarray2	newarray3	newarray4z
/newarray2z
/newarray3z
/newarray4N)r   r6   r7   r+   r8   r%   r9   r'   r:   r   r<   r~   r;   disable_undorJ   r@   r   s     r   test13_severalEnableDisablez)BasicTestCase.test13_severalEnableDisable  sm    > 	+$	"""=.)* + + + 	!!!  kA3777 	5577;;; 	t{333 	  """ 	  kA3777 	!!!  kA3777k    kA3777 	5577=== 	t{333lDK000lDK000t{333 	  """ 	!!!  kA3777  kA3777 	lDK000lDK000lDK000lDK000t{333lDK000lDK000t{333 	  """""r   )r8   
__module____qualname____doc__r   r   r$   rB   rH   rK   r`   rc   re   rg   ri   rk   rm   rr   rt   rw   r|   r   r   r   r   r   r   r   __classcell__r+   s   @r   r   r      s       ..L7  ? ? ? ? ?2 2  2  2D!2 !2 !2F32 32 32j[P [P [PzMP MP MP^ P  P  PD*6 *6 *6X(6 (6 (6T&6 &6 &6P 6  6  6D= = =,6 6 6*P P P<5F 5F 5Fn P  P  PD'6 '6 '6R7F 7F 7Fr?F ?F ?FB< < <44 4 4*?# ?# ?# ?# ?# ?# ?#r   r   c                       e Zd ZdZdZdS )PersistenceTestCasez5Test for basic Undo/Redo operations with persistence.TN)r8   r   r   r   r    r   r   r   r     s        ??LLLr   r   c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )CreateArrayTestCasez Test for create_array operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           d S r   r"   r)   s       r   r$   zCreateArrayTestCase.setUp  r,   r   c                 |   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                                         | 	                    d	| j                   | j        
                                 |                     d	| j                   |                     | j        j        j        j        d           |                     | j        j        j                                        ddg           d
S )Checking one action.r.   r/   Running %s.test00...r0   rM   r   r   rN   r[   N)r   r6   r7   r+   r8   r%   r9   r'   r:   r;   r?   r@   r<   r&   rM   r   rA   r	   s    r   test00zCreateArrayTestCase.test00  s%    > 	D$	"""(4>+BBCCC 	!!! 	  maV=NOOO 	 	555 	 	ndk222)5;=NOOO)5::<<q!fEEEEEr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            dd	dd
gd           | j                                         | 	                    d| j                   | 	                    d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           dS )Checking two actions.r.   r/   Running %s.test01...r0   rM   r   r   rN   rD   r2   rF   r[   rG   N)r   r6   r7   r+   r8   r%   r9   r'   r:   r;   r?   r@   r<   r&   rM   r   rD   rA   r	   s    r   test01zCreateArrayTestCase.test01  s    > 	D$	"""(4>+BBCCC 	!!! 	  maV=NOOO  maV=NOOO 	 	555555 	 	ndk222ndk222)5;=NOOO)5;=NOOO)5::<<q!fEEE)5::<<q!fEEEEEr   c                 \   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            dd	dd
gd           | j                            ddd
dgd           | j                                         | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j                                        ddg           |                     | j        j        j                                        dd
g           |                     | j        j        j                                        d
dg           dS )Checking three actions.r.   r/   Running %s.test02...r0   rM   r   r   rN   rD   r2   rF   rO   r3   rQ   r[   rG   r\   N)r   r6   r7   r+   r8   r%   r9   r'   r:   r;   r?   r@   r<   r&   rM   r   rD   rO   rA   r	   s    r   test02zCreateArrayTestCase.test02%  sc    > 	D$	"""(4>+BBCCC 	!!! 	  maV=NOOO  maV=NOOO  maV=NOOO 	 	555555555 	 	ndk222ndk222ndk222)5;=NOOO)5;=NOOO)5;=NOOO)5::<<q!fEEE)5::<<q!fEEE)5::<<q!fEEEEEr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddddgd           | j                            d	d
ddgd           | j                            ddddgd           | j                                         | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        j        d           |                     | j        j        j        j        j        j        d           |                     | j        j        j                                        ddg           |                     | j        j        j        j                                        ddg           |                     | j        j        j        j        j                                        ddg           dS )1Checking three actions in different depth levels.r.   r/   Running %s.test03...r0   rM   r   r   rN   /agrouprD   r2   rF   /agroup/agroup3rO   r3   rQ   r[   z/agroup/otherarray2z/agroup/agroup3/otherarray3N)r   r6   r7   r+   r8   r%   r9   r'   r:   r;   r?   r@   r<   r&   rM   r   r   rD   r    rO   rA   r	   s    r   test03zCreateArrayTestCase.test03J  s    > 	D$	"""(4>+BBCCC 	!!! 	  maV=NOOO  M"#Q):	< 	< 	<  !2M"#Q):	< 	< 	< 	 	555.<<<6DDD 	 	ndk222+T[9993T[AAA)5;=NOOO)0<B*	, 	, 	,)08DJ*	, 	, 	,)5::<<q!fEEE)0<AACCaVLLL)08DIIKKQ	! 	! 	! 	! 	!r   
r8   r   r   r   r$   r   r   r   r   r   r   s   @r   r   r     s        **? ? ? ? ?2F F F6F F F@#F #F #FJ(! (! (! (! (! (! (!r   r   c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )CreateGroupTestCasez Test for create_group operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           d S r   r"   r)   s       r   r$   zCreateGroupTestCase.setUpx  r,   r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                                         | 	                    d| j                   | j        
                                 |                     d| j                   |                     | j        j        j        j        d           dS )	r   r.   r/   r   r0   othergroup1Another group 1/othergroup1N)r   r6   r7   r+   r8   r%   r9   r(   r:   r;   r?   r@   r<   r&   r   _v_titler	   s    r   r   zCreateGroupTestCase.test00  s     > 	D$	"""(4>+BBCCC 	!!! 	  m5FGGG 	 	555 	 	ndk222)5>*	, 	, 	, 	, 	,r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                            ddd           | j                                         | 	                    d	| j                   | 	                    d
| j                   | j        
                                 |                     d	| j                   |                     d
| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS )r   r.   r/   r   r0   r   r   othergroup2Another group 2r   /othergroup2N)r   r6   r7   r+   r8   r%   r9   r(   r:   r;   r?   r@   r<   r&   r   r   r   r	   s    r   r   zCreateGroupTestCase.test01  sl    > 	D$	"""(4>+BBCCC 	!!! 	  m5FGGG  m5FGGG 	 	555555 	 	ndk222ndk222)5>*	, 	, 	,)5>*	, 	, 	, 	, 	,r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                            ddd           | j                            dd	d
           | j                                         | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   | j        
                                 |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d
           dS )r   r.   r/   r   r0   r   r   r   r   othergroup3Another group 3r   r   z/othergroup3N)r   r6   r7   r+   r8   r%   r9   r(   r:   r;   r?   r@   r<   r&   r   r   r   r   r	   s    r   r   zCreateGroupTestCase.test02  s    > 	D$	"""(4>+BBCCC 	!!! 	  m5FGGG  m5FGGG  m5FGGG 	 	555555555 	 	ndk222ndk222ndk222)5>*	, 	, 	,)5>*	, 	, 	,)5>*	, 	, 	, 	, 	,r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                            ddd	           | j                            d
dd           | j                                         | 	                    d| j                   | 	                    d
| j                   | 
                    d| j        v           | j                                         |                     d| j                   |                     d
| j                   |                     d| j                   |                     | j        j        j        j        d           |                     | j        j        j        j        j        d	           |                     | j        j        j        j        j        j        d           dS )r   r.   r/   r   r0   r   r   r   r   r   z/othergroup1/othergroup2r   r   z$/othergroup1/othergroup2/othergroup3N)r   r6   r7   r+   r8   r%   r9   r(   r:   r;   
assertTruer?   r@   r<   r&   r   r   r   r   r	   s    r   r   zCreateGroupTestCase.test03  s    > 	D$	"""(4>+BBCCC 	!!! 	  m5FGGG  M+<	> 	> 	>  &7H	J 	J 	J 	 	5553T[AAA2$+E	G 	G 	G 	 	ndk2220$+>>><dkJJJ)5>*	, 	, 	,)5AJ*	, 	, 	,K(4@I	 	 	 	 	r   r   r   s   @r   r   r   u  s|        **? ? ? ? ?2, , ,6, , ,@#, #, #,J' ' ' ' ' ' 'r   r   
   c                     G d dt           j                  }t          }| j                            | ||dd|          }t          |          D ]f}t          |          |j        d<   |dz  |j        d<   ||j        d<   t          ||z
  dz
            |j        d	<   |j        	                                 g|
                                 |j        j                                        }|j        j                                        }|j        j                                        }t           j        rFt%          d
|           t%          d|j        j        j        j                   t%          d|           dS dS )z)Create a table under where with name namec                       e Zd Z ej        ddd          Z ej        dd          Z ej        dd          Z	 ej
        dd          Zd	S )
populateTable.<locals>.Indexedr3   r   r   )itemsizedfltposr   r   )r   r   r2   N)r8   r   r   r   	StringColvar1BoolColvar2IntColvar3FloatColvar4r   r   r   Indexedr   !  sh        r|QSa888rzqa(((ryaQ'''r{q)))r   r   Nr   r   r   r   r   r   zNumber of written rows:zNumber of indexed rows:zNumber of indexed rows(2):)r   IsDescriptionminRowIndex_v_filecreate_tablerangestrrowfloatappendflushcolsr   create_indexr   r   r   r6   r7   index	nelements)wherenamer   nrowstablei	indexrowss          r   populateTabler     sy   * * * * *"" * * * EM&&udGY'+U4 4E5\\  FF	& E	&	&!%!)a-00	&		KKMMM 
,,..I
,,..I
,,..I ~ 7'///')>)HIII*I666667 7r   c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )RenameNodeTestCasezTest for rename_node operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           t          | j        j        d           d S Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r   r#   r$   r%   r&   r'   r(   r   r)   s       r   r$   zRenameNodeTestCase.setUpD     { 	D'Aq6III 	D)aS-@@@ ##D(MBB 	E:sODDDE:sODDD 	D)_=== 	E9o>>> 	dk&00000r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | 
                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        d           dS )	z3Checking rename_node (over Groups without children)r.   r/   r   /agroup2r    /agroup3r   N)r   r6   r7   r+   r8   r%   r9   rename_noder:   r@   r;   r<   r&   r   r   r?   r    r	   s    r   r   zRenameNodeTestCase.test00`  s<    > 	D$	"""(4>+BBCCC 	!!! 	
I666 	 	j$+...T[111)1:OLLL 	 	T[111j$+...)1:OLLLLLr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | 
                    d| j                   | 	                    d| j                   | 	                    d| j                   | 	                    d	| j                   |                     | j        j        j        j        d
           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        d
           | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   dS )z0Checking rename_node (over Groups with children)r.   r/   r   r   r    r   /agroup/anarray1/agroup/anarray2r   r   z/agroup3/anarray1z/agroup3/anarray2z/agroup3/agroup3N)r   r6   r7   r+   r8   r%   r9   r   r:   r@   r;   r<   r&   r   r   r?   r    r	   s    r   r   zRenameNodeTestCase.test01}  s    > 	D$	"""(4>+BBCCC 	!!! 		9555 	 	i---T[111 	($+666($+666'555)09=III 	 	DK000j$+...)1:MJJJ 	)4;777)4;777($+66666r   c                 <   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                            dd           | j                                         | 	                    d| j                   | 
                    d| j                   | 	                    d	| j                   | 	                    d
| j                   | 	                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        d           | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   dS )z2Checking rename_node (over Groups with children 2)r.   r/   Running %s.test01b...r   r    r   agroup4z/agroup4r   r   r   r   z/agroup4/anarray1z/agroup4/anarray2z/agroup4/agroup3N)r   r6   r7   r+   r8   r%   r9   r   r:   r@   r;   r<   r&   r   r   r?   r   r	   s    r   test01bzRenameNodeTestCase.test01b  s    > 	E$	""")DN,CCDDD 	!!! 		9555
I666 	 	i---T[111 	($+666($+666'555)09=III 	 	DK000j$+...)1:MJJJ 	)4;777)4;777($+66666r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | 
                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        d           dS )	z"Checking rename_node (over Leaves)r.   r/   r   /anarrayr   z	/anarray2r   N)r   r6   r7   r+   r8   r%   r9   r   r:   r@   r;   r<   r&   r   r   r?   r   r	   s    r   r   zRenameNodeTestCase.test02  s<    > 	D$	"""(4>+BBCCC 	!!! 	
J777 	 	j$+...dk222)17GGG 	 	T[111k4;///)28-HHHHHr   c                 z   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | j        j
        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     d| j                   |                     | j        j
        j        j        d           | j                                         |                     d| j                   | 	                    d| j                   |                     | j        j
        j        j        d           | j        j
        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     |j        j        j                   dS )	z"Checking rename_node (over Tables)r.   r/   r   /tabletable2z/table2r   N)r   r6   r7   r+   r8   r%   r9   r   r:   r@   r&   r   r   r   r   r   r   r   assertIsNoner   r<   r   r   r;   r   r?   r  r
   r   s     r   r   zRenameNodeTestCase.test03  s    > 	D$	"""(4>+BBCCC 	!!! 	(333 	 	h,,, &UZ_2333UZ_2333UZ_2333%*//000.8+FFF.8+FFF.8+FFFDK000)/5yAAA 	 	4;///i---)06	BBB 'UZ_2333UZ_2333UZ_2333.8+FFF.8+FFF.8+FFF%*//00000r   r8   r   r   r   r$   r   r   r  r   r   r   r   s   @r   r   r   A  s        ))1 1 1 1 18M M M:%7 %7 %7N&7 &7 &7PI I I:+1 +1 +1 +1 +1 +1 +1r   r   c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )MoveNodeTestCasezTests for move_node operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           t          | j        j        d           d S r   r   r)   s       r   r$   zMoveNodeTestCase.setUp  r   r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | 
                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        j        j        d           dS )	zChecking move_node (over Leaf)r.   r/   r   r  r   /agroup/agroup3/anarrayr   N)r   r6   r7   r+   r8   r%   r9   	move_noder:   r@   r;   r<   r&   r   r   r?   r   r    r	   s    r   r   zMoveNodeTestCase.test006  sP    > 	D$	"""(4>+BBCCC 	!!! 	j*;<<< 	 	j$+...2DK@@@)17GGG 	 	T[111/===)08@F&	( 	( 	( 	( 	(r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                                         | 	                    d| j                   | 
                    d| j                   | 	                    d| j                   | 	                    d	| j                   | 	                    d
| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        j        d           | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   dS )z.Checking move_node (over Groups with children)r.   r/   r   r   r   r    /agroup2/agroup3r   r   r   r   z/agroup2/agroup3/anarray1z/agroup2/agroup3/anarray2z/agroup2/agroup3/agroup3N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r;   r<   r&   r   r   r?   r   r    r	   s    r   r   zMoveNodeTestCase.test01T  s    > 	D$	"""(4>+BBCCC 	!!! 	iY??? 	 	i---+T[999 	($+666($+666'555)09=III 	 	DK000($+666)19B&	( 	( 	( 	14;???14;???0$+>>>>>r   c                 J   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                            ddd	           | j                                         | 	                    d| j                   | 
                    d
| j                   | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d
| j                   |                     | j        j        j        j        j        d           | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   dS )z0Checking move_node (over Groups with children 2)r.   r/   r   r   r0   r    r   r   r   z/agroup2/agroup4r   r   r   r   z/agroup2/agroup4/anarray1z/agroup2/agroup4/anarray2z/agroup2/agroup4/agroup3N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r;   r<   r&   r   r   r?   r   r   r	   s    r   r  zMoveNodeTestCase.test01b|  s    > 	E$	""")DN,CCDDD 	!!! 	ii888j*i@@@ 	 	i---+T[999 	($+666($+666'555)09=III 	 	DK000($+666)19B&	( 	( 	( 	14;???14;???0$+>>>>>r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                                         | 	                    d| j                   | 
                    d| j                   |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        j        d           d	S )
z Checking move_node (over Leaves)r.   r/   r   r  r   r   /agroup2/anarray2r   N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r;   r<   r&   r   r   r?   r   r   r	   s    r   r   zMoveNodeTestCase.test02  sS    > 	D$	"""(4>+BBCCC 	!!! 	j*jAAA 	 	j$+...,dk:::)17GGG 	 	T[111)4;777K$-3]	D 	D 	D 	D 	Dr   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                                         | 	                    d| j                   | 
                    d| j                   | j        j        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t.                     |                     |j        j        j        j        t.                     |                     |j        j        j        j        t.                     |                     | j        j        j        j        d           | j                                         | 
                    d| j                   | 	                    d| j                   |                     | j        j        j        j        j        d           | j        j        j        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t.                     |                     |j        j        j        j        t.                     |                     |j        j        j        j        t.                     |                     |j        j        j                   d	S )
z Checking move_node (over Tables)r.   r/   r   r  r   r  z/agroup2/table2r   N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r;   r&   r   r   r   r   r   r   r   r  r   r<   r   r   r   r?   r   r  r  s     r   r   zMoveNodeTestCase.test03  s    > 	D$	"""(4>+BBCCC 	!!! 	h
H=== 	 	h,,,*DK888 &UZ_2333UZ_2333UZ_2333%*//000.8+FFF.8+FFF.8+FFF)/5yAAA 	 	4;///'555)18>	JJJ (/UZ_2333UZ_2333UZ_2333.8+FFF.8+FFF.8+FFF%*//00000r   r	  r   s   @r   r  r    s        ((1 1 1 1 18( ( (<&? &? &?P'? '? '?RD D D<+1 +1 +1 +1 +1 +1 +1r   r  c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )RemoveNodeTestCasezTest for remove_node operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           t          | j        j        d           d S r   r   r)   s       r   r$   zRemoveNodeTestCase.setUp  r   r   c                     t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            d           | j                                         | 	                    d| j                   | 
                    | j        j        j        j        d           | j                                         |                     d| j                   dS )z Checking remove_node (over Leaf)r.   r/   r   r  r   N)r   r6   r7   r+   r8   r%   r9   remove_noder:   r@   r<   r&   r   r   r?   r;   r	   s    r   r   zRemoveNodeTestCase.test00  s     > 	D$	"""(4>+BBCCC 	!!! 	
+++ 	 	j$+...)17GGG 	 	T[11111r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            d           | j                            d           | j                                         | 	                    d| j                   | 	                    d| j                   | 
                    | j        j        j        j        d           | 
                    | j        j        j        j        j        d           | j                                         |                     d| j                   |                     d| j                   dS )	z*Checking remove_node (over several Leaves)r.   r/   zRunning %s.test00b...r  r   r   r   N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r<   r&   r   r   r   r   r?   r;   r	   s    r   test00bzRemoveNodeTestCase.test00b*  s`    > 	E$	""")DN,CCDDD 	!!! 	
+++ 2333 	 	j$+...($+666)17GGGK#,2O	E 	E 	E 	 	T[111+T[99999r   c                 \   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            d           | j                                         | 	                    d| j                   | j        j
        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     |j        j        j        j        t,                     |                     | j        j
        j        j        d           | j                                         |                     d| j                   dS )z"Checking remove_node (over Tables)r.   r/   zRunning %s.test00c...r  r   N)r   r6   r7   r+   r8   r%   r9   r  r:   r@   r&   r   r   r   r   r   r   r   r  r   r<   r   r   r   r?   r;   r  s     r   test00czRemoveNodeTestCase.test00cI  s    > 	E$	""")DN,CCDDD 	!!! 	))) 	 	h,,, &UZ_2333UZ_2333UZ_2333%*//000.8+FFF.8+FFF.8+FFF)/5yAAA 	 	4;/////r   c                 H   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                                         | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   | 	                    d	| j                   | 
                    | j        j        j        j        d
           | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d	| j                   dS )z0Checking remove_node (over Groups with children)r.   r/   r   r   r   	recursiver   r   r   r   Nr   r6   r7   r+   r8   r%   r9   r  r:   r@   r<   r&   r   r   r?   r;   r	   s    r   r   zRemoveNodeTestCase.test01k  s    > 	D$	"""(4>+BBCCC 	!!! 		Q777 	 	i---($+666($+666'555)09=III 	 	DK000+T[999+T[999*DK88888r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                            d           | j                                         | 	                    d| j                   | 	                    d| j                   | 	                    d| j                   | 	                    d	| j                   | 	                    d
| j                   | 
                    | j        j        j        j        d           | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d	| j                   |                     d
| j                   dS )z2Checking remove_node (over Groups with children 2)r.   r/   r   r   r   r   r   r   r   r   r   Nr"  r	   s    r   r  zRemoveNodeTestCase.test01b  s    > 	E$	""")DN,CCDDD 	!!! 		Q777
+++ 	 	i---j$+... 	($+666($+666'555)09=III 	 	DK000T[111 	+T[999+T[999*DK88888r   )r8   r   r   r   r$   r   r  r  r   r  r   r   s   @r   r  r    s        ))1 1 1 1 182 2 24: : :> 0  0  0D9 9 9@%9 %9 %9 %9 %9 %9 %9r   r  c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )CopyNodeTestCasez0Tests for copy_node and copy_children operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           t          | j        j        d           d S r   r   r)   s       r   r$   zCopyNodeTestCase.setUp  r   r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd          }| j                                         | 	                    d| j                   | j        
                                 |                     d| j                   |                     | j        j        j        j        j        |           dS )z Checking copy_node (over Leaves)r.   r/   zRunning %s.test00_copyLeaf...r  r   r  N)r   r6   r7   r+   r8   r%   r9   	copy_noder:   r;   r?   r@   rp   r&   r   r    r   r
   new_nodes     r   test00_copyLeafz CopyNodeTestCase.test00_copyLeaf  s     > 	M$	"""1DN4KKLLL 	!!! ;((5FGG 	 	2DK@@@ 	 	/===dk&-5=xHHHHHr   c                 2
   t           j        r,t          dd           t          d| j        j        z             | j                                         t          j        dt                     | j        
                    ddd	          }t          j        d
t                     |                     d| j                   | j        j        j        j        j        }|                     |j        d           |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     |j        j        j                   | j                                         | j        j        j        }|                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     d| j                   | j                                         |                     d| j                   |                     d| j                   | j        j        j        j        j        }|                     |j        d           |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j                   |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     |j        j        j        j        t2                     |                     |j        j        j                   dS )z Checking copy_node (over Tables)r.   r/   zRunning %s.test00b_copyTable...ignore)categoryr  r   T)propindexesdefaultz/agroup/agroup3/tabler   N)r   r6   r7   r+   r8   r%   r9   warningsfilterwarningsUserWarningr(  r@   r&   r   r    r   r<   r   r   r   r   r   r   r   r   r   r  r   r:   r;   r?   r  s     r   test00b_copyTablez"CopyNodeTestCase.test00b_copyTable  s    > 	O$	"""3dn6MMNNN 	!!! 	;????%%'T & ; ;	K@@@@-t{;;; '/5i000UZ_2333UZ_2333UZ_2333.8+FFF.8+FFF.8+FFF%*//000 	 &UZ_2333UZ_2333UZ_2333%*//000.8+FFF.8+FFF.8+FFF 	0$+>>> 	 	h,,,-t{;;; '/5i000UZ_2333UZ_2333UZ_2333.8+FFF.8+FFF.8+FFF%*//00000r   c                 @   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd          }| j                                         | 	                    d| j                   | 	                    d	| j                   | 	                    d
| j                   | 	                    d| j                   | j        
                                 |                     d| j                   |                     d	| j                   |                     d
| j                   |                     d| j                   |                     | j        j        j        |           dS )zCopying a group (recursively).r.   r/   zRunning %s.test01_copyGroup...r   acopyT)newnamer!  z/acopyz/acopy/anarray1z/acopy/anarray2z/acopy/agroup3N)r   r6   r7   r+   r8   r%   r9   r(  r:   r;   r?   r@   rp   r&   r6  r)  s     r   test01_copyGroupz!CopyNodeTestCase.test01_copyGroup%  s    > 	N$	"""2T^5LLMMM 	!!! ;((w$ ) 8 8 	 	4;///*DK888*DK888)4;777 	 	h,,,'555'555&444dk&,h77777r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j        j        j        }| j        	                    ddd          }| j        
                                 |                     | j        j        j        |           | j                                         |                     | j        j        j        |           dS )	z(Copying a leaf, overwriting destination.r.   r/   z&Running %s.test02_copyLeafOverwrite...r  r   T)r7  	overwriteN)r   r6   r7   r+   r8   r%   r9   r&   r   r(  r:   rp   r?   )r
   oldNoder*  s      r   test02_copyLeafOverwritez)CopyNodeTestCase.test02_copyLeafOverwriteF  s     > 	+$	""":.)* + + + 	!!! +");((D ) : : 	 	dk&-w777 	 	dk&-x88888r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            ddd           | j                                         | 	                    d| j                   | 	                    d	| j                   | 	                    d
| j                   | j        
                                 |                     d| j                   |                     d	| j                   |                     d
| j                   dS )zCopying the children of a groupr.   r/   z!Running %s.test03_copyChildren...r   r   Tr   z/agroup2/anarray1r  r  N)r   r6   r7   r+   r8   r%   r9   copy_childrenr:   r;   r?   r@   r	   s    r   test03_copyChildrenz$CopyNodeTestCase.test03_copyChildrend  s;    > 	+$	"""5.)* + + + 	!!! 	!!)Z4!HHH 	 	,dk:::,dk:::+T[999 	 	)4;777)4;777($+66666r   )r8   r   r   r   r$   r+  r4  r8  r<  r?  r   r   s   @r   r%  r%    s        ::1 1 1 1 18I I I471 71 71r8 8 8B9 9 9<7 7 7 7 7 7 7r   r%  c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )ComplexTestCasez!Tests for a mix of all operationsc                    t                                                       | j        }|j        }|                    |dddgd           |                    |ddgd           |                    |dd	          }|                    |d
dgd           |                    |ddgd           |                    |dd           |                    |dd           d S r   r"   r)   s       r   r$   zComplexTestCase.setUp  r,   r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            | j        j        ddgd           | j        	                    | j        j        dd           | j        
                    d	d
          }| j                            ddd          }| j                            dd           | j        
                    d	d          }| j                            d           | j                                         |                     d| j                   |                     d	| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     | j        j        j        j        |           |                     d| j                   |                     d| j                   dS )zkMix of create_array, create_group, renameNone, move_node,
        remove_node, copy_node and copy_children.r.   r/   r   anarray3r   Array title 3r    r!   z	/anarray3r   r   r   r   r  anarray4z	/anarray4z/agroup/agroup3/anarray3z/agroup/anarray3z/agroup3/agroup3/anarray3z/agroup3/anarray3N)r   r6   r7   r+   r8   r%   r9   r'   r&   r(   r(  r>  r   r  r:   r;   r@   r?   rp   r   rD  r)  s     r   r   zComplexTestCase.test00  s    > 	D$	"""(4>+BBCCC 	!!! 	  !1:"#o	7 	7 	7 	  !19oNNN ;((6GHH;,,zQ - 0 0 	
J777 ;((i@@ 	,,, 	dk222dk2223T[AAAT[111dk222j$+... 	 	0$+>>>($+66614;???,dk:::dk&-6AAAT[111dk22222r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            d           | j                            | j        j	        ddgd           | j                            d           | j                            | j        j	        ddgd	           | j                            d           | j                            | j        j	        dd
gd           | j        
                                 |                     | j        j	        j        j        d           |                     | j        j	        j        dd         dg           | j                                         |                     | j        j	        j        j        d           |                     | j        j	        j        dd         d
g           dS )z*Test with multiple generations (Leaf case)r.   r/   r   r  r   r   r   r2   rE  r3   zArray title 4r   Nr   )r   r6   r7   r+   r8   r%   r9   r  r'   r&   r:   r<   r   r   r?   r	   s    r   r   zComplexTestCase.test01  s    > 	D$	"""(4>+BBCCC 	!!! 	
+++ 	  !19"#o	7 	7 	7 	
+++ 	  !19"#o	7 	7 	7 	
+++ 	  !19"#o	7 	7 	7 	 	)17GGG)1!!!4qc::: 	)17III)1!!!4qc:::::r   c                    t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            d           | j                            | j        j	        dd           | j                            d           | j                            | j        j	        dd           | j                            d           | j                            | j        j	        dd           | j                            | j        j	        j
        d	d
           | j                                         |                     | j        j	        j
        j        d           |                     d| j                   | j                                         |                     | j        j	        j
        j        d           |                     | j        j	        j
        j        j        d
           dS )z+Test with multiple generations (Group case)r.   r/   r   r   r   zGroup title 22r!   Group title 4agroup5Group title 5r   N)r   r6   r7   r+   r8   r%   r9   r  r(   r&   r   r:   r<   r   r@   r?   rJ  r	   s    r   r   zComplexTestCase.test02  s    > 	D$	"""(4>+BBCCC 	!!! 	
+++ 	  !19>NOOO 	
+++ 	  !19oNNN 	
+++ 	  !19oNNN 	  !1!99!0	2 	2 	2 	 	)1:OLLLj$+... 	)1:OLLL)19B(	* 	* 	* 	* 	*r   c                 f   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            dd           | j                            | j        j	        dd           | j                            d           | j                            | j        j	        dd	           | j                            d           | j                            | j        j	        dd
           | j                            | j        j	        j
        dd           | j                                         |                     d| j                   |                     | j        j	        j
        j        d           |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   | j                                         |                     d| j                   |                     | j        j	        j
        j        d
           |                     d| j                   |                     | j        j	        j
        j        j        d           dS )z=Test with multiple generations (Group case, recursive remove)r.   r/   r   r   r   r   r   r   r!   rI  rJ  rK  r   r   r   r   z/agroup/agroup5N)r   r6   r7   r+   r8   r%   r9   r  r(   r&   r   r:   r@   r<   r   r;   r?   rJ  r	   s    r   r   zComplexTestCase.test03(	  st    > 	D$	"""(4>+BBCCC 	!!! 		Q777 	  !18_MMM 		*** 	  !18_MMM 		*** 	  !18_MMM 	  !1!8)!0	2 	2 	2 	 	i---)09=III($+666($+666'555*DK888 	i---)09?KKK'555K#+4o	G 	G 	G 	G 	Gr   c                 (   t           j        r,t          dd           t          d| j        j        z             | j                                         | j                            | j        j        dd           | j                            | j        j        j	        dd           | j        
                    dd	
           | j                            | j        j        dd           | j                                         |                     d| j                   | j                                         |                     | j        j        j	        j        d           |                     d| j                   |                     d| j                   dS )zMTest with multiple generations (Group case, recursive remove,
        case 2)r.   r/   zRunning %s.test03b...r    r!   r   rI  r   r   r   z/agroup/agroup4N)r   r6   r7   r+   r8   r%   r9   r(   r&   r    r  r:   r;   r?   r<   r   r@   r	   s    r   test03bzComplexTestCase.test03bZ	  sr    > 	E$	""")DN,CCDDD 	!!! 	  !19oNNN  !1!99!0	2 	2 	2 	
a888 	  !19oNNN 	 	T[111 	)1:OLLLj$+...*DK88888r   )r8   r   r   r   r$   r   r   r   r   rN  r   r   s   @r   rA  rA    s        ++? ? ? ? ?223 23 23h&; &; &;P+* +* +*Z0G 0G 0Gd 9  9  9  9  9  9  9r   rA  c                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )AttributesTestCasez!Tests for operation on attributesc                     t                                                       | j                            ddddg          }|j        }d|_        d|_        d|_        d S )Nr0   r   r   r   r         )r#   r$   r%   r'   attrsattr_1attr_2attr_3)r
   r   rT  r+   s      r   r$   zAttributesTestCase.setUp	  sU     ((g1v>> r   c                 N   t           j        r,t          dd           t          d| j        j        z             | j        j        j        }|j        }| j        	                                 t          |dd           |                     d|           |                     |j        d           | j                                         |                     d|           | j                                         |                     d|           |                     |j        d           dS )zSetting a nonexistent attributer.   r/   zRunning %s.test00_setAttr...attr_0r   N)r   r6   r7   r+   r8   r%   r&   r   rT  r9   setattrr@   r<   rY  r:   r;   r?   r
   r   rT  s      r   test00_setAttrz!AttributesTestCase.test00_setAttr	  s    > 	L$	"""04>3JJKKK &!!!x###h&&&q)))5)))h&&&q)))))r   c                    t           j        r,t          dd           t          d| j        j        z             | j        j        j        }|j        }| j        	                                 t          |dd           |                     d|           |                     |j        d           | j                                         |                     d|           |                     |j        d           | j                                         |                     d|           |                     |j        d           dS )zSetting an existing attributer.   r/   z$Running %s.test01_setAttrExisting...rU     r   N)r   r6   r7   r+   r8   r%   r&   r   rT  r9   rZ  r@   r<   rU  r:   r?   r[  s      r   test01_setAttrExistingz)AttributesTestCase.test01_setAttrExisting	  s.    > 	+$	"""8.)* + + +  &!!!x$$$h&&&r***h&&&r***h&&&r*****r   c                    t           j        r,t          dd           t          d| j        j        z             | j        j        j        }|j        }| j        	                                 t          |d           |                     d|           | j                                         |                     d|           |                     |j        d           | j                                         |                     d|           dS )zRemoving an attributer.   r/   zRunning %s.test02_delAttr...rU  r   N)r   r6   r7   r+   r8   r%   r&   r   rT  r9   delattrr;   r:   r@   r<   rU  r?   r[  s      r   test02_delAttrz!AttributesTestCase.test02_delAttr	  s     > 	L$	"""04>3JJKKK &!!!x   5)))h&&&r***5)))))r   c                 ,   t           j        r,t          dd           t          d| j        j        z             | j        j        j        }d|_        d|_	        | j        j        j
        }|j        }| j                                         |                    | j        j                   |                     |j        d           |                     |j	        d           |                     |j        d           |                     |j        d           | j                                         |                     |j        d           |                     |j	        d           |                     d	|           |                     d
|           | j                                         |                     |j        d           |                     |j	        d           |                     |j        d           |                     |j        d           dS )zCopying an attribute setr.   r/   z"Running %s.test03_copyNodeAttrs...r   d   r   rR  rS  rV  rW  N)r   r6   r7   r+   r8   r%   r&   _v_attrsrY  rU  r   rT  r9   _f_copyr<   rV  rW  r:   r;   r?   )r
   rattrsr   rT  s       r   test03_copyNodeAttrsz'AttributesTestCase.test03_copyNodeAttrs	  s    > 	+$	"""6.)* + + + !* &!!!dk&'''***+++++++++***,,,6***6******+++++++++++r   c                 4   t           j        r,t          dd           t          d| j        j        z             | j        j        j        }|j        }| j        	                                 d|_
        | j                            d           | j                            dddg          }d	|j        _
        | j                                         |                     d
| j        j        j        j                   |                     | j        j        j        j        j
        d           | j                                         |                     d
| j        j        j        j                   |                     | j        j        j        j        j
        d	           dS )z+Replacing a node with a rewritten attributer.   r/   z Running %s.test04_replaceNode...r^  /arrayr0   r   r      rU  r   N)r   r6   r7   r+   r8   r%   r&   r   rT  r9   rU  r  r'   r:   r@   r<   r?   )r
   r   rT  arrs       r   test04_replaceNodez%AttributesTestCase.test04_replaceNode	  sV    > 	P$	"""4t~7NNOOO &!!!)))k&&sGaS99	h 0 6 <===)/5<bAAAh 0 6 <===)/5<bAAAAAr   )r8   r   r   r   r$   r\  r_  rb  rh  rm  r   r   s   @r   rP  rP  }	  s        ++
 
 
 
 
* * *(+ + +,* * *&, , ,@B B B B B B Br   rP  c                   Z    e Zd ZdZ G d dej        j        ej                  Zd Z	d Z
dS )NotLoggedTestCasezTest not logged nodes.c                       e Zd ZdS ) NotLoggedTestCase.NotLoggedArrayN)r8   r   r   r   r   r   NotLoggedArrayrq  
  s        r   rr  c                 b   | j                             dd           | j                                          |                     | j         j        ddg|                                           }| j                                          |                     d| j                    |                    d           | j                                          |                     d| j                    |	                                 | j                                          | 
                    d| j                    dS )	z5Performing hierarchy operations on a not logged node.r0   tgrouptestr   z/testz/tgroupz/tgroup/testN)r%   r(   r9   rr  r&   _getMethodNamer:   r@   moveremover;   r
   rl  s     r   test00_hierarchyz"NotLoggedTestCase.test00_hierarchy
  s    	  h///!!! !!$+"2F#$#t':':'<'<> >gt{+++ 	ndk222 	

55555r   c                 D   |                      | j        j        ddg|                                           }| j                                         d|j        _        | j                                         |                     |j        j        d           d|j        _        | j                                         |                     |j        j        d           |j        `| j                                         | 	                    t          t          |j        d           dS )z5Performing attribute operations on a not logged node.ru  r   barbazfooN)rr  r%   r&   rv  r9   re  r~  r:   r<   r   AttributeErrorgetattrry  s     r   test01_attributesz#NotLoggedTestCase.test01_attributes
  s     !!$+"2F#$#t':':'<'<> >!!! !)5111 !)5111 L.'3<GGGGGr   N)r8   r   r   r   r   nodeNotLoggedMixinArrayrr  rz  r  r   r   r   ro  ro   
  sp              /   6 6 6,H H H H Hr   ro  c                   F     e Zd ZdZ fdZd Zd Zd Zd Zd Z	d Z
 xZS )	CreateParentsTestCasez Test the ``createparents`` flag.c                     t                                                       | j                            dd          }| j                            |d           d S )Nr0   g1g2)r#   r$   r%   r(   )r
   r  r+   s     r   r$   zCreateParentsTestCase.setUp6
  sI    [%%c400  T*****r   c                 :     t           fd|D                       S )z.Return a set of the existing paths in `paths`.c              3   .   K   | ]}|j         v |V  d S N)r%   ).0pathr
   s     r   	<genexpr>z1CreateParentsTestCase.existing.<locals>.<genexpr>=
  s/      GG$44;3F3F3F3F3F3FGGr   )	frozenset)r
   pathss   ` r   existingzCreateParentsTestCase.existing;
  s&    GGGG%GGGGGGr   c                     |             | j                                          g d}|D ]}|                     |          } ||           |                     |          }|                     |                    |                     | j                                           ||           |                     |          }|                     ||           d S )N)z/g1z/g1/g2z	/g1/g2/g3z/g1/g2/g3/g4)r%   r9   r  r   
issupersetr:   r<   )r
   doitprepostr  newpathbeforeafters           r   basetestzCreateParentsTestCase.basetest?
  s    !!!>>> 		, 		,G]]5))FDMMMMM%((EOOE,,V44555KDMMMMM%((EUF++++		, 		,r   c                 P     d } fd} fd}                      |||           dS )zTest creating a node.c                      d S r  r   r   r   r   r  z0CreateParentsTestCase.test00_create.<locals>.preR
  s    Dr   c                     j                             | ddgd                               t          j                            | d          j                    d S )Nr   r   Tcreateparents)r%   r'   r@   r   r  	join_pathr  r
   s    r   r  z1CreateParentsTestCase.test00_create.<locals>.doitU
  sR    K$$Wgs$$OOOMM"'++GW==t{KKKKKr   c                 z                         t          j                            | d          j                   d S Nr   r;   r   r  r  r%   r  s    r   r  z1CreateParentsTestCase.test00_create.<locals>.postY
  3    RW..w@@$+NNNNNr   Nr  r
   r  r  r  s   `   r   test00_createz#CreateParentsTestCase.test00_createO
  sj    	 	 		L 	L 	L 	L 	L	O 	O 	O 	O 	OdC&&&&&r   c                 T      fd} fd} fd}                      |||           dS )zTest moving a node.c                  B     j                             dddg           d S Nr0   r   r   r%   r'   r	   s   r   r  z.CreateParentsTestCase.test01_move.<locals>.pre`
  %    K$$S'A377777r   c                     j                             d| d                               dj                                        t          j                            | d          j                    d S Nrj  Tr  r   )r%   r  r;   r@   r   r  r  r  s    r   r  z/CreateParentsTestCase.test01_move.<locals>.doitc
  sf    K!!(G4!HHHXt{333MM"'++GW==t{KKKKKr   c                                          dj                                       t          j                            | d          j                   d S )Nrj  r   )r@   r%   r;   r   r  r  r  s    r   r  z/CreateParentsTestCase.test01_move.<locals>.posth
  sI    MM(DK000RW..w@@$+NNNNNr   Nr  r  s   `   r   test01_movez!CreateParentsTestCase.test01_move]
  sv    	8 	8 	8 	8 	8	L 	L 	L 	L 	L
	O 	O 	O 	O 	O 	dC&&&&&r   c                 T      fd} fd} fd}                      |||           dS )zTest copying a node.c                  B     j                             dddg           d S r  r  r	   s   r   r  z.CreateParentsTestCase.test02_copy.<locals>.prep
  r  r   c                     j                             d| d                               t          j                            | d          j                    d S r  )r%   r(  r@   r   r  r  r  s    r   r  z/CreateParentsTestCase.test02_copy.<locals>.doits
  sN    K!!(G4!HHHMM"'++GW==t{KKKKKr   c                 z                         t          j                            | d          j                   d S r  r  r  s    r   r  z/CreateParentsTestCase.test02_copy.<locals>.postw
  r  r   Nr  r  s   `   r   test02_copyz!CreateParentsTestCase.test02_copym
  st    	8 	8 	8 	8 	8	L 	L 	L 	L 	L	O 	O 	O 	O 	OdC&&&&&r   c                 T      fd} fd} fd}                      |||           dS )z%Test copying the children of a group.c                      j                             dd          } j                             | ddg           j                             | ddg           d S )Nr0   r*   array1r   array2)r%   r(   r'   )gr
   s    r   r  z6CreateParentsTestCase.test03_copyChildren.<locals>.pre~
  sX    ((g66AK$$Q1#666K$$Q1#66666r   c                 &   j                             d| d                               t          j                            | d          j                                        t          j                            | d          j                    d S )Nz/groupTr  r  r  )r%   r>  r@   r   r  r  r  s    r   r  z7CreateParentsTestCase.test03_copyChildren.<locals>.doit
  sv    K%%ht%LLLMM"'++GX>>LLLMM"'++GX>>LLLLLr   c                                          t          j                            | d          j                                        t          j                            | d          j                   d S )Nr  r  r  r  s    r   r  z7CreateParentsTestCase.test03_copyChildren.<locals>.post
  s]    RW..wAA4;OOORW..wAA4;OOOOOr   Nr  r  s   `   r   r?  z)CreateParentsTestCase.test03_copyChildren{
  sv    	7 	7 	7 	7 	7
	M 	M 	M 	M 	M
	P 	P 	P 	P 	P 	dC&&&&&r   )r8   r   r   r   r$   r  r  r  r  r  r?  r   r   s   @r   r  r  3
  s        **+ + + + +
H H H, , , ' ' '' ' ' ' ' '' ' ' ' ' ' 'r   r  c                     t           j                                        } d}t          |          D ]}|                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                               |                     t           j                            t                                |                     t           j                            t"                               t           j        r	 | S )Nr   )r   unittest	TestSuiter   addTest	makeSuiter   r   r   r   r   r  r  r%  rP  rA  ro  r  heavy)theSuiteniterns      r   suiter  
  s   ((**HE 5\\ K K22=AABBB223FGGHHH223FGGHHH223FGGHHH223EFFGGG223CDDEEE223EFFGGG223CDDEEE223EFFGGG22?CCDDD223DEEFFF223HIIJJJJ| Or   __main__r  )defaultTest)r1  tablesr   tables.testsr   TempFileMixinPyTablesTestCaser   r   r   r   r   r   r   r  r  r%  rA  rP  ro  r  r  r8   sys
parse_argvargvprint_versionsr  mainr   r   r   <module>r     sp             ~# ~# ~# ~# ~#F(&*A ~# ~# ~#B    -   d! d! d! d! d!&.0G d! d! d!Nc c c c c&.0G c c cL  7  7  7FS1 S1 S1 S1 S1-v/F S1 S1 S1lW1 W1 W1 W1 W1v+V-D W1 W1 W1t9 9 9 9 9-v/F 9 9 9DM7 M7 M7 M7 M7v+V-D M7 M7 M7`w9 w9 w9 w9 w9f*F,C w9 w9 w9t@B @B @B @B @B-v/F @B @B @BF0H 0H 0H 0H 0H,f.E 0H 0H 0HfX' X' X' X' X'F0&2I X' X' X'v  0 zJJJFchF
OW-----	 r   