
    |h:                         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mZmZ d dlmZmZmZ d	 Zd
 Zd Zd Zd Zy)    N)mock)MODEL)YOLO)get_cfg)Exporter)classifydetectsegment)ASSETSDEFAULT_CFGWEIGHTS_DIRc                      t        d       y)zETest function callback for evaluating YOLO model performance metrics.zcallback test passedN)printargss    P/var/www/html/test/engine/venv/lib/python3.12/site-packages/tests/test_engine.py	test_funcr      s    	
 !    c                      t               } | j                  dt               t        | j                  d   v sJ d        | t	        d      j
                        } t	        |      t               y)zTTest model exporting functionality by adding a callback and verifying its execution.on_export_startcallback test failedyolo11n.yamlmodelN)r   add_callbackr   	callbacksr   r   r   )exporterfs     r   test_exportr      s\    zH+Y7**+<==U?UU=tN+112ADGFOr   c                     dddddd} t        t              }d|_        d|_        t	        j
                  |       }|j                  dt               t        |j                  d   v sJ d	       |j                          t	        j                  |
      }|j                  dt               t        |j                  d   v sJ d	        ||j                         t	        j                  dddgi      }|j                  dt               t        |j                  d   v sJ d	       t        j                  j                  t         dg       5   |t"        t$              }t'        |      sJ d       	 ddd       |j(                  | d<   t	        j
                  |       }	 |j                          t+        d      # 1 sw Y   JxY w# t*        $ r}t-        d|        Y d}~yd}~ww xY w)zNTest YOLO object detection training, validation, and prediction functionality.z
coco8.yamlr          Fdatar   imgszepochssave	overrideson_train_startr   r   on_val_startr   r%   @   on_predict_startargvsourcer   predictor test failedNresumeExpected exception caught: Resume test failed!)r   r   r$   r%   r	   DetectionTrainerr   r   r   trainDetectionValidatorbestDetectionPredictorr   patchobjectsysr   r   lenlast	Exceptionr   r)   cfgtrainervalpredresultes          r   test_detectrG      s   %WXbghI
+
CCHCI %%	:G)95))*:;;S=SS;MMO 
#
#
-C^Y/n55M7MM5gll $$"b/BCD()4'9::R<RR:			3	+ 4V516{333{4
 ",,Ih%%	:G
 )
**4 4  +A3/0s$   
%F9G 9G	G&G!!G&c                  b   dddddd} t        t              }d|_        d|_        t	        j
                  |       }|j                  dt               t        |j                  d   v sJ d	       |j                          t	        j                  |
      }|j                  dt               t        |j                  d   v sJ d	        ||j                         t	        j                  dddgi      }|j                  dt               t        |j                  d   v sJ d	        |t        t        dz        }t        |      sJ d       |j                   | d<   t	        j
                  |       }	 |j                          t#        d      # t"        $ r}t%        d|        Y d}~yd}~ww xY w)zYTest image segmentation training, validation, and prediction pipelines using YOLO models.zcoco8-seg.yamlzyolo11n-seg.yamlr!   r"   Fr#   r(   r*   r   r   r+   r   r%   r,   r-   zyolo11n-seg.ptr/   r1   r2   r3   Nr4   )r   r   r$   r%   r
   SegmentationTrainerr   r   r   r6   SegmentationValidatorr8   SegmentationPredictorr   r   r=   r>   r?   r   r@   s          r   test_segmentrL   D   s   )4FQS_`jopI
+
CCHCI ))I>G)95))*:;;S=SS;MMO 
'
'S
1C^Y/n55M7MM5gll ((Gb"X3FGD()4'9::R<RR:{5E'EFFv;///; ",,Ih))I>G
 )
**	  +A3/0s   2F 	F.F))F.c                     dddddd} t        t              }d|_        d|_        t	        j
                  |       }|j                  dt               t        |j                  d   v sJ d	       |j                          t	        j                  |
      }|j                  dt               t        |j                  d   v sJ d	        ||j                         t	        j                  dddgi      }|j                  dt               t        |j                  d   v sJ d	        |t        |j                        }t        |      sJ d       y)zPTest image classification including training, validation, and prediction phases.
imagenet10zyolo11n-cls.yamlr!   r"   Fr#   r(   r*   r   r   r+   r   r%   r,   r-   r/   r1   N)r   r   r$   r%   r   ClassificationTrainerr   r   r   r6   ClassificationValidatorr8   ClassificationPredictorr   r=   )r)   rA   rB   rC   rD   rE   s         r   test_classifyrR   j   s0   %0BR[\fklI
+
CCHCI ,,yAG)95))*:;;S=SS;MMO 
*
*
4C^Y/n55M7MM5gll ++wR6IJD()4'9::R<RR:w||4Fv;///;r   )r<   unittestr   testsr   ultralyticsr   ultralytics.cfgr   ultralytics.engine.exporterr   ultralytics.models.yolor   r	   r
   ultralytics.utilsr   r   r   r   r   rG   rL   rR    r   r   <module>r[      s@        # 0 = = > >"
%+P#+L0r   