






import unittest

import torch
from torch import nn

from diffusers.models.activations import get_activation






class 		lowercase_					(	unittest.TestCase   ):






      '''simple docstring'''




      def       __lowerCAmelCase					(      self      :						Optional[int]  )    ->Tuple:




       """simple docstring"""


       a		  =      get_activation('''swish'''  )

       self.assertIsInstance(__UpperCAmelCase ,					nn.SiLU  )

       self.assertEqual(act(torch.tensor(-100 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertNotEqual(act(torch.tensor(-1 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(0 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(20 ,					dtype=torch.floataa  )  ).item() ,					20  )







      def       __lowerCAmelCase					(      self      :						Dict  )    ->Dict:




       """simple docstring"""


       a		  =      get_activation('''silu'''  )

       self.assertIsInstance(__UpperCAmelCase ,					nn.SiLU  )

       self.assertEqual(act(torch.tensor(-100 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertNotEqual(act(torch.tensor(-1 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(0 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(20 ,					dtype=torch.floataa  )  ).item() ,					20  )







      def       __lowerCAmelCase					(      self      :						Union[str, Any]  )    ->int:




       """simple docstring"""


       a		  =      get_activation('''mish'''  )

       self.assertIsInstance(__UpperCAmelCase ,					nn.Mish  )

       self.assertEqual(act(torch.tensor(-200 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertNotEqual(act(torch.tensor(-1 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(0 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(20 ,					dtype=torch.floataa  )  ).item() ,					20  )







      def       __lowerCAmelCase					(      self      :						Tuple  )    ->Optional[int]:




       """simple docstring"""


       a		  =      get_activation('''gelu'''  )

       self.assertIsInstance(__UpperCAmelCase ,					nn.GELU  )

       self.assertEqual(act(torch.tensor(-100 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertNotEqual(act(torch.tensor(-1 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(0 ,					dtype=torch.floataa  )  ).item() ,					0  )
       self.assertEqual(act(torch.tensor(20 ,					dtype=torch.floataa  )  ).item() ,					20  )










from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


UpperCAmelCase__				   =		{
    "configuration_groupvit": [
        "GROUPVIT_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "GroupViTConfig",
        "GroupViTOnnxConfig",
        "GroupViTTextConfig",
        "GroupViTVisionConfig",
    ],
}

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase__				   =		[
         "GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST",
         "GroupViTModel",
         "GroupViTPreTrainedModel",
         "GroupViTTextModel",
         "GroupViTVisionModel",
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCAmelCase__				   =		[
         "TF_GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST",
         "TFGroupViTModel",
         "TFGroupViTPreTrainedModel",
         "TFGroupViTTextModel",
         "TFGroupViTVisionModel",
     ]

if TYPE_CHECKING:
     from .configuration_groupvit import (
         GROUPVIT_PRETRAINED_CONFIG_ARCHIVE_MAP,
         GroupViTConfig,
         GroupViTOnnxConfig,
         GroupViTTextConfig,
         GroupViTVisionConfig,
     )

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_groupvit import (
              GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
              GroupViTModel,
              GroupViTPreTrainedModel,
              GroupViTTextModel,
              GroupViTVisionModel,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_groupvit import (
              TF_GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFGroupViTModel,
              TFGroupViTPreTrainedModel,
              TFGroupViTTextModel,
              TFGroupViTVisionModel,
          )

else:
     import sys

     UpperCAmelCase__				   =		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)


