




import unittest

from transformers import is_torch_available, load_tool

from .test_tools_common import ToolTesterMixin


if is_torch_available():
							import torch


class 				__SCREAMING_SNAKE_CASE							(		unittest.TestCase   ,     lowerCamelCase  ):

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		List[Any]							   =							load_tool('speech-to-text'					)
						self.tool.setup()

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		int							   =							self.tool(torch.ones(3_000					)					)
						self.assertEqual(__lowercase ,       ' you'					)





					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		int							   =							self.tool(audio=torch.ones(3_000					)					)
						self.assertEqual(__lowercase ,       ' you'					)






import unittest

import numpy as np

from transformers.testing_utils import require_torch, require_vision
from transformers.utils import is_torch_available, is_vision_available

from ...test_image_processing_common import ImageProcessingSavingTestMixin


if is_torch_available():
							import torch

if is_vision_available():
							from PIL import Image

							from transformers import TvltImageProcessor






def 					snake_case					(							A						,   A=10						,   A=10						,   A=False						,   A=False			)							->							str:




	'''simple docstring'''


	lowerCamelCase_							:		Any							   =							[]
	for i in range(image_processor_tester.num_frames			):
		video.append(np.random.randint(255						,   size=(image_processor_tester.num_channels, width, height)						,   dtype=np.uinta			)			)

	if not numpify and not torchify:
		# PIL expects the channel dimension as last dimension
		lowerCamelCase_							:		Any							   =							[Image.fromarray(np.moveaxis(A						,   0						,   -1			)			) for frame in video]

	if torchify:
		lowerCamelCase_							:		List[str]							   =							[torch.from_numpy(A			) for frame in video]

	return video






def 					snake_case					(							A						,   A=False						,   A=False						,   A=False			)							->							Dict:




	'''simple docstring'''


	assert not (numpify and torchify), "You cannot specify both numpy and PyTorch tensors at the same time"

	lowerCamelCase_							:		int							   =							[]
	for i in range(image_processor_tester.batch_size			):
		if equal_resolution:
			lowerCamelCase_							:		Union[str, Any]							   =							image_processor_tester.max_resolution
		else:
			lowerCamelCase_   ,			lowerCamelCase_							:		Optional[int]							   =							np.random.choice(
			    np.arange(image_processor_tester.min_resolution						,   image_processor_tester.max_resolution			)						,   2			)
			lowerCamelCase_							:		str							   =							prepare_video(
			    image_processor_tester=A						,   width=A						,   height=A						,   numpify=A						,   torchify=A						,   )
		video_inputs.append(A			)

	return video_inputs


class 				__SCREAMING_SNAKE_CASE							(		unittest.TestCase  ):

					def __init__(				self ,       __lowercase ,       __lowercase=7 ,       __lowercase=3 ,       __lowercase=4 ,       __lowercase=18 ,       __lowercase=30 ,       __lowercase=400 ,       __lowercase=True ,       __lowercase=None ,       __lowercase=True ,       __lowercase=[0.5, 0.5, 0.5] ,       __lowercase=[0.5, 0.5, 0.5] ,       __lowercase=True ,       __lowercase=None ,       ):







						'''simple docstring'''




						lowerCamelCase_							:		Optional[int]							   =							size if size is not None else {'shortest_edge': 18}
						lowerCamelCase_							:		Union[str, Any]							   =							crop_size if crop_size is not None else {'height': 18, 'width': 18}

						lowerCamelCase_							:		List[Any]							   =							parent
						lowerCamelCase_							:		Optional[Any]							   =							batch_size
						lowerCamelCase_							:		Tuple							   =							num_channels
						lowerCamelCase_							:		Dict							   =							num_frames
						lowerCamelCase_							:		Dict							   =							image_size
						lowerCamelCase_							:		Optional[Any]							   =							min_resolution
						lowerCamelCase_							:		List[Any]							   =							max_resolution
						lowerCamelCase_							:		Dict							   =							do_resize
						lowerCamelCase_							:		List[Any]							   =							size
						lowerCamelCase_							:		Dict							   =							do_normalize
						lowerCamelCase_							:		Optional[Any]							   =							image_mean
						lowerCamelCase_							:		List[str]							   =							image_std
						lowerCamelCase_							:		Tuple							   =							do_center_crop
						lowerCamelCase_							:		List[Any]							   =							crop_size





					def 	lowercase_							(				self					):







						'''simple docstring'''




						return {
						    "image_mean": self.image_mean,
						    "image_std": self.image_std,
						    "do_normalize": self.do_normalize,
						    "do_resize": self.do_resize,
						    "size": self.size,
						    "do_center_crop": self.do_center_crop,
						    "crop_size": self.crop_size,
						}


