o
    jĎi                      @   s   d dl Zd dlZd dlmZmZ d dlmZ ejdddd Z	ejddd	d
 Z
ejdddd Ze dd Zejdddd Zdd Zdd Zejdg d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 )'    N)BoundingBoxCocoBoundingBox)assert_almost_equalfunction)scopec                 C   s   t j| d|iS )N
image_size)r   	from_coco)	coco_bboxr    r
   g/home/jeff/fluffinator/venv/lib/python3.10/site-packages/tests/pybboxes/boxes/test_coco_bounding_box.pycoco_bounding_box   s   r   modulec                   C   s   g dS )N)d   i   i  i  r
   r
   r
   r
   r   coco_oob_bounding_box   s   r   c                 C   s2   t jd | t jjdddd }tj|d|iS )N*         )sizer   )nprandomseedrandintr   r   )r	   r   
coco_bbox2r
   r
   r   coco_bounding_box2   s   r   c                   C   s   dS )N)   ij     S   r
   r
   r
   r
   r   scaled_coco_box   s   r   c                   C   s   dddddddS )Ni% i  i  g"OjI?gE5	?i8  
total_areaunionintersectioniouratio
differencer
   r
   r
   r
   r   &coco_area_computations_expected_output   s   r'   c                 C   s@   | j |j  | | | | | || | | | d}t||d d S )Nr    actualdesired)arear$   r   )r   r   r'   actual_outputr
   r
   r   test_area_computations*   s   
r-   c                 C   sJ   t t tj| |d}W d    n1 sw   Y  |jdu s#J d S )N)r   F)pytestwarnsFutureWarningr   
from_arrayis_oob)r	   r   coco_boxr
   r
   r   test_from_array6   s   r4   zbox_values,expected_out)))  ^  i  i  )r5   r6   ir     ))r8   iV     )r   r   i$     ))      i  iD  )r;   r<   i  iJ  c                 C   s*   t | d|i}|  t|j|dd d S )Nr   Tr)   r*   ignore_numeric_type_changes)r   clampr   values)
box_valuesexpected_outr   r3   r
   r
   r   
test_clamp=   s   	rC   c                 C   sN   | j \}}}}| | t| j |dd | j}|| | }|| dk s%J d S )NTr=   r   )r@   scaler   r+   )r   r   scale_factor_whactual_areadesired_arear
   r
   r   
test_scaleL   s   
rK   c                 C   sN   | j \}}}}||d  ||d  ||f}| |}tt|j t|d d S )Nr      r(   )r@   shiftr   list)r   unnormalized_bbox_shift_amountx_tly_tlrG   rH   r*   r,   r
   r
   r   
test_shiftX   s   
rR   c                 C   s^   t t tj| |dd W d    n1 sw   Y  tj| d|i}|jdu s-J d S )NT)r   strictr   )r.   raises
ValueErrorr   r   r2   )r   r   r3   r
   r
   r   test_oob`   s
   rV   c                 C      |   }tt|j|d d S Nr(   )to_albumentationsr   rN   r@   )r   albumentations_bboxcoco2albumentations_bboxr
   r
   r   test_to_albumentationsk      r\   c                 C   rW   rX   )to_fiftyoner   rN   r@   )r   fiftyone_bboxcoco2fiftyone_bboxr
   r
   r   test_to_fiftyonep   r]   ra   c                 C   rW   rX   )to_vocr   rN   r@   )r   voc_bboxcoco2voc_bboxr
   r
   r   test_to_vocu   r]   re   c                 C   rW   rX   )to_yolor   rN   r@   )r   	yolo_bboxcoco2yolo_bboxr
   r
   r   test_to_yoloz   r]   ri   )numpyr   r.   pybboxesr   r   tests.utilsr   fixturer   r   r   r   r'   r-   r4   markparametrizerC   rK   rR   rV   r\   ra   re   ri   r
   r
   r
   r   <module>   s8    









