
    Wpf"W                     "   d Z ddlZddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ej        Zej        Zej        Zej        Z G d dej                  Zedk    r ej                     dS dS )z6Tests for mediapipe.python._framework_bindings.packet.    N)absltest)text_format)detection_pb2)packet_creator)packet_getter)calculator_graph)image)image_frame)packetc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%
PacketTestc                 z    t          j                    }|                     |                                           d S )N)r   Packet
assertTrueis_emptyselfps     \/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/mediapipe/python/packet_test.pytest_empty_packetzPacketTest.test_empty_packet(   s-    AOOAJJLL!!!!!    c                     t          j        d          }d|_        |                     t	          j        |          d           |                     |j        d           d S )NTr   )r   create_bool	timestampassertEqualr   get_boolr   s     r   test_boolean_packetzPacketTest.test_boolean_packet,   sX    "4((AAK]+A..555Q[!$$$$$r   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nexeceeds the maximum value        *   r      )
assertRaisesRegexOverflowErrorr   
create_intr   r   r   get_intnpintcr   r   p2s      r   test_int_packetzPacketTest.test_int_packet2   s,   			/K	L	L + +

#E
*
*a+ + + + + + + + + + + + + + +!"%%AAK]*1--r222Q[!$$$		"271::	.	.BBL]*2..222R\1%%%%%   =AAc                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr         r   r"   )
r#   r$   r   create_int8r   r   r   r&   r'   int8r)   s      r   test_int8_packetzPacketTest.test_int8_packet>   s,   			/K	L	L + +

$T
*
*a+ + + + + + + + + + + + + + +"8,,AAK]*1--x888Q[!$$$		#BGAJJ	/	/BBL]*2..222R\1%%%%%r,   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr   i   i  r   r"   )
r#   r$   r   create_int16r   r   r   r&   r'   int16r)   s      r   test_int16_packetzPacketTest.test_int16_packetJ   s,   			/K	L	L - -

%e
,
,a- - - - - - - - - - - - - - -#I..AAK]*1--y999Q[!$$$		$RXa[[	1	1BBL]*2..222R\1%%%%%r,   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr   l        ir   r"   )
r#   r$   r   create_int32r   r   r   r&   r'   int32r)   s      r   test_int32_packetzPacketTest.test_int32_packetV   s.   			/K	L	L - -

%e
,
,a- - - - - - - - - - - - - - - 	#I..AAK]*1--y999Q[!$$$		$RXa[[	1	1BBL]*2..222R\1%%%%%r,   c                    t          j        d          }d|_        |                     t	          j        |          d           |                     |j        d           t          j        t          j        d                    }d|_        |                     t	          j        |          d           |                     |j        d           d S )Nl    r   r"   )r   create_int64r   r   r   r&   r'   int64r)   s      r   test_int64_packetzPacketTest.test_int64_packetc   s    #I..AAK]*1--y999Q[!$$$		$RXa[[	1	1BBL]*2..222R\1%%%%%r   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr         r   r"   )
r#   r$   r   create_uint8r   r   r   get_uintr'   uint8r)   s      r   test_uint8_packetzPacketTest.test_uint8_packetm   s,   			/K	L	L , ,

%d
+
+a, , , , , , , , , , , , , , ,#H--AAK]+A..999Q[!$$$		$RXa[[	1	1BBL]+B//333R\1%%%%%r,   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr   i     r   r"   )
r#   r$   r   create_uint16r   r   r   rC   r'   uint16r)   s      r   test_uint16_packetzPacketTest.test_uint16_packety   ,   			/K	L	L . .

