


"""simple docstring"""




import math
import unittest

def        lowercase							(		lowerCAmelCase__ :     int			) ->      bool:
		assert isinstance(lowerCAmelCase__    ,					lowerCAmelCase__			) 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(lowerCAmelCase__			) + 1			)    ,					6			):
				if number % i == 0 or number % (i + 2) == 0:
						return False
		return True
class 					__lowerCAmelCase					(   unittest.TestCase       ):


		'''simple docstring'''



		def 			__UpperCAmelCase       (  self      ):
				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      ):
				with self.assertRaises(_a      ):
						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()








_lowerCamelCase					   ={
    "joule": 1.0,
    "kilojoule": 1_0_0_0,
    "megajoule": 1_0_0_0_0_0_0,
    "gigajoule": 1_0_0_0_0_0_0_0_0_0,
    "wattsecond": 1.0,
    "watthour": 3_6_0_0,
    "kilowatthour": 3_6_0_0_0_0_0,
    "newtonmeter": 1.0,
    "calorie_nutr": 4_1_8_6.8,
    "kilocalorie_nutr": 4_1_8_6_8_0_0.0_0,
    "electronvolt": 1.6_0_2_1_7_6_6_3_4E-1_9,
    "britishthermalunit_it": 1_0_5_5.0_5_5_8_5,
    "footpound": 1.355818,
}





def     _a					(						lowerCamelCase,	lowerCamelCase,	lowerCamelCase							):
 if to_type not in ENERGY_CONVERSION or from_type not in ENERGY_CONVERSION:
  lowerCamelCase		:	Dict							=      (
      F'''Incorrect \'from_type\' or \'to_type\' value: {from_type!r}, {to_type!r}\n'''
      F'''Valid values are: {", ".join(lowerCamelCase							)}'''
  )
  raise ValueError(lowerCamelCase							)
 return value * ENERGY_CONVERSION[from_type] / ENERGY_CONVERSION[to_type]


if __name__ == "__main__":
      import doctest

      doctest.testmod()




