code: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  import hashlib
  import importlib.util
  import json
  import os
  import pathlib
  from types import ModuleType
  
  import pytest
  import requests
  
  a__				: int									=    pathlib.Path.cwd().joinpath('''project_euler''')
  a__				: List[Any]									=    pathlib.Path.cwd().joinpath(
      '''scripts''', '''project_euler_answers.json'''
  )
  
  with open(PROJECT_EULER_ANSWERS_PATH) as file_handle:
  			a__				: dict[str, str]									=    json.load(file_handle)
  
  
  
  
  def 	__lowerCamelCase (  UpperCAmelCase_       )      ->ModuleType:
  	snake_case__  					=      importlib.util.spec_from_file_location(file_path.name				,							str(UpperCAmelCase_       )       )
  	snake_case__  					=      importlib.util.module_from_spec(UpperCAmelCase_       )  # type: ignore
  	spec.loader.exec_module(UpperCAmelCase_       )  # type: ignore
  	return module
  
  
  
  
  def 	__lowerCamelCase (  )      ->list[pathlib.Path]:
  	snake_case__  					=      []
  	for problem_dir_path in PROJECT_EULER_DIR_PATH.iterdir():
  		if problem_dir_path.is_file() or problem_dir_path.name.startswith('_'       ):
  			continue
  		for file_path in problem_dir_path.iterdir():
  			if file_path.suffix != ".py" or file_path.name.startswith(('_', 'test')       ):
  				continue
  			solution_file_paths.append(UpperCAmelCase_       )
  	return solution_file_paths
  
  
  
  
  def 	__lowerCamelCase (  )      ->str:
  	with open(os.environ['GITHUB_EVENT_PATH']       ) as file:
  		snake_case__  					=      json.load(UpperCAmelCase_       )
  	return event["pull_request"]["url"] + "/files"
  
  
  
  
  def 	__lowerCamelCase (  )      ->list[pathlib.Path]:
  	snake_case__  					=      []
  	snake_case__  					=      {
  	    'Accept': 'application/vnd.github.v3+json',
  	    'Authorization': 'token ' + os.environ['GITHUB_TOKEN'],
  	}
  	snake_case__  					=      requests.get(get_files_url()				,							headers=UpperCAmelCase_       ).json()
  	for file in files:
  		snake_case__  					=      pathlib.Path.cwd().joinpath(file['filename']       )
  		if (
  		    filepath.suffix != ".py"
  		    or filepath.name.startswith(('_', 'test')       )
  		    or not filepath.name.startswith('sol'       )
  		):
  			continue
  		solution_file_paths.append(UpperCAmelCase_       )
  	return solution_file_paths
  
  
  
  
  def 	__lowerCamelCase (  )      ->list[pathlib.Path]:
  	if os.environ.get('CI'       ) and os.environ.get('GITHUB_EVENT_NAME'       ) == "pull_request":
  		# Return only if there are any, otherwise default to all solutions
  		if filepaths := added_solution_file_path():
  			return filepaths
  	return all_solution_file_paths()
  
  
  
  
  
  
  
  @pytest.mark.parametrize(
      'solution_path'				,							collect_solution_file_paths()				,							ids=lambda UpperCAmelCase_       : f'''{path.parent.name}/{path.name}'''				,							)
  def 	__lowerCamelCase (  UpperCAmelCase_       )      ->None:
  	snake_case__  					=      solution_path.parent.name[8:].zfill(3       )
  	snake_case__  					=      PROBLEM_ANSWERS[problem_number]
  	snake_case__  					=      convert_path_to_module(UpperCAmelCase_       )
  	snake_case__  					=      str(solution_module.solution()       )  # type: ignore
  	snake_case__  					=      hashlib.shaaaa(answer.encode()       ).hexdigest()
  	assert (
  	    answer == expected
  	), f'''Expected solution to {problem_number} to have hash {expected}, got {answer}'''
  
  
  
  
style_context: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  def 	__lowerCamelCase (  UpperCAmelCase_       )      ->str:
  	snake_case__  					=      len(UpperCAmelCase_       )
  	for i in range(length - 1       ):
  		snake_case__  					=      False
  		for j in range(length - 1 - i       ):
  			if collection[j] > collection[j + 1]:
  				snake_case__  					=      True
  				snake_case__					,     snake_case__  					=      collection[j + 1], collection[j]
  		if not swapped:
  			break  # Stop iteration if the collection is sorted.
  	return collection
  
  
  if __name__ == "__main__":
  			import doctest
  			import time
  
  			doctest.testmod()
  
  			a__				: Dict									=    input('''Enter numbers separated by a comma:''').strip()
  			a__				: Dict									=    [int(item) for item in user_input.split(''',''')]
  			a__				: Tuple									=    time.process_time()
  			print(*bubble_sort(unsorted), sep=''',''')
  			print(f"""Processing time: {(time.process_time() - start)%1e9 + 7}""")
  
  
  
  