
    d]                         d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ dd	lmZmZ dd
lmZmZmZmZ ddlmZmZmZmZ  G d d          Z G d de          Z G d de          ZdS )z'Tests for commit walking functionality.    )permutations)expectedFailure)TestCase   )CHANGE_MODIFYCHANGE_RENAMERenameDetector
TreeChange)MissingCommitError)MemoryObjectStore)BlobCommit)
ORDER_TOPO	WalkEntryWalker_topo_reorder   )Fbuild_commit_graphmake_objectmake_tagc                        e Zd Zd Zd Zd ZdS )TestWalkEntryc                 "    || _         || _        d S N)commitchanges)selfr   r   s      [/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/dulwich/tests/test_walk.py__init__zTestWalkEntry.__init__&   s        c                 L    d                     | j        j        | j                  S )Nz'<TestWalkEntry commit={}, changes={!r}>)formatr   idr   )r   s    r   __repr__zTestWalkEntry.__repr__*   s&    8??KNL
 
 	
r!   c                     t          |t                    r| j        |j        k    rdS | j        dS | j        |                                k    S )NFT)
isinstancer   r   r   )r   others     r   __eq__zTestWalkEntry.__eq__0   sI    %++ 	t{el/J/J5<4|u}}..r!   N)__name__
__module____qualname__r    r%   r)    r!   r   r   r   %   sA          
 
 
/ / / / /r!   r   c                        e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zed             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z& xZ'S )$
WalkerTestc                 n    t                                                       t                      | _        d S r   supersetUpr   storer   	__class__s    r   r3   zWalkerTest.setUp9   %    &((


r!   c                     |                     dg           }|                     di           }t          |          D ]!\  }}||                    |dz   i           d<   "t          | j        |fd|i|S Ntimesattrsr   commit_timepop	enumerate
setdefaultr   r4   r   commit_speckwargsr:   r;   its          r   make_commitszWalkerTest.make_commits=       

7B''

