



import unittest
from dataclasses import dataclass
from typing import List, Union

import numpy as np
import PIL.Image

from diffusers.utils.outputs import BaseOutput




@dataclass
class 				lowerCAmelCase__	(						_lowerCamelCase    ):
					__A  :     Any     =    42




class 				lowerCAmelCase__	(						unittest.TestCase    ):







					def 			_lowercase      (							self   :  Dict):
											A__						:				Union[str, Any]         =			CustomOutput(images=np.random.rand(1      ,		3      ,		4      ,		4))

											# check every way of getting the attribute
											assert isinstance(outputs.images      ,		np.ndarray)
											assert outputs.images.shape == (1, 3, 4, 4)
											assert isinstance(outputs["images"]      ,		np.ndarray)
											assert outputs["images"].shape == (1, 3, 4, 4)
											assert isinstance(outputs[0]      ,		np.ndarray)
											assert outputs[0].shape == (1, 3, 4, 4)

											# test with a non-tensor attribute
											A__						:				str         =			CustomOutput(images=[PIL.Image.new("RGB"      ,		(4, 4))])

											# check every way of getting the attribute
											assert isinstance(outputs.images      ,		_lowerCamelCase)
											assert isinstance(outputs.images[0]      ,		PIL.Image.Image)
											assert isinstance(outputs["images"]      ,		_lowerCamelCase)
											assert isinstance(outputs["images"][0]      ,		PIL.Image.Image)
											assert isinstance(outputs[0]      ,		_lowerCamelCase)
											assert isinstance(outputs[0][0]      ,		PIL.Image.Image)







					def 			_lowercase      (							self   :  List[Any]):
											# test output reinitialization with a `dict` for compatibility with `accelerate`
											A__						:				Union[str, Any]         =			CustomOutput({"images": np.random.rand(1      ,		3      ,		4      ,		4)})

											# check every way of getting the attribute
											assert isinstance(outputs.images      ,		np.ndarray)
											assert outputs.images.shape == (1, 3, 4, 4)
											assert isinstance(outputs["images"]      ,		np.ndarray)
											assert outputs["images"].shape == (1, 3, 4, 4)
											assert isinstance(outputs[0]      ,		np.ndarray)
											assert outputs[0].shape == (1, 3, 4, 4)

											# test with a non-tensor attribute
											A__						:				List[str]         =			CustomOutput({"images": [PIL.Image.new("RGB"      ,		(4, 4))]})

											# check every way of getting the attribute
											assert isinstance(outputs.images      ,		_lowerCamelCase)
											assert isinstance(outputs.images[0]      ,		PIL.Image.Image)
											assert isinstance(outputs["images"]      ,		_lowerCamelCase)
											assert isinstance(outputs["images"][0]      ,		PIL.Image.Image)
											assert isinstance(outputs[0]      ,		_lowerCamelCase)
											assert isinstance(outputs[0][0]      ,		PIL.Image.Image)
'''simple docstring'''
from .prime_check import Test

Test()



