
    uki                     $   d Z ddlZddlmZ ddlmZ ddlZddlZddlm	Z
 ddlmZ dZdZdd	gd
dgddgddgddgd
dgddgddgddgg	ddgddgddgdd gd!d"gd#d$gd%d&gd'd(gd)d*gg	gZ G d+ d,ej"                        Zed-k(  r ej(                          yy).z/Tests for mediapipe.python.solutions.objectron.    N)absltest)parameterized)	objectronz#mediapipe/python/solutions/testdata      i  i  i     i  i  i  P   i  iY     i[  i  ic  H   ia        i  i     i  i     N      i           i  i   Y      c                   J    e Zd Zd Zd Z ej                  dd      d        Zy)ObjectronTestc           	      6   t        j                         5 }| j                  t        d      5  |j	                  t        j                  dt
        j                        j                  ddd             d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz0Input image must contain three channel rgb data.$   dtype      )	mp_objectron	ObjectronassertRaisesRegex
ValueErrorprocessnparangeuint8reshape)selfr   s     d/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/mediapipe/python/solutions/objectron_test.pytest_invalid_image_shapez&ObjectronTest.test_invalid_image_shape(   s    				! JY!!
HJ J"))Bbhh7??1aHIJJ JJ JJ Js#   BAB2BB	BBc                    t        j                         5 }t        j                  g dt        j                        }|j                  d       |j                  |      }| j                  |j                         d d d        y # 1 sw Y   y xY w)N)d   r-   r   r      )	r    r!   r%   zerosr'   fillr$   assertIsNonedetected_objects)r)   r   imageresultss       r*   test_blank_imagezObjectronTest.test_blank_image.   sh    				! 2Yhh}BHH5ejjo!!%(g
001	2 2 2s   A%BB)static_image_modeT   )
video_modeF   c           	         t         j                  j                  t         j                  j                  t              d      }t        j                  |      }t        j                  |dd      5 }t        |      D ]p  }|j                  t        j                  |t
        j                              }g }|j                  D ]  }	|	j                  }
| j                  |
j                   d       |
j                   D cg c]  }|j"                   }}|
j                   D cg c]  }|j$                   }}t'        j(                  t'        j*                  ||f            |j,                  dd z  }|j/                  |        | j                  |d       t'        j0                  t'        j2                  |      t'        j2                  t4              z
        }t7        j8                  |t:               s 	 d d d        y c c}w c c}w # 1 sw Y   y xY w)Nztestdata/shoes.jpg   g      ?)r6   max_num_objectsmin_detection_confidence	   r   )ospathjoindirname__file__cv2imreadr    r!   ranger$   cvtColorCOLOR_BGR2RGBr2   landmarks_2d	assertLenlandmarkxyr%   	transposestackshapeappendabsasarray#EXPECTED_BOX_COORDINATES_PREDICTIONnptassert_array_lessDIFF_THRESHOLD)r)   r6   
num_frames
image_pathr3   r   _r4   multi_box_coordinatesdetected_object	landmarksrK   rL   rM   box_coordinatesprediction_errors                   r*   test_multi_objectsz ObjectronTest.test_multi_objects5   s    bggooh79MNJJJz"E			+!$
& @ *3Z  @!##CLL8I8I$JK "&77 	8O%22)
..++Q
/*3*<*<=hxzz=!=*3*<*<=hxzz=!=LL1a&)9:U[[1=MM/

&
&
7	8 	,a066JJ,-JJ:;<= 	.?@	@ @ >=@ @s,   /B
H9G9
HG>
/C H9
HHN)__name__
__module____qualname__r+   r5   r   named_parametersr`        r*   r   r   &   s6    J2 "=!!"@":<@<@rf   r   __main__)__doc__r?   absl.testingr   r   rD   numpyr%   numpy.testingtestingrU   mediapipe.python.solutionsr   r    TEST_IMAGE_PATHrW   rT   TestCaser   ra   mainre   rf   r*   <module>rq      s    6 	 ! & 
   A7),c
S#Jc
),c
RISz),c
S#JS	(K *-c
S#Jc
),c
RISz),c
S#JS	(K'L #'@M** '@T z(--/ rf   