7B''e$$ 	; 	;DAq9:EQUB''66!$*kQQQ&QQQr!   c                     g }t          d|dz             D ]8}|g}|dk    r|                    |dz
             |                    |           9 | j        |fi |S Nr   rangeappendrF   r   num_commitsrC   rB   rD   cs         r   make_linear_commitszWalkerTest.make_linear_commitsD   y    q+/** 	" 	"AA1uuQq!!!! t 77777r!   c                    t          | j        g|R i |}t          |          }t          |          D ]-\  }}t	          |t
                    rt          |d           ||<   .t          |          }|                     ||           d S r   )r   r4   listr?   r'   r   r   assertEqual)r   expectedargsrC   walkerrD   entryactuals           r   assertWalkYieldszWalkerTest.assertWalkYieldsM   s    
4T444V44>>!(++ 	9 	9HAu%(( 9+E488f6*****r!   c                     |                      d          \  }}}t          |          }| j                            |           |                     ||g|j        g           d S )N   )target)rP   r   r4   
add_objectrZ   r$   )r   c1c2c3t2s        r   test_tagzWalkerTest.test_tagV   se    --a00
BR   
b!!!r2h00000r!   c                 0   |                      d          \  }}}|                     |g|j        g           |                     ||g|j        g           |                     |||g|j        g           |                     |||g|j        |j        g           |                     ||g|j        g|j        g           |                     ||g|j        |j        g|j        g           |                     |g|j        |j        g|j        g           d S Nr\   excluderP   rZ   r$   r   r_   r`   ra   s       r   test_linearzWalkerTest.test_linear\   s   --a00
BrdRUG,,,r2h000r2rlRUG444r2rlRUBEN;;;r2h"%AAAr2hHHHrdRUBENRUGDDDDDr!   c                    t          t          |                     d                              }|                     ||d         j        g           | j        |d         j        = t          dd          D ].}|                     |d |         |d         j        g|           /|                     t          t          | j        |d         j        g           d S )N   r   r      max_entries)
rS   reversedrP   rZ   r$   r4   rK   assertRaisesr   r   )r   csrD   s      r   test_missingzWalkerTest.test_missingf   s    (433B778899b2a58*---
 Jr"vy!q" 	E 	EA!!"RaR&2a58*!!DDDD,fdj2b69+NNNNNr!   c                 Z   |                      dgddgddgddgg          \  }}}}|                     |||g|j        g           |                     ||g|j        g           |                     |||g|j        |j        g           |                     ||g|j        |j        g|j        g           |                     ||g|j        |j        g|j        g           |                     |g|j        g|j        g           |                     ||g|j        g|j        g           d S )Nr   r   r\      rf   rF   rZ   r$   )r   r_   x2x3y4s        r   test_branchzWalkerTest.test_branchr   s>   **QC!Q!Q!Q+HIIBBr2rlRUG444r2h000r2rlRUBEN;;;r2hHHHr2hHHHrdRUGbeW===r2h"%AAAAAr!   c                    |                      dgddgddgg dg          \  }}}}|                     ||||g|j        g           |                     ||g|j        g           |                     ||g|j        g           |                     ||g|j        g|j        g           |                     ||g|j        g|j        g           d S )Nr   r   r\   )rv   r   r\   rf   rw   )r   r_   r`   ra   c4s        r   
test_mergezWalkerTest.test_merge|   s    **QC!Q!Q+KLLBBr2r2.888r2h000r2h000r2h"%AAAr2h"%AAAAAr!   c                 *   d | _         |                     dgddgddgddgg dgg d          \  }}}}}|                     |||||g|j        g           |                     |||g|j        g           |                     ||g|j        g           d S )Nr   r   r\   rv      r\   rv   )r   r   r\   rv   r   r:   maxDiffrF   rZ   r$   r   r_   r`   ra   r}   c5s         r   &test_merge_of_new_branch_from_old_basez1WalkerTest.test_merge_of_new_branch_from_old_base   s     !..S1a&1a&1a&)))4!// / 
 
BB 	r2r2r2RUG<<<r2rlRUG444r2h00000r!   c                 *   d | _         |                     dgddgddgddgg dgg d          \  }}}}}|                     |||||g|j        g           |                     |||g|j        g           |                     ||g|j        g           d S )Nr   r   r\   rv   r   )r   r\   rv   r   r   r   r   r   s         r   test_merge_of_old_branchz#WalkerTest.test_merge_of_old_branch   s     !..S1a&1a&1a&)))4!// / 
 
BB 	r2r2r2RUG<<<r2rlRUG444r2h00000r!   c                 z    |                      d          \  }}}|                     |||g|j        gd           d S )Nr\   T)reverserh   ri   s       r   test_reversezWalkerTest.test_reverse   sF    --a00
Br2rlRUGTBBBBBr!   c                     |                      d          \  }}}|                     |||g|j        gd           |                     ||g|j        gd           |                     |g|j        gd           d S )Nr\   ro   r   r   rh   ri   s       r   test_max_entrieszWalkerTest.test_max_entries   s    --a00
Br2rlRUGCCCr2hQ???rdRUG;;;;;r!   c                     |                      d          \  }}}|                     |||g|j        gdd           |                     ||g|j        gdd           |                     |g|j        gdd           d S )Nr\   T)rp   r   r   r   rh   ri   s       r   test_reverse_after_max_entriesz)WalkerTest.test_reverse_after_max_entries   s    --a00
Br2rlRUGDQQQr2hQMMMrdRUGDIIIIIr!   c           
      0   t          t          d          }t          t          d          }t          t          d          }|                     dd|fgd|fd|fgd	          \  }}t          |t	          j        dt          |j        f          g          }t          |t	          t          dt          |j        fdt          |j        f          t	          j        dt          |j        f          g          }| 	                    ||g|j        g           d S )
N   a1data   a2   b2r      a   br   r   trees)
r   r   rP   r   r
   addr   r$   r   rZ   )r   blob_a1blob_a2blob_b2r_   r`   e1e2s           r   test_changes_one_parentz"WalkerTest.test_changes_one_parent   s   d///d///d///))7O$7OdG_5  * 
 
B 2
a/D E EFGG=4GJ*?$7:AVWWa455
 
 	r2h00000r!   c                    t          t          d          }t          t          d          }t          t          d          }|                     dgdgg dgd|fgd	|fgd|fd	|fgd
          \  }}}t          t          dt
          |j        fdt
          |j        f          t          j        dt
          |j        f          gg}|                     t          ||          g|j        g|j        |j        g           d S )Nr   r   r      a3r   r   r\   r   r   r   r   r   r   r\   r   rf   )
r   r   rF   r
   r   r   r$   r   rZ   r   )r   r   r   blob_a3r_   r`   ra   r   s           r   test_changes_multiple_parentsz(WalkerTest.test_changes_multiple_parents   s&   d///d///d///&&S1#yyy!7O$7O$7OdG_5  ' 
 

B =4GJ*?$7:AVWWa455
 	2w''(25'BE25> 	 	
 	
 	
 	
 	
r!   c                    t          d g g d          }|                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     |                    d                      |                     |                    d	                     |                     |                    d
                     |                     |                    d                     |                     |                    d                     d S )N)   foo   bar   baz/quuxpathsr   s   foo/as   foo/a/br   r   s
   baz/quux/as   oopss   fools   bazs   baz/quu)r   
assertTrue_path_matchesassertFalse)r   rW   s     r   test_path_matcheszWalkerTest.test_path_matches   s   b(E(E(EFFF,,V44555,,X66777,,Z88999,,V44555,,[99:::,,];;<<<--d33444--g66777--g66777--f55666--j99:::::r!   c                    t          t          d          }t          t          d          }t          t          d          }t          t          d          }|                     dd|fgd|fd|fgd|fd|fgd	
          \  }}}|                     |||g|j        g           |                     ||g|j        gdg           |                     ||g|j        gdg           t          t          dt          |j        fdt          |j        f          t          t          dt          |j        fdt          |j        f          g}|                     t          ||          g|j        gddg           d S )Nr   r   r   r   s   b3r\   r      x/br   r   r   r   )rp   r   )	r   r   rP   rZ   r$   r
   r   r   r   )	r   r   r   r   blob_b3r_   r`   ra   r   s	            r   
test_pathszWalkerTest.test_paths   s   d///d///d///d///--7O$7Ofg%677Ofg%67  . 
 

B 	r2rlRUG444r2hv>>>r2hx@@@ }tQ
&;dAwz=RSS}vq'*&=7:?VWW
 	2w''(25'q 	 	
 	
 	
 	
 	
r!   c           	      B   t          t          d          }t          t          d          }|                     dd|fgd|fd|fgd|fd|fd|fgd          \  }}}|                     |g|j        gdg	           |                     ||g|j        gd
g	           d S )Nr   r   r   r\      x/ar   r   r   r      xr   r   rP   rZ   r$   )r   blob_ablob_br_   r`   ra   s         r   test_paths_subtreezWalkerTest.test_paths_subtree  s    T---T-----V$%6NVV$456NVV$4vv6FG  . 
 

B 	rdRUGD6:::r2hv>>>>>r!   c                 .   t          t          d          }t          t          d          }|                     dd|fgd|fd|fgd          \  }}|                     |g|j        gdgd           |                     |g|j        gdgd           d S )	Nr   r   r   r   r   r   r   )r   rp   r   )r   r   r   r_   r`   s        r   test_paths_max_entriesz!WalkerTest.test_paths_max_entries  s    T---T---))4.)f~f~.NOO * 
 
B 	rdRUGD6qIIIrdRUGD6qIIIIIr!   c                 ~   t          t          d          }t          t          d          }t          t          d          }|                     dgdgg dg dgd	|fgd	|fgd	|fgd	|fgd
          \  }}}}|                     |||g|j        gd	g           |                     ||g|j        gd	g           d S )Nr   r   r   r   r   r   r   )rv   r   r   r   )r   r   r\   rv   r   r   )r   r   rF   rZ   r$   )r   r   r   r   x1y2m3m4s           r   test_paths_mergezWalkerTest.test_paths_merge  s    d///d///d///**S1#yyy))),7O$7O$7O$7O$	  + 
 
BB 	r2rlRUGD6BBBr2hv>>>>>r!   c                    t          t          d          }|                     dd|fgd|fgd          \  }}dt          |j        f}dt          |j        f}t          j        |          t          j        |          g}t          t          ||          g}| 	                    t          ||          g|j        gd	           t          | j                  }| 	                    t          ||          g|j        gd|
           d S )N   blobr   r   r   r   r   r   r   ro   )rp   rename_detector)r   r   rP   r   r$   r
   deleter   r   rZ   r   r	   r4   )	r   blobr_   r`   entry_aentry_bchanges_without_renameschanges_with_renamesdetectors	            r   test_changes_with_renamesz$WalkerTest.test_changes_with_renames-  s1   4g...))4,dD\N;; * 
 
B DG$DG$g&&N7###
 !+='7 K KL26778UG 	 	
 	
 	

 "$*--23445UG$	 	 	
 	
 	
 	
 	
r!   c                 f  
 t          t          d          
g d}
fdt          |          D             }|                     d|          \  }}}}}}|                     |g|j        gdg           
fd	}	|                     t          |t          t           |	d
           |	d                    g          t          |t          t           |	d           |	d
                    g          t          |t          j	         |	d                    g          g|j        gdgd           d S )Nr   r   )r   r   r   r      cr   c                 4    i | ]\  }}|d z   |t           fgS )r   )r   ).0rD   nr   s      r   
<dictcomp>z1WalkerTest.test_follow_rename.<locals>.<dictcomp>J  s+    DDD41aQ!T1DDDr!      r   r   r   c                 "    | t           j        fS r   r   r$   r   r   s    r   ez(WalkerTest.test_follow_rename.<locals>.eN      q$'?"r!   r   r   Tr   follow)
r   r   r?   rP   rZ   r$   r   r
   r   r   )r   namesr   r_   r`   ra   r}   r   c6r   r   s             @r   test_follow_renamezWalkerTest.test_follow_renameF  s[   4g...444DDDD9U3C3CDDD!%!9!9!5!9!I!IBBBrdRUGD6:::	# 	# 	# 	# 	# 	b:mQQtWWaagg#N#N"OPPb:mQQtWWaagg#N#N"OPPb:>!!D''#:#:";<<
 UG& 	 		
 		
 		
 		
 		
r!   c                    t          t          d          |                     ddfdfgg g dfgdfgdfgd          \  }}}}}}fd	}|                     t	          |t          t           |d           |d                    g          t	          |t          t           |d           |d                    g          t	          |t          j         |d                    g          g|j        gdgd
           d S )Nr   r   r   r   r   r   )r   r   r\   rv   r   r   r   c                 "    | t           j        fS r   r   r   s    r   r   z4WalkerTest.test_follow_rename_remove_path.<locals>.ej  r   r!   Tr   )	r   r   rP   rZ   r   r
   r   r   r$   )r   _r}   r   r   r   r   s         @r   test_follow_rename_remove_pathz)WalkerTest.test_follow_rename_remove_path\  sL   4g..."664L4,/4L>4L>4L>  7 

 

1aR	# 	# 	# 	# 	# 	b:mQQtWWaagg#N#N"OPPb:mQQtWWaagg#N#N"OPPb:>!!D''#:#:";<<
 UG& 	 		
 		
 		
 		
 		
r!   c                    |                      d          \  }}}|                     |||g|j        gd           |                     |||g|j        gd           |                     ||g|j        gd           |                     ||g|j        gd           |                     ||g|j        gd           |                     |g|j        gd           |                     |g|j        gd	           |                     |g|j        gd
           |                     g |j        gd           |                     g |j        gd           d S )Nr\   rm   sincer   r   c   d   e            ,  rh   ri   s       r   
test_sincezWalkerTest.test_sincey  su   --a00
Br2rlRUG2>>>r2rlRUG1===r2hq999r2hr:::r2hs;;;rdRUG3777rdRUG3777rdRUG3777b25'555b25'55555r!   c                    |                      d          \  }}}|                     g |j        gd           |                     |g|j        gd           |                     |g|j        gd           |                     |g|j        gd           |                     ||g|j        gd           |                     ||g|j        gd           |                     ||g|j        gd	           |                     |||g|j        gd
           |                     |||g|j        gd           |                     |||g|j        gd           d S )Nr\   rm   )untilr   r   r   r   r   r   r   r   r   rh   ri   s       r   
test_untilzWalkerTest.test_until  s{   --a00
Bb25'444rdRUG1555rdRUG1555rdRUG2666r2hs;;;r2hs;;;r2hs;;;r2rlRUG3???r2rlRUG3???r2rlRUG3?????r!   c                 :   |                      d          \  }}}|                     g |j        gdd           |                     |||g|j        gdd           |                     |g|j        gdd           |                     |g|j        gdd           d S )	Nr\   r   r   )r   r   rm   r   2      rh   ri   s       r   test_since_untilzWalkerTest.test_since_until  s    --a00
Bb25'B???r2rlRUG2SIIIrdRUG3cBBBrdRUG2SAAAAAr!   c                     |                      dg d          }|dd          \  }}}}| j        |d         j        = |                     |||g|j        gd           d S )Nrn   )	   r   r   r   r\   rv   r      r      r   r   r   r   r   )rP   r4   r$   rZ   )r   commitsc8r   c10c11s         r   test_since_over_scanzWalkerTest.test_since_over_scan  ss    **25V5V5V*WW!"##,AsCJwqz}%
 	sCnsvha@@@@@r!   c                     d |D             }d t          t          |                    D             }|                     d |D             |           d S )Nc                 .    g | ]}t          |d           S r   )r   r   rO   s     r   
<listcomp>z3WalkerTest.assertTopoOrderEqual.<locals>.<listcomp>  s"    ;;;a=D));;;r!   c                 &    g | ]}|j         j        S r-   )r   r$   )r   r   s     r   r  z3WalkerTest.assertTopoOrderEqual.<locals>.<listcomp>  s    HHHaahkHHHr!   c                     g | ]	}|j         
S r-   )r$   r  s     r   r  z3WalkerTest.assertTopoOrderEqual.<locals>.<listcomp>  s    9991!$999r!   )rS   r   rT   )r   expected_commitsr   entries
actual_idss        r   assertTopoOrderEqualzWalkerTest.assertTopoOrderEqual  sd    ;;7;;;HH4g0F0F+G+GHHH
99(8999:FFFFFr!   c                     |                      d          }|                                 t          |          D ]}|                     ||           d S )Nr   )rP   r   r   r  )r   r   perms      r   test_topo_reorder_linearz#WalkerTest.test_topo_reorder_linear  s_    **1-- )) 	5 	5D%%gt4444	5 	5r!   c                    |                      dgdgg dg          \  }}}|                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           d S )Nr   r   r   rF   r  ri   s       r   "test_topo_reorder_multiple_parentsz-WalkerTest.test_topo_reorder_multiple_parents  s    &&aS)))'<==
B!!2r2,R===!!2r2,R=== 	!!2r2,R===!!2r2,R=== 	!!2r2,R===!!2r2,R=====r!   c                    |                      dgddgddgg          \  }}}|                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           |                     |||g|||g           d S )Nr   r   r\   r  ri   s       r   #test_topo_reorder_multiple_childrenz.WalkerTest.test_topo_reorder_multiple_children  s    &&aVaV'<==
B 	!!2r2,R===!!2r2,R===!!2r2,R===!!2r2,R===!!2r2,R===!!2r2,R=====r!   c                     |                      dgddgddgddgg dgg d          \  }}}}}|                     |||||g|j        g           |                     |||||g|j        gt                     d S )	Nr   r   r\   rv   r   )r   r   r\   rv   r   r   )order)rF   rZ   r$   r   r   s         r   test_out_of_order_childrenz%WalkerTest.test_out_of_order_children  s    !..S1a&1a&1a&)))4OOO / 
 
BB 	r2r2r2RUG<<<r2r2r2RUG:NNNNNr!   c           	          |                      dgddgddgddgddgg dgg d          \  }}}}}}|                     |||||g|j        g           |                     ||g|j        g|j        g	           d S )
Nr   r   r\   rv   r   )r   r   rv   )r   r\   rv   r   r   r   r   rf   rw   )r   r_   rx   y3rz   y5m6s          r   test_out_of_order_with_excludez)WalkerTest.test_out_of_order_with_exclude  s     "&!2!2S1a&1a&1a&1a&)))<$$$ "3 "
 "
BBB 	r2r2r2RUG<<< 	r2h"%AAAAAr!   c                     |                      d          \  }}}|                     g |j        g|j        g           d S re   rh   ri   s       r   test_empty_walkzWalkerTest.test_empty_walk  sD    --a00
Bb25'BE7;;;;;r!   )(r*   r+   r,   r3   rF   rP   rZ   rc   rj   rt   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  __classcell__r6   s   @r   r/   r/   8   sl       ) ) ) ) )R R R8 8 8+ + +1 1 1E E E
O 
O 
OB B BB B B1 1 1 1 1 _1C C C< < <J J J1 1 1*
 
 
.; ; ;
 
 
6? ? ?J J J? ? ? 
 
 
2
 
 
,
 
 
:6 6 6@ @ @B B BA A AG G G
5 5 5> > >
> 
> 
>O O OB B B< < < < < < <r!   r/   c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )WalkEntryTestc                 n    t                                                       t                      | _        d S r   r1   r5   s    r   r3   zWalkEntryTest.setUp  r7   r!   c                     |                     dg           }|                     di           }t          |          D ]!\  }}||                    |dz   i           d<   "t          | j        |fd|i|S r9   r=   rA   s          r   rF   zWalkEntryTest.make_commits  rG   r!   c                     g }t          d|dz             D ]8}|g}|dk    r|                    |dz
             |                    |           9 | j        |fi |S rI   rJ   rM   s         r   rP   z!WalkEntryTest.make_linear_commits  rQ   r!   c                    t          t          d          }t          t          d          }|                     ddd|fd|fgi          d         }t          | j        |j                  }t          |          d         }|                                }dt          |j        f}dt          |j        f}| 	                    t          j        |          t          j        |          g|           d S )	Nr   r   r   r   r      y/br   r   r   r   rP   r   r4   r$   rS   r   r   rT   r
   r   )	r   r   r   r_   rW   walker_entryr   r   r   s	            r   test_all_changeszWalkEntryTest.test_all_changes  s    T---T---%%'&&)9:; & 
 
  
BE**F||A&&(( 1fi(1fi(^G$$jnW&=&=>	
 	
 	
 	
 	
r!   c           	      |   t          t          d          }t          t          d          }t          t          d          }t          t          d          }|                     dgdgg dgd	|fgd
|fgd	|fd
|fgd          \  }}}t          | j        |j                  }t          |          }	|	d         }
|                     |
j        j        |j                   |
	                                }|                     dt          |                     d	t          |j        f}d	t          |j        f}d
t          |j        f}d
t          |j        f}|                     t          t          ||          t          j        |          gt          j        |          t          t          ||          gg|           d S )Nr   r   r   r   r   r   r   r   r   r&  r   r   r   )r   r   rF   r   r4   r$   rS   rT   r   r   lenr   r
   r   r   )r   r   r   r   r   r   r   r   rW   r	  r(  r   r   entry_a2r   entry_b2s                   r   test_all_with_mergez!WalkEntryTest.test_all_with_merge  s   T---d///T---d///&&S1#yyy!V$%V$%W%'89  ' 
 

B 
BE**v,,qz,/777&&((CLL)))1fi(Awz*1fi(Awz* }gx@@N8,,
 N8,,}gx@@	 	
 	
 	
 	
 	
r!   c                    t          t          d          }t          t          d          }|                     ddd|fd|fgi          d         }t          | j        |j                  }t          |          d         }|                    d	
          }dt          |j        f}| 	                    t          j        |          g|           d S )Nr   r   r   r   r   r&  r   r   r   )path_prefixr'  )r   r   r   r_   rW   r(  r   r   s           r   test_filter_changesz!WalkEntryTest.test_filter_changes7  s    T---T---%%'&&)9:; & 
 
  
BE**F||A&&4&88 FI&^G$$%	
 	
 	
 	
 	
r!   c                    t          t          d          }t          t          d          }t          t          d          }t          t          d          }|                     dgdgg dgd	|fgd
|fgd	|fd
|fgd          \  }}}t          | j        |j                  }t          |          }	|	d         }
|                     |
j        j        |j                   |
	                    d          }|                     dt          |                     dt          |j        f}dt          |j        f}|                     t          t          ||          gg|           d S )Nr   r   r   r   r   r   r   r   r   r&  r   r   r   r   )r   r   rF   r   r4   r$   rS   rT   r   r   r+  r   r
   r   )r   r   r   r   r   r   r   r   rW   r	  r(  r   r   r,  s                 r   test_filter_with_mergez$WalkEntryTest.test_filter_with_mergeL  sz   T---d///T---d///&&S1#yyy!V$%V$%W%'89  ' 
 

B 
BE**v,,qz,/777&&t,,CLL)))FI&!WZ(::;<	
 	
 	
 	
 	
r!   )r*   r+   r,   r3   rF   rP   r)  r.  r1  r3  r  r  s   @r   r!  r!    s        ) ) ) ) )R R R8 8 8
 
 
,&
 &
 &
P
 
 
*
 
 
 
 
 
 
r!   r!  N) __doc__	itertoolsr   unittestr   dulwich.testsr   	diff_treer   r   r	   r
   errorsr   object_storer   objectsr   r   walkr   r   r   r   utilsr   r   r   r   r   r/   r!  r-   r!   r   <module>r>     s  * . - " " " " " " $ $ $ $ $ $ " " " " " "% % % % % % % % % % % % ' ' ' ' ' ' , , , , , , " " " " " " " " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/ / / / / / / /&i< i< i< i< i< i< i< i<XC
 C
 C
 C
 C
H C
 C
 C
 C
 C
r!   