o
    ˷e                     @   sZ   d dl Z d dlmZm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   ]/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/utils/tests/test_mapped_queue.pytest_HeapElement_gtlt   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+S ),TestMappedQueuec                 C   s   d S )Nr   )selfr   r   r   setup+   s   zTestMappedQueue.setupc                 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>/       z.TestMappedQueue._check_map.<locals>.<dictcomp>)position	enumerateheap)r   qr   r   r   
_check_map.   s   "zTestMappedQueue._check_mapc                 C   s$   t  }||_dd t|D |_|S )Nc                 S   r   r   r   r    r   r   r   r$   4   r%   z6TestMappedQueue._make_mapped_queue.<locals>.<dictcomp>)r   r(   r'   r&   r   hr)   r   r   r   _make_mapped_queue1   s   z"TestMappedQueue._make_mapped_queuec                 C   s(   g d}|  |}|  | | d S N   r   r   r   r   r   )r-   _heapifyr*   r+   r   r   r   test_heapify7   s   
zTestMappedQueue.test_heapifyc                 C   s   g d}t |}| | d S r.   )r   r*   r+   r   r   r   	test_init=   s   zTestMappedQueue.test_initc                 C   s.   g d}t |}| | t|dksJ d S )Nr/      )r   r*   lenr+   r   r   r   test_lenB   s   
zTestMappedQueue.test_lenc                 C   s<   dg}dg}|  |}|d |j|ksJ | | d S Nr   r   r-   _siftupr(   r*   r   r,   h_siftedr)   r   r   r   test_siftup_leafH   s   

z TestMappedQueue.test_siftup_leafc                 C   s@   ddg}ddg}|  |}|d |j|ksJ | | d S r7   r8   r:   r   r   r   test_siftup_one_childP      

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   r8   r:   r   r   r   test_siftup_left_childX   r>   z&TestMappedQueue.test_siftup_left_childc                 C   r?   )Nr   r   r   )r   r   r   r   r8   r:   r   r   r   test_siftup_right_child`   r>   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   r0   r4   r   r8   r:   r   r   r   test_siftup_multipleh   r>   z$TestMappedQueue.test_siftup_multiplec                 C   s>   dg}dg}|  |}|dd |j|ksJ | | d S r7   )r-   	_siftdownr(   r*   r:   r   r   r   test_siftdown_leafp   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   r-   rE   r5   r(   r*   r:   r   r   r   test_siftdown_singlex      
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   r0   r4      r   )r   r   r   r   r0   r4   rJ   r   r   r   rG   r:   r   r   r   test_siftdown_multiple   rI   z&TestMappedQueue.test_siftdown_multiplec                 C   sF   g d}g d}t  }|D ]}|| q|j|ksJ | | d S )Nr4   r   r   r   r   r0   r   r   r   r   r4   r   r0   r   r   pushr(   r*   r   to_pushr;   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 )NrB   r@   r   rN   r   rQ   r;   r)   r#   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   r4   r   r   r   r0   c                    s   g | ]}   qS r   )pop)r!   _r)   r   r   
<listcomp>   s    z,TestMappedQueue.test_pop.<locals>.<listcomp>)sortedr-   r1   ranger5   r*   )r   r,   h_sortedpoppedr   rX   r   test_pop   s   
zTestMappedQueue.test_popc                 C   6   g d}g d}|  |}|d}|j|ksJ d S )NrM   )r   r   r   r4   r   r0   r   r-   remover(   r   r,   	h_removedr)   removedr   r   r   test_remove_leaf   
   

z TestMappedQueue.test_remove_leafc                 C   r_   )NrM   )r   r   r   r4   r   r0   r   r`   rb   r   r   r   test_remove_root   rf   z TestMappedQueue.test_remove_rootc                 C   8   g d}g d}|  |}|dd}|j|ksJ d S )Nr      
   <      2   (   r      rk   rl   rj   rn   ro   rm   rq   r-   updater(   r   r,   	h_updatedr)   rd   r   r   r   test_update_leaf   
   
z TestMappedQueue.test_update_leafc                 C   rh   )Nri   rk   rj   #   rl   rm   rn   ro   r   ry   rr   rt   r   r   r   test_update_root   rw   z TestMappedQueue.test_update_rootN)__name__
__module____qualname__r   r*   r-   r2   r3   r6   r<   r=   rA   rC   rD   rF   rH   rK   rR   rU   r^   re   rg   rv   rz   r   r   r   r   r   *   s,    		r   c                   @   s4   e Z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,   priority_dictr   r   r   r-      s   z!TestMappedDict._make_mapped_queuec                 C   sJ   g d}g d}t  }|D ]	}|j||d q|j|ksJ | | d S )NrL   rM   priorityrN   rP   r   r   r   rR      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 )NrB   r@   r   r   rN   rS   r   r   r   rU      s   

z"TestMappedDict.test_push_duplicatec                 C   <   g d}g d}|  |}|jdddd}|j|ksJ d S )Nri   rp   rm   rq   r   rr   rt   r   r   r   rv      
   
zTestMappedDict.test_update_leafc                 C   r   )Nri   rx   r   ry   r   rr   rt   r   r   r   rz      r   zTestMappedDict.test_update_rootN)r{   r|   r}   r-   rR   rU   rv   rz   r   r   r   r   r~      s    	r~   )
r   networkx.utils.mapped_queuer   r   r   r   r   r   r   r~   r   r   r   r   <module>   s    	 