&u
-
-a. . . . . . . . . . . . . . .$Y//AAK]+A..	:::Q[!$$$		%bill	3	3BBL]+B//333R\1%%%%%r,   c                 0   |                      t          d          5  t          j        d          }d d d            n# 1 swxY w Y   t          j        d          }d|_        |                     t          j        |          d           |                     |j        d           t          j        t          j	        d                    }d|_        |                     t          j        |          d           |                     |j        d           d S )Nr   r    l    r   r"   )
r#   r$   r   create_uint32r   r   r   rC   r'   uint32r)   s      r   test_uint32_packetzPacketTest.test_uint32_packet   rK   r,   c                    t          j        d          }d|_        |                     t	          j        |          d           |                     |j        d           t          j        t          j        d                    }d|_        |                     t	          j        |          d           |                     |j        d           d S )Nl    r   r"   )r   create_uint64r   r   r   rC   r'   uint64r)   s      r   test_uint64_packetzPacketTest.test_uint64_packet   s    $Y//AAK]+A..	:::Q[!$$$		%bill	3	3BBL]+B//333R\1%%%%%r   c                    t          j        d          }d|_        |                     t	          j        |          d           |                     |j        d           t          j        t          d                    }d|_        |                     t	          j        |          d           |                     |j        d           d S NzG?r   )r   create_floatr   assertAlmostEqualr   	get_floatr   floatr)   s      r   test_float_packetzPacketTest.test_float_packet   s    #D))AAK=2155t<<<Q[!$$$		$U4[[	1	1BBL=2266===R\1%%%%%r   c                    t          j        d          }d|_        |                     t	          j        |          d           |                     |j        d           t          j        t          j        d                    }d|_        |                     t	          j        |          d           |                     |j        d           d S rU   )	r   create_doubler   rX   r   rY   r   r'   doubler)   s      r   test_double_packetzPacketTest.test_double_packet   s    $T**AAK=2155t<<<Q[!$$$		%bioo	6	6BBL=2266===R\1%%%%%r   c                     t          j                    }t          j        d|           t	          j        |                              d          }d S )Nz
score: 0.5d   )r   	Detectionr   Parser   create_protoat)r   	detectionr   s      r   test_detection_proto_packetz&PacketTest.test_detection_proto_packet   sE    '))IlI...#I..11#66AAAr   c                    t          j        d                              d          }|                     t	          j        |          d           |                     |j        d           d|_        |                     |j        d           d S )Nabcra      )r   create_stringre   r   r   get_strr   r   s     r   test_string_packetzPacketTest.test_string_packet   s~    $U++..s33A]*1--u555Q[#&&&AKQ[#&&&&&r   c                     t          j        d                              d          }|                     t	          j        |          d           |                     |j        d           d S )Ns   xd0i,  )r   rk   re   r   r   	get_bytesr   r   s     r   test_bytes_packetzPacketTest.test_bytes_packet   s_    $^4477<<A],Q//@@@Q[#&&&&&r   c                     t          j        g d                              d          }|                     |j        d           d S N)r"         ra   )r   create_int_arrayre   r   r   r   s     r   test_int_array_packetz PacketTest.test_int_array_packet   sB    '			2255c::AQ[#&&&&&r   c                     t          j        g d                              d          }|                     |j        d           d S )N皙?皙?333333?ra   )r   create_float_arrayre   r   r   r   s     r   test_float_array_packetz"PacketTest.test_float_array_packet   sB    )///::==cBBAQ[#&&&&&r   c                     t          j        g d                              d          }|                     t	          j        |          g d           |                     |j        d           d S rr   )r   create_int_vectorre   r   r   get_int_listr   r   s     r   test_int_vector_packetz!PacketTest.test_int_vector_packet   sg    (3366s;;A]/22III>>>Q[#&&&&&r   c                 ^   t          j        g d                              d          }t          j        |          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |j        d           d S )	Nrx   ra   r   ry   r"   rz   rs   r{   )r   create_float_vectorre   r   get_float_listrX   r   r   r   r   output_lists      r   test_float_vector_packetz#PacketTest.test_float_vector_packet   s    *???;;>>sCCA.q11K;q>3///;q>3///;q>3///Q[#&&&&&r   c                    d\  }}}t           j                            d||dft           j                  }t	          j        t          t          j        |          t          t          j        t          j	        ||| || d d f                             g          
                    d          }t          j        |          }|                     |d           |                     t          j        |d                                         |                     |                     t          j        |d	                                         ||| || d d f                              |                     |j        d           d S )
N)P   (   
   rA   rt   sizedtypeimage_formatdatara   rs   r   r"   )r'   randomrandintrD   r   create_image_vectorImageImageFormatSRGBascontiguousarrayre   r   get_image_list	assertLenr   array_equal
numpy_viewr   r   )r   whoffsetmatr   r   s          r   test_image_vector_packetz#PacketTest.test_image_vector_packet   s   LAq&
)

HAq!9BH

E
EC*;+#666$)%c&&.&&.!!!*K&LMM	O 	O 	O, 	 	
 
