o
    ]Zh                     @   sb   d dl Z d dlmZmZ dd Zdd Zdd Zd	d
 Zdd ZG dd dZ	G dd de	Z
dS )    N)MappedQueue_HeapElementc                  C   sH   t dd} t dd}|| k sJ | |ksJ |dk sJ d| k s"J d S )N皙?a   br   barfoo r   U/var/www/auris/lib/python3.10/site-packages/networkx/utils/tests/test_mapped_queue.pytest_HeapElement_gtlt   s   

r   c                  C   s0   t dd} t dd}|| ksJ | |k sJ d S )Nr   r   r   r   r	   r   r   r   #test_HeapElement_gtlt_tied_priority   s   

r   c                  C   s<   t dd} t dd}|| ksJ | |ksJ |dksJ d S )Nr   r   r   r   r	   r   r   r   test_HeapElement_eq   s
   

r   c                  C   s@   t dd} t dd}t| ddgksJ t|g dksJ d S )Nr   r   r         r   )r   r   r   r   )r   listr   r
   r   r   r   test_HeapElement_iter   s   

r   c                  C   s   t dd} t dd}| d dksJ | d dksJ |d dks"J |d dks*J |d dks2J tt|jd tt| jd d S )	Nr   r   r   r   r   r   r      )r   pytestraises
IndexError__getitem__r   r   r   r   test_HeapElement_getitem%   s   

r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-S ).TestMappedQueuec                 C   s   d S Nr   )selfr   r   r   setup_method2   s   zTestMappedQueue.setup_methodc                 C   s"   |j dd t|jD ksJ d S )Nc                 S      i | ]\}}||qS r   r   .0poseltr   r   r   
<dictcomp>6       z.TestMappedQueue._check_map.<locals>.<dictcomp>)position	enumerateheapr   qr   r   r   
_check_map5   s   "zTestMappedQueue._check_mapc                 C   s$   t  }||_dd t|D |_|S )Nc                 S   r!   r   r   r"   r   r   r   r&   ;   r'   z6TestMappedQueue._make_mapped_queue.<locals>.<dictcomp>)r   r*   r)   r(   r   hr,   r   r   r   _make_mapped_queue8   s   z"TestMappedQueue._make_mapped_queuec                 C   s(   g d}|  |}|  | | d S N   r   r   r   r   r   )r0   _heapifyr-   r.   r   r   r   test_heapify>   s   
zTestMappedQueue.test_heapifyc                 C   s   g d}t |}| | d S r1   )r   r-   r.   r   r   r   	test_initD   s   zTestMappedQueue.test_initc                 C   s   g d}t tt| d S )N)r3   r   r   r   r   r   r   r   	TypeErrorr   )r   r/   r   r   r   test_incomparableI   s   z!TestMappedQueue.test_incomparablec                 C   s.   g d}t |}| | t|dksJ d S )Nr2      )r   r-   lenr.   r   r   r   test_lenM   s   
zTestMappedQueue.test_lenc                 C   s<   dg}dg}|  |}|d |j|ksJ | | d S Nr   r   r0   _siftupr*   r-   r   r/   h_siftedr,   r   r   r   test_siftup_leafS   s   

