o
    Ďi^                     @   sn   d dl 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dd	d
dddZ
G dd de jZdS )    N)	HTTPError)SEMANTIC_SEGMENTATION_URL)SemanticSegmentationModel)PredictionGroupa  iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAAAAADRE4smAAACjElEQVR4nO3bzXKbMBiGUanT+79ldVHXwSmmFmJGfcU5i8SZbDR8DzL4pxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgKXUOnsFTGX+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMuosxewklpKm72GXj9mLyBf/etBEgGMqqVGTv5BADcngEF151GSn7MXkO116HFXgMUOMCZ//gK4TuT8BTCkvfyKJICbE8CQ9vyRSgBDMm/9tgQwLHoDWCDhaWopj+nXkpuBHeBT9dtL/t9OndQzSQCf2j/Fa8mdfSlFAD3a3l+H20IAAXzszbN83fw3b/4COO9PEIFT3xDAeW2zJ6TeBHg7eEjLvgUsxQ4wrGXPXwDDoscvgHE1+ypQAGfU/U8CJpaQuObpvt4FeBy/9vIoigD6fR2z9nwZaPtyUBQB9Ds6ZnEFuAa4OQF0O9w043ZUAdxcXLGT/eN4xV0C2AH6LDd/AVwpcP4CuFDi/AVwocjrKQF0iTzJDwmgz3IFCKDTagUI4OYEcJ3IzUEAnSIv9Q/4VHCXd+NvsWGkrnum9xUE8hTQL3LQ7wjghJUKEMBlMrMQwBm7s868nMpc9X/iefB+fzc8cgtwGzjg8XWAyMFzOZspAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwil+AQDJrnsYcnwAAAABJRU5ErkJggg==
backgroundobject)01i   iX  )widthheight)segmentation_mask	class_mapimagec                   @   s   e Zd ZdZdZdZdZde de ZeddZe de de Z	d	d
 Z
ejdd Zejdd Zejdd Zejdd Zejdd ZdS )TestSemanticSegmentationz
my-api-keyroboflowztest-12323zhttps://segment.roboflow.com//50)api_key
confidencec                 C   sD   t | j| j}| |j| j | |jt d| j d| j  d S )Nr   )	r   r   
version_idassertEqualidapi_urlr   
dataset_idversion)selfinstance r   c/home/jeff/fluffinator/venv/lib/python3.10/site-packages/tests/models/test_semantic_segmentation.pytest_init_sets_attributes,   s   z2TestSemanticSegmentation.test_init_sets_attributesc                 C   s@   d}t | j| j}tjtj| jtd ||}| 	|t
 d S )Ntests/images/rabbit.JPGjson)r   r   r   	responsesaddPOSTr   MOCK_RESPONSEpredictassertIsInstancer   )r   
image_pathr   groupr   r   r   %test_predict_returns_prediction_group5   s
   
z>TestSemanticSegmentation.test_predict_returns_prediction_groupc                 C   s   d}t | j| j}tjtj| jtd || tj	d j
}| |jd | |jd| j  | |j| j | |j d S )Nr!   r"   r   r&   ^)r   r   r   r$   r%   r&   r   r'   r(   callsrequestr   methodassertRegexurlassertDictEqualparams_default_paramsassertIsNotNonebody)r   r*   r   r/   r   r   r   %test_predict_with_local_image_request@   s   
z>TestSemanticSegmentation.test_predict_with_local_image_requestc                 C   s   d}i | j d|i}t| j| j}ttj| tjtj| jt	d |
| tjd j}| |jd | |jd| j  | |j| | |j d S )Nzhttps://example.com/raccoon.JPGr   r"      r&   r-   )r5   r   r   r   r$   r%   HEADr&   r   r'   r(   r.   r/   r   r0   r1   r2   r3   r4   assertIsNoner7   )r   r*   expected_paramsr   r/   r   r   r   &test_predict_with_hosted_image_requestP   s   
z?TestSemanticSegmentation.test_predict_with_hosted_image_requestc                 C   s   d}d}i | j d|i}t| j| j}tjtj| jtd |j	||d tj
d j}| |jd | |jd| j  | |j| | |j d S )	N100r!   r   r"   )r   r   r&   r-   )r5   r   r   r   r$   r%   r&   r   r'   r(   r.   r/   r   r0   r1   r2   r3   r4   r6   r7   )r   r   r*   r<   r   r/   r   r   r   $test_predict_with_confidence_requestf   s   z=TestSemanticSegmentation.test_predict_with_confidence_requestc                 C   s`   d}t jt j| jdd t| j| j}| t |	| W d    d S 1 s)w   Y  d S )Nr!   i  )status)
r$   r%   r&   r   r   r   r   assertRaisesr   r(   )r   r*   r   r   r   r   4test_predict_with_non_200_response_raises_http_errorx   s   "zMTestSemanticSegmentation.test_predict_with_non_200_response_raises_http_errorN)__name__
__module____qualname__r   	workspacer   r   r   r5   r   r    r$   activater,   r8   r=   r?   rB   r   r   r   r   r       s&    
	




r   )unittestr$   requests.exceptionsr   roboflow.configr   %roboflow.models.semantic_segmentationr   roboflow.util.predictionr   r'   TestCaser   r   r   r   r   <module>   s    