"""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 							SCREAMING_SNAKE_CASE					(      _lowerCamelCase						:	SplitDict     )	->				Any:
  _lowerCAmelCase						:	Any        =					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						:	Union[str, Any]        =					None
    # the split name of split_dict takes over the name of the split info object
    _lowerCAmelCase						:	Union[str, Any]        =					split_name
  assert split_dict == reloaded






@pytest.mark.parametrize(
    """split_info"""      ,[SplitInfo(), SplitInfo(dataset_name=_lowerCamelCase     ), SplitInfo(dataset_name="""my_dataset"""     )]     )
def 							SCREAMING_SNAKE_CASE					(      _lowerCamelCase						:	str     )	->				Any:
  # For backward compatibility, we need asdict(split_dict) to return split info dictrionaries with the "dataset_name"
  # field even if it's deprecated. This way old versionso of `datasets` can still reload dataset_infos.json files
  _lowerCAmelCase						:	Union[str, Any]        =					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 							SCREAMING_SNAKE_CASE					(      _lowerCamelCase						:	int = 100     )	->				int:
  _lowerCAmelCase						:	Optional[Any]        =					n * (n + 1) * (2 * n + 1) / 6
  _lowerCAmelCase						:	Tuple        =					(n * (n + 1) / 2) ** 2
  return int(square_of_sum - sum_of_squares     )


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