r#ww   .q11KNN;"""OOBN;q>#<#<#>#>DDEEEOO
{1~0022Cw8>w9J 5K 	L 	LM M M 	Q[#&&&&&r   c                 ^   t          j        g d                              d          }t          j        |          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |j        d           d S )	N)abcra   r   r   r"   r   rs   r   )r   create_string_vectorre   r   get_str_listr   r   r   s      r   test_string_vector_packetz$PacketTest.test_string_vector_packet   s    +OOO<<??DDA,Q//K[^S)))[^S)))[^S)))Q[#&&&&&r   c                 8   t          j        t          j        d          t          j        d          t          j        d          g                              d          }t          j        |          }|                     t          j	        |d                   d           | 
                    t          j        |d                   d           | 
                    t          j        |d                   d           | 
                    |j        d           d S )NrV   r!   42ra   r   r"   rs   )r   create_packet_vectorrW   r%   rk   re   r   get_packet_listrX   rY   r   r&   rl   r   r   s      r   test_packet_vector_packetz$PacketTest.test_packet_vector_packet   s    +#D))!"%%$T**- 	 	 
r#ww	 
  /22K=2;q>BBDIII]*;q>::B???]*;q>::DAAAQ[#&&&&&r   c                 :   t          j        t          j        d          t          j        d          t          j        d          d                              d          }t          j        |          }|                     t          j	        |d                   d           | 
                    t          j        |d                   d           | 
                    t          j        |d                   d           | 
                    |j        d           d S )	NrV   r!   r   )rZ   intstringra   rZ   r   r   )r   create_string_to_packet_maprW   r%   rk   re   r   get_str_to_packet_dictrX   rY   r   r&   rl   r   r   s      r    test_string_to_packet_map_packetz+PacketTest.test_string_to_packet_map_packet   s    2,T22(,, .t444 4 	 	 
r#ww	 
  6q99K=2;w3GHH$OOO]*;u+=>>CCC]*;x+@AA4HHHQ[#&&&&&r   c                    t           j                            dt          j        dd          t          j        dd          dft           j                  }t          j        t          j        t          j	        j
        |                    }t          j        |          }|                     t          j        |                                |                     t          j        t#          t          j
        |                    }t          j        |          }|                     t          j        |                                |                     d S )NrA   rt   ra   r   r   )r'   r   r   	randrangerD   r   create_image_framer
   
ImageFramer   r   r   get_image_framer   r   r   create_imager   	get_image)r   	uint8_imgimage_frame_packetoutput_image_frameimage_packetoutput_images         r   test_uint8_image_packetz"PacketTest.test_uint8_image_packet  s(   	!!q#&&(8C(@(@!Dh "  I (:$05I	G 	G 	GH H '67IJJOOBN#5#@#@#B#BINNOOO!.;+)<<<> >L *<88LOOBN<#:#:#<#<iHHIIIIIr   c                    t           j                            dt          j        dd          t          j        dd          dft           j                  }t          j        t          t          j	        |                    }t          j        |          }|                     t          j        |                                |                     t          j        t!          t          j	        |                    }t          j        |          }|                     t          j        |                                |                     d S )NrG   rt   ra      r   r   )r'   r   r   r   rI   r   r   r   r   SRGBA64r   r   r   r   r   r   r   r   )r   
uint16_imgr   r   r   r   s         r   test_uint16_image_packetz#PacketTest.test_uint16_image_packet  s   ""q#&&(8C(@(@!Di #  J (: 3*EEEG G&67IJJOOBN#5#@#@#B#BJOOPPP!.;.Z@@@B BL *<88LOOBN<#:#:#<#<jIIJJJJJr   c           	         t          j        t           j                            t          j        dd          t          j        dd          df                    }t          j        t          t          j	        |                    }t          j        |          }|                     t          j        |                                |                     t          j        t!          t          j	        |                    }t          j        |          }|                     t          j        |                                |                     d S )Nrt   ra   rs   r   )r'   float32r   random_sampler   r   r   r   r   VEC32F2r   r   r   allcloser   r   r   r   r   )r   	float_imgr   r   r   r   s         r   test_float_image_frame_packetz(PacketTest.test_float_image_frame_packet#  s   

	a%%v'73'?'?C	E 	EF FI (: 3)DDDF F&67IJJOOBK 2 = = ? ?KKLLL!.;.Y???A AL *<88LOOBN<#:#:#<#<iHHIIIIIr   c                    t          j        dd          t          j        dd          d}}}t          j                             d|||ft          j                  }|                     |j        j                   t          j	        |          }t          j        t          j        |          }|                     t          j	        |          |           |d d d d d d df         }|                     |j        j                   t          j	        |          }t          j        t          j        |          }|                     t          j	        |          |           t!          j        |          }|                     |j        |           |                     |j        |           |                     |j        |           |                     t          j        |                                |                     ~~t/          j                     |                     t          j	        |          |           d S Nrt   ra   rA   r   r   )r   r   r'   r   rD   r   flagsc_contiguoussysgetrefcountr   r   r   r   r   assertFalser   r   heightwidthchannelsr   r   gccollect)r   r   r   r   rgb_datainitial_ref_countr   output_frames           r   *test_image_frame_packet_creation_copy_modez5PacketTest.test_image_frame_packet_creation_copy_mode0  s   %a--v/?3/G/G(qAy  Aq(+;28 LLHOOHN/00011) %H	6 	6 	6A 	S_X..0ABBB111ddd
#HX^011111) %H	6 	6 	6A 	S_X..0ABBB 033L\(!,,,\'+++\*H555OOBN<#:#:#<#<hGGHHH	JLLL 	S_X..0ABBBBBr   c                 |   t          j        dd          t          j        dd          d}}}t          j                             d|||ft          j                  }d|j        _        t          j        |          }t          j
        t          j        |          }|                     t          j        |          |dz              ~t          j                     |                     t          j        |          |           t          j        |          }|                     t          j        |          |           d}t#          |	          }	|	                    d