@require_torch
@require_vision
class 				__SCREAMING_SNAKE_CASE							(		lowerCamelCase   ,     unittest.TestCase  ):
					_lowerCamelCase		  = TvltImageProcessor if is_vision_available() else None

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		Optional[Any]							   =							TvltImageProcessorTester(self					)

					@property
					def 	lowercase_							(				self					):







						'''simple docstring'''




						return self.image_processor_tester.prepare_image_processor_dict()

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		int							   =							self.image_processing_class(**self.image_processor_dict					)
						self.assertTrue(hasattr(__lowercase ,       'image_mean'					)					)
						self.assertTrue(hasattr(__lowercase ,       'image_std'					)					)
						self.assertTrue(hasattr(__lowercase ,       'do_normalize'					)					)
						self.assertTrue(hasattr(__lowercase ,       'do_resize'					)					)
						self.assertTrue(hasattr(__lowercase ,       'do_center_crop'					)					)
						self.assertTrue(hasattr(__lowercase ,       'size'					)					)

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		Optional[Any]							   =							self.image_processing_class(**self.image_processor_dict					)
						# create random PIL videos
						lowerCamelCase_							:		Dict							   =							prepare_video_inputs(self.image_processor_tester ,       equal_resolution=__lowercase					)
						for video in video_inputs:
							self.assertIsInstance(__lowercase ,       __lowercase					)
							self.assertIsInstance(video[0] ,       Image.Image					)

						# Test not batched input
						lowerCamelCase_							:		Any							   =							image_processor(video_inputs[0] ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        1,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )

						# Test batched
						lowerCamelCase_							:		List[Any]							   =							image_processor(__lowercase ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        self.image_processor_tester.batch_size,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )

					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		Dict							   =							self.image_processing_class(**self.image_processor_dict					)
						# create random numpy tensors
						lowerCamelCase_							:		Union[str, Any]							   =							prepare_video_inputs(self.image_processor_tester ,       equal_resolution=__lowercase ,       numpify=__lowercase					)
						for video in video_inputs:
							self.assertIsInstance(__lowercase ,       __lowercase					)
							self.assertIsInstance(video[0] ,       np.ndarray					)

						# Test not batched input
						lowerCamelCase_							:		Union[str, Any]							   =							image_processor(video_inputs[0] ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        1,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )

						# Test batched
						lowerCamelCase_							:		Tuple							   =							image_processor(__lowercase ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        self.image_processor_tester.batch_size,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )





					def 	lowercase_							(				self					):







						'''simple docstring'''




						lowerCamelCase_							:		str							   =							self.image_processing_class(**self.image_processor_dict					)
						# create random PyTorch tensors
						lowerCamelCase_							:		Union[str, Any]							   =							prepare_video_inputs(self.image_processor_tester ,       equal_resolution=__lowercase ,       torchify=__lowercase					)
						for video in video_inputs:
							self.assertIsInstance(__lowercase ,       __lowercase					)
							self.assertIsInstance(video[0] ,       torch.Tensor					)

						# Test not batched input
						lowerCamelCase_							:		Optional[Any]							   =							image_processor(video_inputs[0] ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        1,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )

						# Test batched
						lowerCamelCase_							:		Tuple							   =							image_processor(__lowercase ,       return_tensors='pt'					).pixel_values
						self.assertEqual(
						    encoded_videos.shape ,       (
						        self.image_processor_tester.batch_size,
						        self.image_processor_tester.num_frames,
						        self.image_processor_tester.num_channels,
						        self.image_processor_tester.crop_size['height'],
						        self.image_processor_tester.crop_size['width'],
						    ) ,       )
