




"""simple docstring"""




def      __UpperCAmelCase     ( __UpperCamelCase	):
			if not isinstance(__UpperCamelCase	,				__UpperCamelCase	) or number < 0:
						raise ValueError('''Input must be a non-negative integer'''	)

			__lowercase			:  Optional[int]								=       0
			while number:
						# This way we arrive at next set bit (next 1) instead of looping
						# through each bit and checking for 1s hence the
						# loop won't run 32 times it will only run the number of `1` times
						number &= number - 1
						count += 1
			return count


if __name__ == "__main__":
			import doctest

			doctest.testmod()







SCREAMING_SNAKE_CASE__					:     dict[str, float]       =     {
    "joule": 1.0,
    "kilojoule": 1_000,
    "megajoule": 1_000_000,
    "gigajoule": 1_000_000_000,
    "wattsecond": 1.0,
    "watthour": 3_600,
    "kilowatthour": 3_600_000,
    "newtonmeter": 1.0,
    "calorie_nutr": 4_186.8,
    "kilocalorie_nutr": 4_186_800.00,
    "electronvolt": 1.602176634e-19,
    "britishthermalunit_it": 1_055.05_585,
    "footpound": 1.355_818,
}




def    a__    (		snake_case__					:							str						,   snake_case__					:							str						,   snake_case__					:							float     ):
  if to_type not in ENERGY_CONVERSION or from_type not in ENERGY_CONVERSION:
    _UpperCAmelCase		:							Optional[Any]							=     (
        f'''Incorrect \'from_type\' or \'to_type\' value: {from_type!r}, {to_type!r}\n'''
        f'''Valid values are: {", ".join(snake_case__     )}'''
    )
    raise ValueError(snake_case__     )
  return value * ENERGY_CONVERSION[from_type] / ENERGY_CONVERSION[to_type]


if __name__ == "__main__":
 import doctest

 doctest.testmod()





