



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					):





 """simple docstring"""



 def lowercase_		(    self       )						->				Dict:




   """simple docstring"""







   return datasets.DatasetInfo(
       features=datasets.Features({'''content''': datasets.Value('''string'''       )}       )						,     supervised_keys=_UpperCamelCase						,     )
 def lowercase_		(    self						,     a						,     a       )						->				int:




   """simple docstring"""







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



 def lowercase_		(    self						,     a						,     a       )						->				Optional[Any]:




   """simple docstring"""







   import apache_beam as beam

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







class 		_snake_case   (      datasets.BeamBasedBuilder					):





 """simple docstring"""



 def lowercase_		(    self       )						->				Any:




   """simple docstring"""







   return datasets.DatasetInfo(
       features=datasets.Features({'''a''': datasets.Sequence({'''b''': datasets.Value('''string'''       )}       )}       )						,     supervised_keys=_UpperCamelCase						,     )
 def lowercase_		(    self						,     a						,     a       )						->				List[str]:




   """simple docstring"""







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



 def lowercase_		(    self						,     a						,     a       )						->				Dict:




   """simple docstring"""







   import apache_beam as beam

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







def      UpperCAmelCase__			(				) ->			List[str]:
  return [(i, {"content": content}) for i, content in enumerate(['''foo''', '''bar''', '''foobar''']				)]




def      UpperCAmelCase__			(				) ->			Any:
  return [(i, {"a": {"b": [content]}}) for i, content in enumerate(['''foo''', '''bar''', '''foobar''']				)]



class 		_snake_case   (      lowerCamelCase					):





 """simple docstring"""



 @require_beam
 def lowercase_		(    self       )						->				int:




   """simple docstring"""







   _A							     =     len(get_test_dummy_examples()       )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     _A							     =     DummyBeamDataset(cache_dir=_UpperCamelCase						,     beam_runner='''DirectRunner'''       )
     builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(_UpperCamelCase						,     builder.name						,     '''default'''						,     '''0.0.0'''						,     f'''{builder.name}-train.arrow'''       )       )       )
     self.assertDictEqual(builder.info.features						,     datasets.Features({'''content''': datasets.Value('''string'''       )}       )       )
     _A							     =     builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows						,     _UpperCamelCase       )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						,     _UpperCamelCase       )
     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(_UpperCamelCase						,     builder.name						,     '''default'''						,     '''0.0.0'''						,     '''dataset_info.json'''       )       )       )
     del dset
 @require_beam
 def lowercase_		(    self       )						->				Dict:




   """simple docstring"""







   import apache_beam as beam

   _A							     =     beam.io.parquetio.WriteToParquet

   _A							     =     len(get_test_dummy_examples()       )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     _A							     =     DummyBeamDataset(cache_dir=_UpperCamelCase						,     beam_runner='''DirectRunner'''       )
     with patch('''apache_beam.io.parquetio.WriteToParquet'''       ) as write_parquet_mock:
       _A							     =     partial(_UpperCamelCase						,     num_shards=2       )
       builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(
                 _UpperCamelCase						,     builder.name						,     '''default'''						,     '''0.0.0'''						,     f'''{builder.name}-train-00000-of-00002.arrow'''       )       )       )
     self.assertTrue(
         os.path.exists(
             os.path.join(
                 _UpperCamelCase						,     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'''       )}       )       )
     _A							     =     builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows						,     _UpperCamelCase       )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						,     _UpperCamelCase       )
     # 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(_UpperCamelCase						,     builder.name						,     '''default'''						,     '''0.0.0'''						,     '''dataset_info.json'''       )       )       )
     del dset
 @require_beam
 def lowercase_		(    self       )						->				Optional[int]:




   """simple docstring"""







   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     _A							     =     DummyBeamDataset(cache_dir=_UpperCamelCase       )
     self.assertRaises(datasets.builder.MissingBeamOptions						,     builder.download_and_prepare       )



 @require_beam
 def lowercase_		(    self       )						->				Optional[int]:




   """simple docstring"""







   _A							     =     len(get_test_nested_examples()       )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     _A							     =     NestedBeamDataset(cache_dir=_UpperCamelCase						,     beam_runner='''DirectRunner'''       )
     builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(_UpperCamelCase						,     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'''       )}       )}       )       )
     _A							     =     builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows						,     _UpperCamelCase       )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						,     _UpperCamelCase       )
     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(_UpperCamelCase						,     builder.name						,     '''default'''						,     '''0.0.0'''						,     '''dataset_info.json'''       )       )       )
     del dset



'''simple docstring'''
def 					lowerCamelCase_ ( __UpperCamelCase					:       int		)					->	list:







     """simple docstring"""
     _A				=							int(__UpperCamelCase		)
     if n_element < 1:
          _A				=							ValueError('a should be a positive number'		)
          raise my_error

     _A				=							[1]
     _A		,				_A		,				_A				=							(0, 0, 0)
     _A				=							1
     while index < n_element:
          while hamming_list[i] * 2 <= hamming_list[-1]:
               i += 1
          while hamming_list[j] * 3 <= hamming_list[-1]:
               j += 1
          while hamming_list[k] * 5 <= hamming_list[-1]:
               k += 1
          hamming_list.append(
              min(hamming_list[i] * 2							,    hamming_list[j] * 3							,    hamming_list[k] * 5		)		)
          index += 1
     return hamming_list


if __name__ == "__main__":
    lowerCAmelCase						=					input("""Enter the last number (nth term) of the Hamming Number Series: """)
    print("""Formula of Hamming Number Series => 2^i * 3^j * 5^k""")
    lowerCAmelCase						=					hamming(int(n))
    print("""-----------------------------------------------------""")
    print(F'The list with nth numbers is: {hamming_numbers}')
    print("""-----------------------------------------------------""")





