o
    jĎi4                     @   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 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)AlbumentationsBoundingBoxBoundingBox)assert_almost_equalfunction)scopec                 C   s   t j| d|iS )N
image_size)r   from_albumentations)albumentations_bboxr    r
   q/home/jeff/fluffinator/venv/lib/python3.10/site-packages/tests/pybboxes/boxes/test_albumentations_bounding_box.pyalbumentations_bounding_box   s   r   modulec                   C   s   g dS )N      ?      ?      ?g?r
   r
   r
   r
   r   albumentations_oob_bounding_box   s   r   c                 C   s2   t jd | t jjdddd }tj|d|iS )N*   皙g?   )sizer   )nprandomseeduniformr   r   )r	   r   albumentations_bbox2r
   r
   r   albumentations_bounding_box2   s   r   c                   C      dS N)g:5?gP~l$?gg?g}N`?r
   r
   r
   r
   r   scaled_albumentations_box      r   c                   C   r   r   r
   r
   r
   r
   r   clamped_albumentations_box   r    r!   c                   C   s   dddddddS )Ni ip  i~w  g81?gFx?i  
total_areaunionintersectioniouratio
differencer
   r
   r
   r
   r   0albumentations_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   alb_boxr
   r
   r   test_from_array=   s   r6   zbox_values,expected_out))r   )r   r   r      ))r   r         ?r8   )        r9   r8   r8   ))333333?皙?gp=
ף?ffffff?)r:   r;   g      ?r<   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   r5   r
   r
   r   
test_clampD   s   	rC   c                 C   sr   | j \}}}}| j\}}|| | || | }	}
| | t| j |dd | j}|	|
 | }|| dk s7J d S )NTr=   d   )r@   r   scaler   r-   )r   r   scale_factorx_tly_tlx_bry_brimage_widthimage_heightwhactual_areadesired_arear
   r
   r   
test_scaleS   s   

rQ   c                 C   sX   | j \}}}}||d  ||d  ||d  ||d  f}| |}t|j |dd d S )Nr   r7      )r+   r,   decimal)r@   shiftr   )r   normalized_bbox_shift_amountrG   rH   rI   rJ   r,   r.   r
   r
   r   
test_shiftc   s   




rV   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   )r0   raises
ValueErrorr   r   r4   )r   r   r5   r
   r
   r   test_oobp   s
   rZ   c                 C      |   }tt|j|d d S Nr*   )to_cocor   listr@   )r   	coco_bboxalb2coco_bboxr
   r
   r   test_to_coco{      ra   c                 C   r[   r\   )to_fiftyoner   r^   r@   )r   fiftyone_bboxalb2fiftyone_bboxr
   r
   r   test_to_fiftyone   rb   rf   c                 C   r[   r\   )to_vocr   r^   r@   )r   voc_bboxalb2voc_bboxr
   r
   r   test_to_voc   rb   rj   c                 C   r[   r\   )to_yolor   r^   r@   )r   	yolo_bboxalb2yolo_bboxr
   r
   r   test_to_yolo   rb   rn   )numpyr   r0   pybboxesr   r   tests.utilsr   fixturer   r   r   r   r!   r)   r/   r6   markparametrizerC   rQ   rV   rZ   ra   rf   rj   rn   r
   r
   r
   r   <module>   s<    










