Ë
    Fêñie  ã                   ó„  — d dl Z d dlmZ d dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZ deddfd	„Zd'd
„Zej,                  j/                  de
«      dedededdfd„«       Zej,                  j/                  de
«      dedededdfd„«       Zej,                  j/                  de
«      dedededdfd„«       Zej,                  j/                  de	«      deddfd„«       Zej,                  j9                  e d¬«      dedz  dfdedededdfd„«       Zej,                  j9                  ej<                  d¬«      ej,                  j9                  ej>                  xr exr ed¬«      dedz  dfdedededdfd„«       «       Z d'd„Z!ej,                  jD                  ej,                  j/                  de
«      ej,                  j9                  e d ¬«      ej,                  j9                  ed!k  d"¬«      dedededdfd#„«       «       «       «       Z#ej,                  j/                  d$g d%¢«      d$eddfd&„«       Z$y)(é    N)ÚPath)ÚImage)ÚCUDA_DEVICE_COUNTÚCUDA_IS_AVAILABLEÚMODELSÚTASK_MODEL_DATA)ÚARM64ÚASSETSÚLINUXÚWEIGHTS_DIRÚchecks)Ú
TORCH_1_11ÚcmdÚreturnc                 óN   — t        j                  | j                  «       d¬«       y)z)Execute a shell command using subprocess.T)ÚcheckN)Ú
subprocessÚrunÚsplit)r   s    úP/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/tests/test_cli.pyr   r      s   € ä‡N�N�3—9‘9“; dÖ+ó    c                  ór   — t        d«       t        d«       t        d«       t        d«       t        d«       y)z?Test various special command-line modes for YOLO functionality.z	yolo helpzyolo checkszyolo versionzyolo settings resetzyolo cfgN©r   © r   r   Útest_special_modesr      s*   € äˆÔÜˆÔÜˆÔÜÐÔÜˆ
…Or   ztask,model,dataÚtaskÚmodelÚdatac           	      ó.   — t        d| › d|› d|› d�«       y)z=Test YOLO training for different tasks, models, and datasets.úyolo train ú model=ú data=z imgsz=32 epochs=1 cache=diskNr   ©r   r   r   s      r   Ú
test_trainr$      s"   € ô ˆ+�d�V˜7 5 '¨°¨vÐ5RÐSÕTr   c                 óB   — dD ]  }t        d| › d|› d|› d|› d�	«       Œ y)zWTest YOLO validation process for specified task, model, and data using a shell command.¾   FTz	yolo val r!   r"   z/ imgsz=32 save_txt save_json visualize end2end=z max_det=100 agnostic_nmsNr   ©r   r   r   Úend2ends       r   Útest_valr)   "   sD   € ð !ò 
ˆÜØ˜�v˜W U G¨6°$°Ð7fÐgnÐfoð  pIð  Jõ	
ñ
r   c                 óJ   — dD ]  }t        d| › d|› dt        › d|› d�	«       Œ  y)zLTest YOLO prediction on provided sample assets for specified task and model.r&   zyolo z predict model=ú source=z4 imgsz=32 save save_crop save_txt visualize end2end=ú max_det=100N©r   r
   r'   s       r   Útest_predictr.   +   sD   € ð !ò 
ˆÜØ�D�6˜¨¨¨x¼°xÐ?sÐt{Ðs|ð  }Ið  Jõ	
ñ
r   c                 ó6   — dD ]  }t        d| › d|› d�«       Œ y)z2Test exporting a YOLO model to TorchScript format.r&   zyolo export model=z% format=torchscript imgsz=32 end2end=r,   Nr   )r   r(   s     r   Útest_exportr0   4   s/   € ð !ò dˆÜÐ   Ð'LÈWÈIÐUaÐbÕcñdr   zRTDETR requires torch>=1.11)ÚreasonÚdetectzrtdetr-l.ptz
coco8.yamlc           	      óf   — t        d| › d|› dt        dz  › d�«       t        d| › d|› d|› d�«       y	)
zdTest the RTDETR functionality within Ultralytics for detection tasks using specified model and data.zyolo predict r!   r+   úbus.jpgz" imgsz=160 save save_crop save_txtr    r"   z3 --imgsz= 160 epochs =1, cache = disk fraction=0.25Nr-   r#   s      r   Útest_rtdetrr5   ;   sF   € ô ˆ-˜�v˜W U G¨8´F¸YÑ4FÐ3GÐGiÐjÔkÜˆ+�d�V˜7 5 '¨°¨vÐ5hÐiÕjr   z3MobileSAM with CLIP is not supported in Python 3.12zDMobileSAM with CLIP is not supported in Python 3.8 and aarch64 LinuxÚsegmentzFastSAM-s.ptzcoco8-seg.yamlc           	      ó`  — t         dz  }t        d| › d|› d|› d�«       t        d|› d|› d�«       d	d
lm} d	dlm}  ||«      }|t        j                  |«      fD ]P  } ||ddddd¬«      }|j                  |d	   j                  j                  d¬«      \  }	}
 ||g d¢ddggdgd¬«       ŒR y)z]Test FastSAM model for segmenting objects in images using various prompts within Ultralytics.r4   zyolo segment val r!   r"   z	 imgsz=32zyolo segment predict model=r+   z! imgsz=32 save save_crop save_txtr   )ÚFastSAM)Ú	PredictorÚcpuTi@  gš™™™™™Ù?gÍÌÌÌÌÌì?)ÚdeviceÚretina_masksÚimgszÚconfÚioué   )Úmin_area©i·  iµ  i  iÅ  éÈ   é   za photo of a dog)ÚbboxesÚpointsÚlabelsÚtextsN)r
   r   Úultralyticsr8   Úultralytics.models.samr9   r   ÚopenÚremove_small_regionsÚmasksr   )r   r   r   Úsourcer8   r9   Ú	sam_modelÚsÚeverything_resultsÚ
