






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

				A	 =      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()













import os


# All paths are set with the intent you should run this script from the root of the repo with the command
# python utils/check_doctest_list.py
lowerCAmelCase_           = '.'


if __name__ == "__main__":
					lowerCAmelCase_           = os.path.join(REPO_PATH, 'utils/documentation_tests.txt')
					lowerCAmelCase_           = []
					lowerCAmelCase_           = []
					with open(doctest_file_path) as fp:
										for line in fp:
															lowerCAmelCase_           = line.strip()
															lowerCAmelCase_           = os.path.join(REPO_PATH, line)
															if not (os.path.isfile(path) or os.path.isdir(path)):
																				non_existent_paths.append(line)
															all_paths.append(path)
					if len(non_existent_paths) > 0:
										lowerCAmelCase_           = '\n'.join(non_existent_paths)
										raise ValueError(f'''`utils/documentation_tests.txt` contains non-existent paths:\n{non_existent_paths}''')
					if all_paths != sorted(all_paths):
										raise ValueError('Files in `utils/documentation_tests.txt` are not in alphabetical order.')