z TestMappedQueue.test_siftup_leafc                 C   s@   ddg}ddg}|  |}|d |j|ksJ | | d S r=   r>   r@   r   r   r   test_siftup_one_child[      

z%TestMappedQueue.test_siftup_one_childc                 C   @   g d}g d}|  |}|d |j|ksJ | | d S )N)r   r   r   r   r   r   r   r>   r@   r   r   r   test_siftup_left_childc   rD   z&TestMappedQueue.test_siftup_left_childc                 C   rE   )Nr   r   r   )r   r   r   r   r>   r@   r   r   r   test_siftup_right_childk   rD   z'TestMappedQueue.test_siftup_right_childc                 C   s@   g d}g d}|  |}|d |j|ksJ | | d S )N)r   r   r   r   r   r3   r:   r   r>   r@   r   r   r   test_siftup_multiples   rD   z$TestMappedQueue.test_siftup_multiplec                 C   s>   dg}dg}|  |}|dd |j|ksJ | | d S r=   )r0   	_siftdownr*   r-   r@   r   r   r   test_siftdown_leaf{   s   
z"TestMappedQueue.test_siftdown_leafc                 C   sJ   ddg}ddg}|  |}|dt|d  |j|ksJ | | d S )Nr   r   r0   rK   r;   r*   r-   r@   r   r   r   test_siftdown_single      
z$TestMappedQueue.test_siftdown_singlec                 C   sJ   g d}g d}|  |}|dt|d  |j|ksJ | | d S )N)r   r   r   r   r3   r:      r   )r   r   r   r   r3   r:   rP   r   r   r   rM   r@   r   r   r   test_siftdown_multiple   rO   z&TestMappedQueue.test_siftdown_multiplec                 C   sF   g d}g d}t  }|D ]}|| q|j|ksJ | | d S )Nr:   r   r   r   r   r3   r   r   r   r   r:   r   r3   r   r   pushr*   r-   r   to_pushrA   r,   r%   r   r   r   	test_push   s   zTestMappedQueue.test_pushc                 C   s`   g d}g d}t  }|D ]}||}|sJ q|j|ks J | | |d}|r.J d S )NrH   rF   r   rT   r   rW   rA   r,   r%   Zinsertedr   r   r   test_push_duplicate   s   



z#TestMappedQueue.test_push_duplicatec                    sV   g d}t |}| |     fddtt|D }||ks$J |   d S )N)r   r   r:   r   r   r   r3   c                    s   g | ]}   qS r   )pop)r#   _r,   r   r   
<listcomp>   s    z,TestMappedQueue.test_pop.<locals>.<listcomp>)sortedr0   r4   ranger;   r-   )r   r/   Zh_sortedpoppedr   r]   r   test_pop   s   
zTestMappedQueue.test_popc                 C   6   g d}g d}|  |}|d}|j|ksJ d S )NrS   )r   r   r   r:   r   r3   r   r0   remover*   r   r/   Z	h_removedr,   removedr   r   r   test_remove_leaf   
   

z TestMappedQueue.test_remove_leafc                 C   rc   )NrS   )r   r   r   r:   r   r3   r   rd   rf   r   r   r   test_remove_root   ri   z TestMappedQueue.test_remove_rootc                 C   8   g d}g d}|  |}|dd}|j|ksJ d S )Nr      
   <      2   (   r      rn   ro   rm   rq   rr   rp   rt   r0   updater*   r   r/   Z	h_updatedr,   rg   r   r   r   test_update_leaf   
   
z TestMappedQueue.test_update_leafc                 C   rk   )Nrl   rn   rm   #   ro   rp   rq   rr   r   r{   ru   rw   r   r   r   test_update_root   ry   z TestMappedQueue.test_update_rootN)__name__
__module____qualname__r    r-   r0   r5   r6   r9   r<   rB   rC   rG   rI   rJ   rL   rN   rQ   rX   rZ   rb   rh   rj   rx   r|   r   r   r   r   r   1   s.    		r   c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )TestMappedDictc                 C   s   dd |D }t |S )Nc                 S   s   i | ]}||qS r   r   )r#   r%   r   r   r   r&      s    z5TestMappedDict._make_mapped_queue.<locals>.<dictcomp>)r   )r   r/   Zpriority_dictr   r   r   r0      s   z!TestMappedDict._make_mapped_queuec                 C   s*   dddddd}t |}|j|ksJ d S )Nr   r   r   r   r   r3   r   r   r   r   )r   r(   r   dr,   r   r   r   r6      s   zTestMappedDict.test_initc                 C   s:   dddddd}t |}|jdd t|jD ksJ d S )	Nr   r   r   r   r   r3   r   r   r   r   c                 S   r!   r   r   r"   r   r   r   r&      r'   z,TestMappedDict.test_ties.<locals>.<dictcomp>)r   r(   r)   r*   r   r   r   r   	test_ties   s   "zTestMappedDict.test_tiesc                 C   sP   dddddd}t |}| tddksJ |jdd	 t|jD ks&J d S )
Nr   r   r   r   r   r   r3   c                 S   r!   r   r   r"   r   r   r   r&      r'   z+TestMappedDict.test_pop.<locals>.<dictcomp>)r   r[   r   r(   r)   r*   r   r   r   r   rb      s   "zTestMappedDict.test_popc                 C   s   t  }tt|j d S r   )r   r   r   r   r[   r+   r   r   r   test_empty_pop   s   zTestMappedDict.test_empty_popc                 C   s"   dddddd}t tt| d S )Nr   r   r7   )r   r   r   r   r   test_incomparable_ties   s   z%TestMappedDict.test_incomparable_tiesc                 C   sJ   g d}g d}t  }|D ]	}|j||d q|j|ksJ | | d S )NrR   rS   priorityrT   rV   r   r   r   rX      s   zTestMappedDict.test_pushc                 C   sh   g d}g d}t  }|D ]}|j||d}|sJ q|j|ks"J | | |jddd}|r2J d S )NrH   rF   r   r   rT   rY   r   r   r   rZ      s   

z"TestMappedDict.test_push_duplicatec                 C   <   g d}g d}|  |}|jdddd}|j|ksJ d S )Nrl   rs   rp   rt   r   ru   rw   r   r   r   rx      
   
zTestMappedDict.test_update_leafc                 C   r   )Nrl   rz   r   r{   r   ru   rw   r   r   r   r|     r   zTestMappedDict.test_update_rootN)r}   r~   r   r0   r6   r   rb   r   r   rX   rZ   rx   r|   r   r   r   r   r      s    	r   )r   Znetworkx.utils.mapped_queuer   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s    	 