

"""simple docstring"""
import os
import shutil
import unittest
from unittest.mock import patch

from transformers.testing_utils import CaptureStd, is_pt_tf_cross_test, require_torch

class        _UpperCamelCase	(						unittest.TestCase	):


  """simple docstring"""





  @patch('''sys.argv'''       ,       ['''fakeprogrampath''', '''env''']      )
  def 							_UpperCAmelCase      ( self					: Any      )	->			Any:


         '''simple docstring'''





         import transformers.commands.transformers_cli

         with CaptureStd() as cs:
                transformers.commands.transformers_cli.main()
         self.assertIn('''Python version'''       ,       cs.out      )
         self.assertIn('''Platform'''       ,       cs.out      )
         self.assertIn('''Using distributed or parallel set-up in script?'''       ,       cs.out      )



  @is_pt_tf_cross_test
  @patch(
      '''sys.argv'''       ,       ['''fakeprogrampath''', '''pt-to-tf''', '''--model-name''', '''hf-internal-testing/tiny-random-gptj''', '''--no-pr''']      )
  def 							_UpperCAmelCase      ( self					: Optional[int]      )	->			Union[str, Any]:


         '''simple docstring'''





         import transformers.commands.transformers_cli

         shutil.rmtree('''/tmp/hf-internal-testing/tiny-random-gptj'''       ,       ignore_errors=snake_case      )  # cleans potential past runs
         transformers.commands.transformers_cli.main()

         # The original repo has no TF weights -- if they exist, they were created by the CLI
         self.assertTrue(os.path.exists('''/tmp/hf-internal-testing/tiny-random-gptj/tf_model.h5'''      )      )



  @require_torch
  @patch('''sys.argv'''       ,       ['''fakeprogrampath''', '''download''', '''hf-internal-testing/tiny-random-gptj''', '''--cache-dir''', '''/tmp''']      )
  def 							_UpperCAmelCase      ( self					: Optional[int]      )	->			str:


         '''simple docstring'''





         import transformers.commands.transformers_cli

         # # remove any previously downloaded model to start clean
         shutil.rmtree('''/tmp/models--hf-internal-testing--tiny-random-gptj'''       ,       ignore_errors=snake_case      )

         # run the command
         transformers.commands.transformers_cli.main()

         # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--tiny-random-gptj
         self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/blobs'''      )      )
         self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/refs'''      )      )
         self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/snapshots'''      )      )




  @require_torch
  @patch(
      '''sys.argv'''       ,       [
          '''fakeprogrampath''',
          '''download''',
          '''hf-internal-testing/test_dynamic_model_with_tokenizer''',
          '''--trust-remote-code''',
          '''--cache-dir''',
          '''/tmp''',
      ]       ,       )
  def 							_UpperCAmelCase      ( self					: Union[str, Any]      )	->			Dict:


         '''simple docstring'''





         import transformers.commands.transformers_cli

         # # remove any previously downloaded model to start clean
         shutil.rmtree('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer'''       ,       ignore_errors=snake_case      )

         # run the command
         transformers.commands.transformers_cli.main()

         # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer
         self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/blobs'''      )      )
         self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/refs'''      )      )
         self.assertTrue(
             os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/snapshots'''      )      )




'''simple docstring'''



import math
from decimal import Decimal, getcontext




def       _a      (		_lowercase   :      int = 4000000    ):





     '''simple docstring'''






     try:
          __UpperCAmelCase      :					List[str]    				=     int(_lowercase    )
     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.'''    )
     __UpperCAmelCase      :					Tuple    				=     100
     __UpperCAmelCase      :					Optional[Any]    				=     (Decimal(5    ) ** Decimal(0.5    ) + 1) / Decimal(2    )

     __UpperCAmelCase      :					Tuple    				=     (math.floor(math.log(n * (phi + 2)     ,   _lowercase    ) - 1    ) // 3) * 3 + 2
     __UpperCAmelCase      :					List[Any]    				=     Decimal(round(phi ** Decimal(index + 1    )    )    ) / (phi + 2)
     __UpperCAmelCase      :					List[str]    				=     num // 2
     return int(_lowercase    )


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