



"""simple docstring"""
def        lowerCAmelCase_						(							SCREAMING_SNAKE_CASE__, SCREAMING_SNAKE_CASE__ = False	)			->      bool:
  if n == 2:
    return True
  if not n % 2 or n < 2:
    return False
  if n > 5 and n % 10 not in (1, 3, 7, 9):  # can quickly check last digit
    return False
  if n > 3_317_044_064_679_887_385_961_981 and not allow_probable:
    raise ValueError(
        "Warning: upper bound of deterministic test is exceeded. "
        "Pass allow_probable=True to allow probabilistic test. "
        "A return value of True indicates a probable prime."	)
  # array bounds provided by analysis
  a_     :      Optional[Any] 						=     [
      2_047,
      1_373_653,
      25_326_001,
      3_215_031_751,
      2_152_302_898_747,
      3_474_749_660_383,
      341_550_071_728_321,
      1,
      3_825_123_056_546_413_051,
      1,
      1,
      318_665_857_834_031_151_167_461,
      3_317_044_064_679_887_385_961_981,
  ]

  a_     :      Optional[int] 						=     [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41]
  for idx, _p in enumerate(SCREAMING_SNAKE_CASE__, 1	):
    if n < _p:
      # then we have our last prime to check
      a_     :      List[Any] 						=     primes[:idx]
      break
  a_     :      Tuple 						=     n - 1, 0
  # break up n -1 into a power of 2 (s) and
  # remaining odd component
  # essentially, solve for d * 2 ** s == n - 1
  while d % 2 == 0:
    d //= 2
    s += 1
  for prime in plist:
    a_     :      str 						=     False
    for r in range(SCREAMING_SNAKE_CASE__	):
      a_     :      List[str] 						=     pow(SCREAMING_SNAKE_CASE__, d * 2**r, SCREAMING_SNAKE_CASE__	)
      # see article for analysis explanation for m
      if (r == 0 and m == 1) or ((m + 1) % n == 0):
        a_     :      List[Any] 						=     True
        # this loop will not determine compositeness
        break
    if pr:
      continue
    # if pr is False, then the above loop never evaluated to true,
    # and the n MUST be composite
    return False
  return True



def        lowerCAmelCase_						(							)			->      None:
  assert not miller_rabin(561	)
  assert miller_rabin(563	)
  # 2047

  assert not miller_rabin(838_201	)
  assert miller_rabin(838_207	)
  # 1_373_653

  assert not miller_rabin(17_316_001	)
  assert miller_rabin(17_316_017	)
  # 25_326_001

  assert not miller_rabin(3_078_386_641	)
  assert miller_rabin(3_078_386_653	)
  # 3_215_031_751

  assert not miller_rabin(1_713_045_574_801	)
  assert miller_rabin(1_713_045_574_819	)
  # 2_152_302_898_747

  assert not miller_rabin(2_779_799_728_307	)
  assert miller_rabin(2_779_799_728_327	)
  # 3_474_749_660_383

  assert not miller_rabin(113_850_023_909_441	)
  assert miller_rabin(113_850_023_909_527	)
  # 341_550_071_728_321

  assert not miller_rabin(1_275_041_018_848_804_351	)
  assert miller_rabin(1_275_041_018_848_804_391	)
  # 3_825_123_056_546_413_051

  assert not miller_rabin(79_666_464_458_507_787_791_867	)
  assert miller_rabin(79_666_464_458_507_787_791_951	)
  # 318_665_857_834_031_151_167_461

  assert not miller_rabin(552_840_677_446_647_897_660_333	)
  assert miller_rabin(552_840_677_446_647_897_660_359	)
  # 3_317_044_064_679_887_385_961_981
  # upper limit for probabilistic test


if __name__ == "__main__":
     test_miller_rabin()




"""simple docstring"""
import unittest

import numpy as np
import torch

from diffusers import VersatileDiffusionImageVariationPipeline
from diffusers.utils.testing_utils import load_image, require_torch_gpu, slow, torch_device


SCREAMING_SNAKE_CASE_				= False




class 			snake_case_						(						unittest.TestCase				):
							pass




@slow
@require_torch_gpu
class 			snake_case_						(						unittest.TestCase				):






							def snake_case_  (   self      ):
									a_     :      Tuple 						=     VersatileDiffusionImageVariationPipeline.from_pretrained("shi-labs/versatile-diffusion"      )
									pipe.to(a_      )
									pipe.set_progress_bar_config(disable=a_      )

									a_     :      Optional[Any] 						=     load_image(
									    "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg"      )
									a_     :      Optional[Any] 						=     torch.manual_seed(0      )
									a_     :      Dict 						=     pipe(
									    image=a_			,     generator=a_			,     guidance_scale=7.5			,     num_inference_steps=5_0			,     output_type="numpy"			,     ).images

									a_     :      List[Any] 						=     image[0, 2_5_3:2_5_6, 2_5_3:2_5_6, -1]

									assert image.shape == (1, 5_1_2, 5_1_2, 3)
									a_     :      Any 						=     np.array([0.0_441, 0.0_469, 0.0_507, 0.0_575, 0.0_632, 0.0_650, 0.0_865, 0.0_909, 0.0_945]      )

									assert np.abs(image_slice.flatten() - expected_slice      ).max() < 1e-2