t          j
        t          j        |          i           |                     t          j        |          |dz              |	                                 |	                    d          }
~~	t          j                     |                     t          j        t/          j        |
                                          |                     d S Nrt   ra   rA   r   Fr   r"   z
      node {
        calculator: 'PassThroughCalculator'
        input_side_packet: "in"
        output_side_packet: "out"
      }
    )graph_configin)input_side_packetsout)r   r   r'   r   rD   r   	writeabler   r   r   r   r   r   r   r   r   copyCalculatorGraph	start_runwait_until_doneget_output_side_packetr   r   r   r   r   )r   r   r   r   r   r   r   rgb_data_copytext_configgraphoutput_packets              r   /test_image_frame_packet_creation_reference_modez:PacketTest.test_image_frame_packet_creation_reference_modeQ  s   %a--v/?3/G/G(qAy  Aq(+;28 LLH$HN11': %H6 6 6 	S_X..0AA0EFFFJLLLS_X..0ABBBGH%%MS_X..0ABBBK 555E	OO1!,!1B B B
     	S_X..0AA0EFFF	0077MJLLL 	OO
)-88CCEE	 	    r   c           	         t          j        dd          t          j        dd          d}}}d\  }}t          j                             d|||ft          j                  }t          j        |          }t          j        t          j
        ||| || d d f                   }|                     t          j        |          |           t          j        |          }|                     |j        |d|z  z
             |                     |j        |d|z  z
             |                     |j        |           |                     t          j        ||| || d d f         |                                                     ~~t)          j                     |                     t          j        |          |           d S 	Nr   ra   rt   )rt   r   rA   r   r   rs   )r   r   r'   r   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   s	            r   3test_image_frame_packet_copy_creation_with_croppingz>PacketTest.test_image_frame_packet_copy_creation_with_cropping}  s   %b#..0@S0I0I1(qAHfy  Aq(+;28 LLH11) %ffWnffWnaaa78	: 	: 	:A 	S_X..0ABBB 033L\(!a&j.999\'QZ888\*H555OO
xww AB#..00	2 	23 3 3 	
JLLL 	S_X..0ABBBBBr   c                    t          j        dd          t          j        dd          d}}}t          j                             d|||ft          j                  }|                     |j        j                   t          j	        |          }t          j        t          j        |          }|                     t          j	        |          |           |d d d d d d df         }|                     |j        j                   t          j	        |          }t          j        t          j        |          }|                     t          j	        |          |           t!          j        |          }|                     |j        |           |                     |j        |           |                     |j        |           |                     t          j        |                                |                     ~~t/          j                     |                     t          j	        |          |           d S r   )r   r   r'   r   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   s           r   $test_image_packet_creation_copy_modez/PacketTest.test_image_packet_creation_copy_mode  s   %a--v/?3/G/G(qAy  Aq(+;28 LLHOOHN/00011# %H	6 	6 	6A 	S_X..0ABBB111ddd
#HX^011111# %H	6 	6 	6A 	S_X..0ABBB *1--L\(!,,,\'+++\*H555OOBN<#:#:#<#<hGGHHH	JLLL 	S_X..0ABBBBBr   c                 |   t          j        dd          t          j        dd          d}}}t          j                             d|||ft          j                  }d|j        _        t          j        |          }t          j
        t          j        |          }|                     t          j        |          |dz              ~t          j                     |                     t          j        |          |           t          j        |          }|                     t          j        |          |           d}t#          |	          }	|	                    d
