a
    yµÿfä  ã                   @   sx   d dl Z d dlZd dlmZmZ d dlmZ dZdZej	j
dd„ ƒZej	j
dd	„ ƒZej	j
d
d„ ƒZej	j
dd„ ƒZdS )é    N)ÚYOLOÚ	solutions)Úsafe_downloadzThttps://github.com/ultralytics/assets/releases/download/v0.0.0/solutions_ci_demo.mp4zXhttps://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_pose_demo.mp4c                  C   s  t td tdƒ} | j}t d¡}| ¡ s2J dƒ‚g d¢}tj||dd}tj	tj
|dd}tj||dd}tj||dd	}| ¡ rð| ¡ \}}	|s–qð|	 ¡ }
| j|	d
dd}| |
 ¡ |¡}| |
 ¡ |¡}| |
 ¡ |¡}| |
 ¡ |¡}q|| ¡  t ¡  dS )zRTest the object counting, heatmap, speed estimation and queue management solution.©Úurlz
yolo11n.ptúsolutions_ci_demo.mp4úError reading video file))é   i  )é8  i”  )r
   éh  )r	   r   F)Úreg_ptsÚnamesÚview_img)Zcolormapr   r   )r   r   r   T)ZpersistÚshowN)r   ÚMAJOR_SOLUTIONS_DEMOr   r   Úcv2ÚVideoCaptureÚisOpenedr   ZObjectCounterZHeatmapZCOLORMAP_PARULAZSpeedEstimatorZQueueManagerÚreadÚcopyÚtrackÚstart_countingZgenerate_heatmapZestimate_speedZprocess_queueÚreleaseÚdestroyAllWindows)Úmodelr   ÚcapZregion_pointsÚcounterZheatmapÚspeedÚqueueÚsuccessÚim0Zoriginal_im0ZtracksÚ_© r"   úP/var/www/html/django/DPS/env/lib/python3.9/site-packages/tests/test_solutions.pyÚtest_major_solutions   s,    

r$   c                  C   sŠ   t td tdƒ} t d¡}| ¡ s,J dƒ‚tjddg d¢d}| ¡ rv| ¡ \}}|sZqv| j	|d	d
}| 
||¡}q@| ¡  t ¡  dS )z&Test the workouts monitoring solution.r   zyolo11n-pose.ptzsolution_ci_pose_demo.mp4r   é   Zsquat)é   é   é   )Zline_thicknessZ	pose_typeZkpts_to_checkF)ÚverboseN)r   ÚWORKOUTS_SOLUTION_DEMOr   r   r   r   r   ZAIGymr   r   r   r   r   )r   r   Z
gym_objectr   r    Úresultsr!   r"   r"   r#   Ú
test_aigym(   s    

r,   c                  C   sæ   ddl m} m} tdƒ}|j}t d¡}| ¡ s8J dƒ‚| ¡ rÒ| ¡ \}}|sRqÒ| 	|¡}| |dd}|d j
dur8|d jj ¡  ¡ }	|d j
j}
t|
|	ƒD ].\}}|t|ƒd	ƒ}|j|||t|ƒ d
 q q8| ¡  t ¡  dS )z(Test the instance segmentation solution.r   )Ú	AnnotatorÚcolorszyolo11n-seg.ptr   r   r%   )Ú
line_widthNT)ÚmaskZ
mask_colorÚlabel)Zultralytics.utils.plottingr-   r.   r   r   r   r   r   r   ZpredictÚmasksZboxesÚclsÚcpuÚtolistZxyÚzipÚintZseg_bboxr   r   )r-   r.   r   r   r   r   r    r+   Z	annotatorZclssr2   r0   r3   Úcolorr"   r"   r#   Útest_instance_segmentation:   s&    

r9   c                   C   s   t  ¡  dS )z/Test streamlit predict live inference solution.N)r   Z	inferencer"   r"   r"   r#   Útest_streamlit_predictS   s    r:   )r   ZpytestZultralyticsr   r   Zultralytics.utils.downloadsr   r   r*   ÚmarkZslowr$   r,   r9   r:   r"   r"   r"   r#   Ú<module>   s   


