"""simple docstring"""





import pytest

from datasets.splits import SplitDict, SplitInfo
from datasets.utils.py_utils import asdict


@pytest.mark.parametrize(
    "split_dict"						,   [
        SplitDict(),
        SplitDict({"train": SplitInfo(name="train"						,   num_bytes=1337						,   num_examples=42						,   dataset_name="my_dataset"      )}      ),
        SplitDict({"train": SplitInfo(name="train"						,   num_bytes=1337						,   num_examples=42      )}      ),
        SplitDict({"train": SplitInfo()}      ),
    ]						,   )
def    lowercase_   (   _lowerCamelCase:	SplitDict      ) ->      List[Any]:



       '''simple docstring'''

       __lowerCamelCase					:		str		   =     split_dict._to_yaml_list()
       assert len(_lowerCamelCase      ) == len(_lowerCamelCase      )
       __lowerCamelCase					:		int		   =     SplitDict._from_yaml_list(_lowerCamelCase      )
       for split_name, split_info in split_dict.items():
              # dataset_name field is deprecated, and is therefore not part of the YAML dump
              __lowerCamelCase					:		str		   =     None
              # the split name of split_dict takes over the name of the split info object
              __lowerCamelCase					:		str		   =     split_name
       assert split_dict == reloaded







@pytest.mark.parametrize(
    "split_info"						,   [SplitInfo(), SplitInfo(dataset_name=_lowerCamelCase      ), SplitInfo(dataset_name="my_dataset"      )]      )
def    lowercase_   (   _lowerCamelCase:	int      ) ->      Optional[int]:



       '''simple docstring'''

       __lowerCamelCase					:		List[str]		   =     asdict(SplitDict({"train": split_info}      )      )
       assert "dataset_name" in split_dict_asdict["train"]
       assert split_dict_asdict["train"]["dataset_name"] == split_info.dataset_name
"""simple docstring"""





def    lowercase_   (   _lowerCamelCase:	int = 600851475143      ) ->      int:



							'''simple docstring'''

							try:
														__lowerCamelCase					:		Optional[Any]		   =     int(_lowerCamelCase      )
							except (TypeError, ValueError):
														raise TypeError("Parameter n must be int or castable to int."      )
							if n <= 0:
														raise ValueError("Parameter n must be greater than or equal to one."      )
							__lowerCamelCase					:		Union[str, Any]		   =     2
							__lowerCamelCase					:		int		   =     0
							if n == 2:
														return 2
							while n > 2:
														while n % i != 0:
																					i += 1
														__lowerCamelCase					:		Dict		   =     i
														while n % i == 0:
																					__lowerCamelCase					:		Union[str, Any]		   =     n // i
														i += 1
							return int(_lowerCamelCase      )


if __name__ == "__main__":
				print(F"""{solution() = }""")