t          j
        t          j        |          i           |                     t          j        |          |dz              |	                                 |	                    d          }
~~	t          j                     |                     t          j        t/          j        |
                                          |                     d S r   )r   r   r'   r   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   s              r   )test_image_packet_creation_reference_modez4PacketTest.test_image_packet_creation_reference_mode  s   %a--v/?3/G/G(qAy  Aq(+;28 LLH$HN11!. %H6 6 6L 	S_X..0AA0EFFFJLLLS_X..0ABBBGH%%MS_X..0ABBBK 555E	OO+!,!1B B B
     	S_X..0AA0EFFF	0077MJLLL 	OO
#M22==??	P 	PQ Q Q Q Qr   c           	         t          j        dd          t          j        dd          d}}}d\  }}t          j                             d|||ft          j                  }t          j        |          }t          j        t          j
        ||| || d d f                   }|                     t          j        |          |           t          j        |          }|                     |j        |d|z  z
             |                     |j        |d|z  z
             |                     |j        |           |                     t          j        ||| || d d f         |                                                     ~~t)          j                     |                     t          j        |          |           d S r   )r   r   r'   r   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   s	            r   -test_image_packet_copy_creation_with_croppingz8PacketTest.test_image_packet_copy_creation_with_cropping  s   %b#..0@S0I0I1(qAHfy  Aq(+;28 LLH11# %ffWnffWnaaa78	: 	: 	:A 	S_X..0ABBB *1--L\(!a&j.999\'QZ888\*H555OO
xww AB#..00	2 	23 3 3 	
JLLL 	S_X..0ABBBBBr   c           
         t          j        g dg dg          }t          j        |          }t	          j        |          }|                     |t          j        |                     t          j        |          }~t          j
                     |                     t          j        |t          j        g dg dg                               d S )Nrx   g?g      ?g333333?)r'   arrayr   r   r   create_matrixr   r   
get_matrixr   r   r   r   )r   	np_matrixr   r   output_matrixs        r   test_matrix_packetzPacketTest.test_matrix_packet  s    ,,,566I	22$Y//A&	(B(BCCC!,Q//MJLLLOO
M28\\\<<<,H#I#IJJL L L L Lr   c           
         t          j        g dg dg          d d d d df         }|                     |j        j                   t          j        |          }t          j        |          }| 	                    |t          j        |                     t          j        |          }~t          j                     |                     t          j        |t          j        g dg dg          d d d d df                              d S )Nrx   r   r   )r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   s        r   -test_matrix_packet_with_non_c_contiguous_dataz8PacketTest.test_matrix_packet_with_non_c_contiguous_data  s   ,,,566qqq$$B$w?IY_1222$Y//A	22&	(B(BCCC!,Q//MJLLLOO
MHlllLLL9::111ddd7C	E 	EF F F F Fr   N)&__name__
__module____qualname__r   r   r+   r2   r6   r:   r>   rE   rJ   rO   rS   r[   r_   rg   rm   rp   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   &   sE       " " "% % %
& 
& 
&
& 
& 
&
& 
& 
&& & && & &
& 
& 
&
& 
& 
&
& 
& 
&& & && & && & &7 7 7
' ' '' ' '
' ' '' ' '' ' '
' ' '' ' '"' ' '
' 
' 
'
' 
' 
'J J JK K KJ J JC C CB* * *XC C C0C C CB)Q )Q )QVC C C0
L 
L 
LF F F F Fr   r   __main__)__doc__r   r   r   absl.testingr   numpyr'   google.protobufr   mediapipe.framework.formatsr   mediapipe.pythonr   r   $mediapipe.python._framework_bindingsr   r	   r
   r   r   r   r   r   TestCaser   r  mainr  r   r   <module>r     sY   = < 				  



 ! ! ! ! ! !     ' ' ' ' ' ' 5 5 5 5 5 5 + + + + + + * * * * * * A A A A A A 6 6 6 6 6 6 < < < < < < 7 7 7 7 7 7"2%#
lF lF lF lF lF" lF lF lF\ z(-///// r   