code: def test_recommend_hyperparameters():
      df_100 = pd.DataFrame(
          {
              "prompt": ["prompt"] * 100,
              "completion": ["completion"] * 100,
          }
      )
      assert recommend_hyperparameters(df_100) == {
          "batch_size": 32,
          "max_batch_size": 64,
          "num_virtual_tokens": 10,
          "encoder_hidden_size": 1024,
          "lr": 0.005,
          "epochs": 10,
          "max_seq_length": 104,
      }
  
      df_1000 = pd.DataFrame(
          {
              "prompt": ["prompt"] * 1000,
              "completion": ["completion"] * 1000,
          }
      )
      assert recommend_hyperparameters(df_1000) == {
          "batch_size": 32,
          "max_batch_size": 128,
          "num_virtual_tokens": 10,
          "encoder_hidden_size": 2048,
          "lr": 0.001,
          "epochs": 10,
          "max_seq_length": 104,
      }
      df_10000 = pd.DataFrame(
          {
              "prompt": ["prompt"] * 10000,
              "completion": ["completion"] * 10000,
          }
      )
      assert recommend_hyperparameters(df_10000) == {
          "batch_size": 32,
          "max_batch_size": 128,
          "num_virtual_tokens": 10,
          "encoder_hidden_size": 4096,
          "lr": 0.0005,
          "epochs": 10,
          "max_seq_length": 104,
      }
      df_100000 = pd.DataFrame(
          {
              "prompt": ["prompt"] * 100000,
              "completion": ["completion"] * 100000,
          }
      )
      assert recommend_hyperparameters(df_100000) == {
          "batch_size": 32,
          "max_batch_size": 128,
          "num_virtual_tokens": 10,
          "encoder_hidden_size": 4096,
          "lr": 0.0001,
          "epochs": 10,
          "max_seq_length": 104,
      }
  
imports: import pandas
  import pytest
  from ..customization_dataset_preparation import convert_into_prompt_completion_only, convert_into_template, drop_duplicated_rows, drop_unrequired_fields, get_common_suffix, get_prepared_filename, parse_template, recommend_hyperparameters, show_first_example_in_df, split_into_train_validation, template_mapper, validate_template, warn_and_drop_long_samples, warn_completion_is_not_empty, warn_duplicated_rows, warn_imbalanced_completion, warn_low_n_samples, warn_missing_suffix
label_desc: Use image node_id 1 for calling a global function with example usage: test_recommend_hyperparameters() without return types