'''simple docstring'''





import unittest

import numpy as np
import torch
from transformers import CLIPTextConfig, CLIPTextModel

from diffusers import DDIMScheduler, LDMPipeline, UNetaDModel, VQModel
from diffusers.utils.testing_utils import enable_full_determinism, require_torch, slow, torch_device


enable_full_determinism()




class        __A      ( unittest.TestCase	):



    @property
    def 					_lowercase						(self    :    Tuple ):
         torch.manual_seed(0 )
         UpperCAmelCase_           =   UNetaDModel(
             block_out_channels=(32, 64)   ,			layers_per_block=2   ,			sample_size=32   ,			in_channels=3   ,			out_channels=3   ,			down_block_types=("DownBlock2D", "AttnDownBlock2D")   ,			up_block_types=("AttnUpBlock2D", "UpBlock2D")   ,			)
         return model



    @property
    def 					_lowercase						(self    :    Any ):
         torch.manual_seed(0 )
         UpperCAmelCase_           =   VQModel(
             block_out_channels=[32, 64]   ,			in_channels=3   ,			out_channels=3   ,			down_block_types=["DownEncoderBlock2D", "DownEncoderBlock2D"]   ,			up_block_types=["UpDecoderBlock2D", "UpDecoderBlock2D"]   ,			latent_channels=3   ,			)
         return model



    @property
    def 					_lowercase						(self    :    Union[str, Any] ):
         torch.manual_seed(0 )
         UpperCAmelCase_           =   CLIPTextConfig(
             bos_token_id=0   ,			eos_token_id=2   ,			hidden_size=32   ,			intermediate_size=37   ,			layer_norm_eps=1E-05   ,			num_attention_heads=4   ,			num_hidden_layers=5   ,			pad_token_id=1   ,			vocab_size=1000   ,			)
         return CLIPTextModel(__a )






    def 					_lowercase						(self    :    List[str] ):
         UpperCAmelCase_           =   self.dummy_uncond_unet
         UpperCAmelCase_           =   DDIMScheduler()
         UpperCAmelCase_           =   self.dummy_vq_model

         UpperCAmelCase_           =   LDMPipeline(unet=__a   ,			vqvae=__a   ,			scheduler=__a )
         ldm.to(__a )
         ldm.set_progress_bar_config(disable=__a )

         UpperCAmelCase_           =   torch.manual_seed(0 )
         UpperCAmelCase_           =   ldm(generator=__a   ,			num_inference_steps=2   ,			output_type="numpy" ).images

         UpperCAmelCase_           =   torch.manual_seed(0 )
         UpperCAmelCase_           =   ldm(generator=__a   ,			num_inference_steps=2   ,			output_type="numpy"   ,			return_dict=__a )[0]

         UpperCAmelCase_           =   image[0, -3:, -3:, -1]
         UpperCAmelCase_           =   image_from_tuple[0, -3:, -3:, -1]

         assert image.shape == (1, 64, 64, 3)
         UpperCAmelCase_           =   np.array([0.85_12, 0.8_18, 0.64_11, 0.68_08, 0.44_65, 0.56_18, 0.46, 0.62_31, 0.51_72] )
         UpperCAmelCase_           =   1E-2 if torch_device != "mps" else 3E-2

         assert np.abs(image_slice.flatten() - expected_slice ).max() < tolerance
         assert np.abs(image_from_tuple_slice.flatten() - expected_slice ).max() < tolerance




@slow
@require_torch
class        __A      ( unittest.TestCase	):



    def 					_lowercase						(self    :    List[str] ):
         UpperCAmelCase_           =   LDMPipeline.from_pretrained("CompVis/ldm-celebahq-256" )
         ldm.to(__a )
         ldm.set_progress_bar_config(disable=__a )

         UpperCAmelCase_           =   torch.manual_seed(0 )
         UpperCAmelCase_           =   ldm(generator=__a   ,			num_inference_steps=5   ,			output_type="numpy" ).images

         UpperCAmelCase_           =   image[0, -3:, -3:, -1]

         assert image.shape == (1, 256, 256, 3)
         UpperCAmelCase_           =   np.array([0.43_99, 0.4_49_75, 0.4_68_25, 0.4_74, 0.43_59, 0.45_81, 0.4_50_95, 0.43_41, 0.44_47] )
         UpperCAmelCase_           =   1E-2 if torch_device != "mps" else 3E-2

         assert np.abs(image_slice.flatten() - expected_slice ).max() < tolerance











'''simple docstring'''


def 							UpperCAmelCase_  (						__lowerCamelCase					:					int	,__lowerCamelCase					:					int ):
   return int((input_a, input_a).count(0 ) == 0 )
def 							UpperCAmelCase_  (						):
   assert and_gate(0	,0 ) == 0
   assert and_gate(0	,1 ) == 0
   assert and_gate(1	,0 ) == 0
   assert and_gate(1	,1 ) == 1


if __name__ == "__main__":
 test_and_gate()
 print(and_gate(1, 0))
 print(and_gate(0, 0))
 print(and_gate(0, 1))
 print(and_gate(1, 1))