_new_masksÚ_s              r   Útest_fastsamrT   C   sÛ   € ô �iÑ€FäÐ
˜D˜6 ¨¨¨v°d°V¸9ÐEÔFÜÐ
% e W¨H°V°HÐ<]Ð^Ô_å#Ý0ñ ˜“€Ið ”e—j‘j Ó(Ð)ò rˆÙ& q°ÀTÐQTÐ[^ÐdgÔhÐð "×6Ñ6Ð7IÈ!Ñ7L×7RÑ7R×7WÑ7WÐbdÐ6Óe‰ˆ
�Añ 	�&Ò!5ÀÀS¸z¸lÐTUÐSVÐ^pÖqñrr   c                  óÖ   — ddl m}   | t        dz  «      }t        dz  }|j	                  |ddgdg¬«       |j	                  |ddgd	d
gggddgg¬«       |j	                  |g d¢d¬«       y)zITest MobileSAM segmentation with point and box prompts using Ultralytics.r   )ÚSAMzmobile_sam.ptz
zidane.jpgi„  ir  rD   )rF   rG   iè  éd   rB   T)rE   ÚsaveN)rI   rV   r   r
   Úpredict)rV   r   rN   s      r   Útest_mobilesamrZ   b   s{   € åñ ”˜oÑ-Ó.€Eô �lÑ"€Fð 
‡M�M�& # s °Q°C€MÔ8ð 
‡M�M�& C¨ :°°c¨{Ð";Ð!<ÀqÈ!ÀfÀX€MÔNð 
‡M�M�&Ò!5¸D€MÕAr   zCUDA is not availableé   zDDP is not availablec           	      óX   — t        d| › d|› d|› d�«       t        d| › d|› d|› d�«       y)z:Test YOLO training on GPU(s) for various tasks and models.r    r!   r"   z imgsz=32 epochs=1 device=0z imgsz=32 epochs=1 device=0,1Nr   r#   s      r   Útest_train_gpur]   z   s@   € ô ˆ+�d�V˜7 5 '¨°¨vÐ5PÐQÔRÜˆ+�d�V˜7 5 '¨°¨vÐ5RÐSÕTr   Úsolution)
ÚcountÚblurÚworkoutÚheatmapÚisegmentÚ	visioneyeÚspeedÚqueueÚ	analyticsÚ	trackzonec                 ó"   — t        d| › d�«       y)z'Test yolo solutions command-line modes.zyolo solutions z verbose=FalseNr   )r^   s    r   Útest_solutionsrj   „   s   € ô ˆ/˜(˜ >Ð2Õ3r   )r   N)%r   Úpathlibr   ÚpytestÚPILr   Útestsr   r   r   r   Úultralytics.utilsr	   r
   r   r   r   Úultralytics.utils.torch_utilsr   Ústrr   r   ÚmarkÚparametrizer$   r)   r.   r0   Úskipifr5   ÚIS_PYTHON_3_12ÚIS_PYTHON_3_8rT   rZ   Úslowr]   rj   r   r   r   ú<module>rx      s  ðó Ý ã Ý ç OÓ Oß GÕ GÝ 4ð,ˆSð ,�Tó ,ó
ð ‡�×ÑÐ*¨OÓ<ðU�Sð U ð U¨Cð U°Dò Uó =ðUð
 ‡�×ÑÐ*¨OÓ<ð
�3ð 
˜sð 
¨#ð 
°$ò 
ó =ð
ð ‡�×ÑÐ*¨OÓ<ð
�sð 
 3ð 
¨cð 
°dò 
ó =ð
ð ‡�×Ñ˜ &Ó)ðd�sð d˜tò dó *ðdð ‡�×Ñ˜
�NÐ+HÐÓIØ$°KÀ-Ñ4OÐ]iñ k�cð k¨Tð kÐWZð kÐnrò kó Jðkð ‡�×Ñ�F×)Ñ)Ð2gÐÓhØ‡�×ÑØ
×ÑÒ,˜UÒ, uØQð ó ð
 ¨°nÑ(DÐRbñrØ
ðrØ"%ðrØLOðrà	òró	ó ið
ró4Bð0 ‡�×ÑØ‡�×ÑÐ*¨OÓ<Ø‡�×ÑÐ)Ð)Ð2IÐÓJØ‡�×ÑÐ%¨Ñ)Ð2HÐÓIðU˜ð U Sð U°ð U¸ò Uó Jó Kó =ó ðUð ‡�×ÑØÚpóð4˜Sð 4 Tò 4ó	ñ4r   