code: def test_fit_data_creator(self):
      auto_est = AutoEstimator.from_torch(
          model_creator=model_creator,
          optimizer=get_optimizer,
          loss=nn.BCELoss(),
          logs_dir="/tmp/zoo_automl_logs",
          resources_per_trial={"cpu": 2},
          name="test_fit",
      )
      search_space = create_linear_search_space()
      search_space.update({"shuffle": hp.grid_search([True, False])})
      auto_est.fit(
          data=train_dataloader_creator,
          validation_data=valid_dataloader_creator,
          search_space=search_space,
          n_sampling=2,
          epochs=1,
          metric="accuracy",
      )
      assert auto_est.get_best_model()
      best_config = auto_est.get_best_config()
      assert all(k in best_config.keys() for k in search_space.keys())
  
imports: import os
  from unittest import TestCase
  import numpy
  import pytest
  import torch
  import torch.nn
  from torch.utils.data import Dataset, DataLoader
  from bigdl.orca.automl.auto_estimator import AutoEstimator
  from bigdl.orca.automl.pytorch_utils import LR_NAME
  from bigdl.orca.automl import hp
label_desc: Use image node_id 4 for calling the TestPyTorchAutoEstimator obj's underlying member method code with example usage: obj.test_fit_data_creator() without return types