

"""simple docstring"""






import os
import tempfile
from functools import partial
from unittest import TestCase
from unittest.mock import patch

import datasets
import datasets.config

from .utils import require_beam







class       snake_case__  ( datasets.BeamBasedBuilder     ):







			def 			__lowerCAmelCase				(			self			: List[Any]  ):





								'''simple docstring'''



								return datasets.DatasetInfo(
								    features=datasets.Features({"content": datasets.Value("string"  )}  )			,  supervised_keys=lowercase			,  )







			def 			__lowerCAmelCase				(			self			: List[str]			,  lowercase			: Dict			,  lowercase			: str  ):





								'''simple docstring'''



								return [datasets.SplitGenerator(name=datasets.Split.TRAIN			,  gen_kwargs={"examples": get_test_dummy_examples()}  )]







			def 			__lowerCAmelCase				(			self			: List[str]			,  lowercase			: Optional[int]			,  lowercase			: Any  ):





								'''simple docstring'''



								import apache_beam as beam

								return pipeline | "Load Examples" >> beam.Create(lowercase  )







class       snake_case__  ( datasets.BeamBasedBuilder     ):







			def 			__lowerCAmelCase				(			self			: Dict  ):





								'''simple docstring'''



								return datasets.DatasetInfo(
								    features=datasets.Features({"a": datasets.Sequence({"b": datasets.Value("string"  )}  )}  )			,  supervised_keys=lowercase			,  )







			def 			__lowerCAmelCase				(			self			: int			,  lowercase			: Dict			,  lowercase			: List[Any]  ):





								'''simple docstring'''



								return [
								    datasets.SplitGenerator(name=datasets.Split.TRAIN			,  gen_kwargs={"examples": get_test_nested_examples()}  )
								]







			def 			__lowerCAmelCase				(			self			: int			,  lowercase			: str			,  lowercase			: int  ):





								'''simple docstring'''



								import apache_beam as beam

								return pipeline | "Load Examples" >> beam.Create(lowercase  )



def   lowercase_	(    ):




					'''simple docstring'''






					return [(i, {"content": content}) for i, content in enumerate(["foo", "bar", "foobar"]	)]



def   lowercase_	(    ):




					'''simple docstring'''






					return [(i, {"a": {"b": [content]}}) for i, content in enumerate(["foo", "bar", "foobar"]	)]







