



'''simple docstring'''


import os

import pytest
import yaml

from datasets.features.features import Features, Value
from datasets.info import DatasetInfo, DatasetInfosDict






@pytest.mark.parametrize(
    "files"       ,	[
        ["full:README.md", "dataset_infos.json"],
        ["empty:README.md", "dataset_infos.json"],
        ["dataset_infos.json"],
        ["full:README.md"],
    ]       ,	)
def  UpperCAmelCase_       (		lowercase__       ,	lowercase__       ):


					'''simple docstring'''







					a_       		=tmp_path_factory.mktemp("dset_infos_dir"       )
					if "full:README.md" in files:
										with open(dataset_infos_dir / "README.md"       ,	"w"       ) as f:
															f.write("---\ndataset_info:\n  dataset_size: 42\n---"       )
					if "empty:README.md" in files:
										with open(dataset_infos_dir / "README.md"       ,	"w"       ) as f:
															f.write(""       )
    # we want to support dataset_infos.json for backward compatibility
					if "dataset_infos.json" in files:
										with open(dataset_infos_dir / "dataset_infos.json"       ,	"w"       ) as f:
															f.write("{\"default\": {\"dataset_size\": 42}}"       )
					a_       		=DatasetInfosDict.from_directory(UpperCamelCase__       )
					assert dataset_infos
					assert dataset_infos["default"].dataset_size == 4_2






@pytest.mark.parametrize(
    "dataset_info"       ,	[
        DatasetInfo(),
        DatasetInfo(
            description="foo"       ,	features=Features({"a": Value("int32"       )}       )       ,	builder_name="builder"       ,	config_name="config"       ,	version="1.0.0"       ,	splits=[{"name": "train"}]       ,	download_size=4_2       ,	),
    ]       ,	)
def  UpperCAmelCase_       (		lowercase__       ,	lowercase__       ):


					'''simple docstring'''







					a_       		=str(UpperCamelCase__       )
					dataset_info.write_to_directory(UpperCamelCase__       )
					a_       		=DatasetInfo.from_directory(UpperCamelCase__       )
					assert dataset_info == reloaded
					assert os.path.exists(os.path.join(UpperCamelCase__       ,	"dataset_info.json"       )       )






def  UpperCAmelCase_       (		):


					'''simple docstring'''







					a_       		=DatasetInfo(
					    description="foo"       ,	citation="bar"       ,	homepage="https://foo.bar"       ,	license="CC0"       ,	features=Features({"a": Value("int32"       )}       )       ,	post_processed={}       ,	supervised_keys=()       ,	task_templates=[]       ,	builder_name="builder"       ,	config_name="config"       ,	version="1.0.0"       ,	splits=[{"name": "train", "num_examples": 4_2}]       ,	download_checksums={}       ,	download_size=1_3_3_7       ,	post_processing_size=4_4_2       ,	dataset_size=1_2_3_4       ,	size_in_bytes=1_3_3_7 + 4_4_2 + 1_2_3_4       ,	)
					a_       		=dataset_info._to_yaml_dict()
					assert sorted(UpperCamelCase__       ) == sorted(DatasetInfo._INCLUDED_INFO_IN_YAML       )
					for key in DatasetInfo._INCLUDED_INFO_IN_YAML:
										assert key in dataset_info_yaml_dict
										assert isinstance(dataset_info_yaml_dict[key]       ,	(list, dict, int, str)       )
					a_       		=yaml.safe_dump(UpperCamelCase__       )
					a_       		=yaml.safe_load(UpperCamelCase__       )
					assert dataset_info_yaml_dict == reloaded






def  UpperCAmelCase_       (		):


					'''simple docstring'''







					a_       		=DatasetInfo()
					a_       		=dataset_info._to_yaml_dict()
					assert dataset_info_yaml_dict == {}






@pytest.mark.parametrize(
    "dataset_infos_dict"       ,	[
        DatasetInfosDict(),
        DatasetInfosDict({"default": DatasetInfo()}       ),
        DatasetInfosDict({"my_config_name": DatasetInfo()}       ),
        DatasetInfosDict(
            {
                "default": DatasetInfo(
                    description="foo"       ,	features=Features({"a": Value("int32"       )}       )       ,	builder_name="builder"       ,	config_name="config"       ,	version="1.0.0"       ,	splits=[{"name": "train"}]       ,	download_size=4_2       ,	)
            }       ),
        DatasetInfosDict(
            {
                "v1": DatasetInfo(dataset_size=4_2       ),
                "v2": DatasetInfo(dataset_size=1_3_3_7       ),
            }       ),
    ]       ,	)
def  UpperCAmelCase_       (		lowercase__       ,	lowercase__       ):


					'''simple docstring'''







					a_       		=str(UpperCamelCase__       )
					dataset_infos_dict.write_to_directory(UpperCamelCase__       )
					a_       		=DatasetInfosDict.from_directory(UpperCamelCase__       )

					# the config_name of the dataset_infos_dict take over the attribute
					for config_name, dataset_info in dataset_infos_dict.items():
										a_       		=config_name
										# the yaml representation doesn't include fields like description or citation
										# so we just test that we can recover what we can from the yaml
										a_       		=DatasetInfo._from_yaml_dict(dataset_info._to_yaml_dict()       )
					assert dataset_infos_dict == reloaded

					if dataset_infos_dict:
										assert os.path.exists(os.path.join(UpperCamelCase__       ,	"README.md"       )       )







'''simple docstring'''


import os

# Precomputes a list of the 100 first triangular numbers
lowercase							       =			[int(0.5 * n * (n + 1)) for n in range(1, 101)]






def  UpperCAmelCase_       (		):


     '''simple docstring'''







     a_       		=os.path.dirname(os.path.realpath(lowercase__       )       )
     a_       		=os.path.join(lowercase__       ,	"words.txt"       )

     a_       		=""
     with open(lowercase__       ) as f:
          a_       		=f.readline()

     a_       		=[word.strip("\""       ) for word in words.strip("\r\n"       ).split(","       )]
     a_       		=[
         word
         for word in [sum(ord(lowercase__       ) - 6_4 for x in word       ) for word in words]
         if word in TRIANGULAR_NUMBERS
     ]
     return len(lowercase__       )


if __name__ == "__main__":
  print(solution())


