import math
import unittest






def  snake_case  (       snake_case__			:int)						->   bool:
       assert isinstance(snake_case__   ,	snake_case__) and (
           number >= 0
       ), "'number' must been an int and positive"

       if 1 < number < 4:
              # 2 and 3 are primes
              return True
       elif number < 2 or number % 2 == 0 or number % 3 == 0:
              # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
              return False

       # All primes number are in format of 6k +/- 1
       for i in range(5   ,	int(math.sqrt(snake_case__) + 1)   ,	6):
              if number % i == 0 or number % (i + 2) == 0:
                     return False
       return True



class 				a							(			unittest.TestCase       ):







 """simple docstring"""






 def      UpperCAmelCase							(					self							)  ->					Union[str, Any]:
        self.assertTrue(is_prime(2							)							)
        self.assertTrue(is_prime(3							)							)
        self.assertTrue(is_prime(5							)							)
        self.assertTrue(is_prime(7							)							)
        self.assertTrue(is_prime(11							)							)
        self.assertTrue(is_prime(13							)							)
        self.assertTrue(is_prime(17							)							)
        self.assertTrue(is_prime(19							)							)
        self.assertTrue(is_prime(23							)							)
        self.assertTrue(is_prime(29							)							)



 def      UpperCAmelCase							(					self							)  ->					int:
        with self.assertRaises(lowerCAmelCase_							):
               is_prime(-19							)
        self.assertFalse(
            is_prime(0							)		,				"""Zero doesn't have any positive factors, primes must have exactly two."""		,				)
        self.assertFalse(
            is_prime(1							)		,				"""One only has 1 positive factor, primes must have exactly two."""		,				)
        self.assertFalse(is_prime(2 * 2							)							)
        self.assertFalse(is_prime(2 * 3							)							)
        self.assertFalse(is_prime(3 * 3							)							)
        self.assertFalse(is_prime(3 * 5							)							)
        self.assertFalse(is_prime(3 * 5 * 7							)							)


if __name__ == "__main__":
    unittest.main()





import random
from typing import Any






def  snake_case  (       snake_case__			:list)						->   list[Any]:
       for _ in range(len(snake_case__)):
              _A        =  random.randint(0   ,	len(snake_case__) - 1)
              _A        =  random.randint(0   ,	len(snake_case__) - 1)
              _A   ,  _A        =  data[b], data[a]
       return data


if __name__ == "__main__":
    _SCREAMING_SNAKE_CASE										=						[0, 1, 2, 3, 4, 5, 6, 7]
    _SCREAMING_SNAKE_CASE										=						['python', 'says', 'hello', '!']
    print('Fisher-Yates Shuffle:')
    print('List', integers, strings)
    print('FY Shuffle', fisher_yates_shuffle(integers), fisher_yates_shuffle(strings))




