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FiftyoneBoundingBox)assert_almost_equalfunction)scopec                 C   s   t j| d|iS )N
image_size)r   from_fiftyone)fiftyone_bboxr    r
   k/home/jeff/fluffinator/venv/lib/python3.10/site-packages/tests/pybboxes/boxes/test_fiftyone_bounding_box.pyfiftyone_bounding_box   s   r   modulec                   C   s   g dS )N)      ?      ?g      ?gUUUUUU?r
   r
   r
   r
   r   fiftyone_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{Gz?   )sizer   )nprandomseeduniformr   r   )r	   r   fiftyone_bbox2r
   r
   r   fiftyone_bounding_box2   s   r   c                   C   s   dS )N)g:5?gP~l$?g:#?g@?r
   r
   r
   r
   r   scaled_fiftyone_box   s   r   c                   C   s   dddddddS )Ni i  i  gђ9?g^L_?i  
total_areaunionintersectioniouratio
differencer
   r
   r
   r
   r   *fiftyone_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   fo_boxr
   r
   r   test_from_array6   s   r0   zbox_values,expected_out)))r   r   g      ?g?)r   r   g      ?g      ?))r   r         ?r1   )        r2   ?r3   ))333333?皙?   ffffff?)r4   r5   r7   g333333?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   r/   r
   r
   r   
test_clamp=   s   	r>   c           
      C   sj   | j \}}}}| j\}}|| || }}| | t| j |dd | j}|| | }	||	 dk s3J d S )NTr8   d   )r;   r   scaler   r'   )
r   r   scale_factor_whimage_widthimage_heightactual_areadesired_arear
   r
   r   
test_scaleL   s   

rI   c                 C   sF   | j \}}}}||d  ||d  ||f}| |}t|j |d d S )Nr   r6   r$   )r;   shiftr   )r   normalized_bbox_shift_amountx_tly_tlrC   rD   r&   r(   r
   r
   r   
test_shift\   s   
rN   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   r.   )r   r   r/   r
   r
   r   test_oobd   s
   rR   c                 C      |   }tt|j|d d S Nr$   )to_albumentationsr   listr;   )r   albumentations_bboxfiftyone2albumentations_bboxr
   r
   r   test_to_albumentationso      rY   c                 C   rS   rT   )to_cocor   rV   r;   )r   	coco_bboxfiftyone2coco_bboxr
   r
   r   test_to_cocot   rZ   r^   c                 C   rS   rT   )to_vocr   rV   r;   )r   voc_bboxfiftyone2voc_bboxr
   r
   r   test_to_vocy   rZ   rb   c                 C   rS   rT   )to_yolor   rV   r;   )r   	yolo_bboxfiftyone2yolo_bboxr
   r
   r   test_to_yolo~   rZ   rf   )numpyr   r*   pybboxesr   r   tests.utilsr   fixturer   r   r   r   r#   r)   r0   markparametrizer>   rI   rN   rR   rY   r^   rb   rf   r
   r
   r
   r   <module>   s8    