class       snake_case__  ( lowerCAmelCase_     ):







			@require_beam
			def 			__lowerCAmelCase				(			self			: int  ):





								'''simple docstring'''



								UpperCAmelCase			:   Tuple      =				len(get_test_dummy_examples()  )
								with tempfile.TemporaryDirectory() as tmp_cache_dir:
													UpperCAmelCase			:   int      =				DummyBeamDataset(cache_dir=lowercase			,  beam_runner="DirectRunner"  )
													builder.download_and_prepare()
													self.assertTrue(
													    os.path.exists(
													        os.path.join(lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  f"""{builder.name}-train.arrow"""  )  )  )
													self.assertDictEqual(builder.info.features			,  datasets.Features({"content": datasets.Value("string"  )}  )  )
													UpperCAmelCase			:   Optional[Any]      =				builder.as_dataset()
													self.assertEqual(dset["train"].num_rows			,  lowercase  )
													self.assertEqual(dset["train"].info.splits["train"].num_examples			,  lowercase  )
													self.assertDictEqual(dset["train"][0]			,  get_test_dummy_examples()[0][1]  )
													self.assertDictEqual(
													    dset["train"][expected_num_examples - 1]			,  get_test_dummy_examples()[expected_num_examples - 1][1]  )
													self.assertTrue(
													    os.path.exists(os.path.join(lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  "dataset_info.json"  )  )  )
													del dset







			@require_beam
			def 			__lowerCAmelCase				(			self			: Optional[int]  ):





								'''simple docstring'''



								import apache_beam as beam

								UpperCAmelCase			:   Union[str, Any]      =				beam.io.parquetio.WriteToParquet

								UpperCAmelCase			:   Optional[Any]      =				len(get_test_dummy_examples()  )
								with tempfile.TemporaryDirectory() as tmp_cache_dir:
													UpperCAmelCase			:   List[Any]      =				DummyBeamDataset(cache_dir=lowercase			,  beam_runner="DirectRunner"  )
													with patch("apache_beam.io.parquetio.WriteToParquet"  ) as write_parquet_mock:
																		UpperCAmelCase			:   Optional[int]      =				partial(lowercase			,  num_shards=2  )
																		builder.download_and_prepare()
													self.assertTrue(
													    os.path.exists(
													        os.path.join(
													            lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  f"""{builder.name}-train-00000-of-00002.arrow"""  )  )  )
													self.assertTrue(
													    os.path.exists(
													        os.path.join(
													            lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  f"""{builder.name}-train-00000-of-00002.arrow"""  )  )  )
													self.assertDictEqual(builder.info.features			,  datasets.Features({"content": datasets.Value("string"  )}  )  )
													UpperCAmelCase			:   Tuple      =				builder.as_dataset()
													self.assertEqual(dset["train"].num_rows			,  lowercase  )
													self.assertEqual(dset["train"].info.splits["train"].num_examples			,  lowercase  )
													# Order is not preserved when sharding, so we just check that all the elements are there
													self.assertListEqual(sorted(dset["train"]["content"]  )			,  sorted(["foo", "bar", "foobar"]  )  )
													self.assertTrue(
													    os.path.exists(os.path.join(lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  "dataset_info.json"  )  )  )
													del dset







			@require_beam
			def 			__lowerCAmelCase				(			self			: int  ):





								'''simple docstring'''



								with tempfile.TemporaryDirectory() as tmp_cache_dir:
													UpperCAmelCase			:   int      =				DummyBeamDataset(cache_dir=lowercase  )
													self.assertRaises(datasets.builder.MissingBeamOptions			,  builder.download_and_prepare  )







			@require_beam
			def 			__lowerCAmelCase				(			self			: str  ):





								'''simple docstring'''



								UpperCAmelCase			:   List[Any]      =				len(get_test_nested_examples()  )
								with tempfile.TemporaryDirectory() as tmp_cache_dir:
													UpperCAmelCase			:   Optional[Any]      =				NestedBeamDataset(cache_dir=lowercase			,  beam_runner="DirectRunner"  )
													builder.download_and_prepare()
													self.assertTrue(
													    os.path.exists(
													        os.path.join(lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  f"""{builder.name}-train.arrow"""  )  )  )
													self.assertDictEqual(
													    builder.info.features			,  datasets.Features({"a": datasets.Sequence({"b": datasets.Value("string"  )}  )}  )  )
													UpperCAmelCase			:   List[Any]      =				builder.as_dataset()
													self.assertEqual(dset["train"].num_rows			,  lowercase  )
													self.assertEqual(dset["train"].info.splits["train"].num_examples			,  lowercase  )
													self.assertDictEqual(dset["train"][0]			,  get_test_nested_examples()[0][1]  )
													self.assertDictEqual(
													    dset["train"][expected_num_examples - 1]			,  get_test_nested_examples()[expected_num_examples - 1][1]  )
													self.assertTrue(
													    os.path.exists(os.path.join(lowercase			,  builder.name			,  "default"			,  "0.0.0"			,  "dataset_info.json"  )  )  )
													del dset





"""simple docstring"""






from functools import reduce

snake_case_   :   List[Any]        =       (
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)



def   lowercase_	(    _lowercase       :		str = N	):




					'''simple docstring'''






					return max(
					    # mypy cannot properly interpret reduce
					    int(reduce(lambda _lowercase							,      _lowercase	: str(int(_lowercase	) * int(_lowercase	)	)							,      n[i : i + 13]	)	)
					    for i in range(len(_lowercase	) - 12	)	)


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


