code: def test_agglomerative_pickle(tmpdir, datatype, keys, data_size):
      result = {}
  
      def create_mod():
          nrows, ncols, n_info = data_size
          X_train, _, _ = make_dataset(datatype, nrows, ncols, n_info)
          model = agglomerative_model[keys]()
          result["agglomerative"] = model.fit_predict(X_train)
          return model, X_train
  
      def assert_model(pickled_model, X_train):
          pickle_after_predict = pickled_model.fit_predict(X_train)
          assert array_equal(
              result["agglomerative"], pickle_after_predict
          )
  
      pickle_save_load(tmpdir, create_mod, assert_model)
  
imports: from sklearn.model_selection import train_test_split
  from sklearn.manifold import trustworthiness
  from sklearn.datasets import load_iris, make_classification, make_regression
  from sklearn.base import clone
  from cuml.testing.utils import array_equal, unit_param, stress_param, ClassEnumerator, get_classes_from_package, compare_svm, compare_probabilistic_svm
  from cuml.tsa.arima import ARIMA
  import pytest
  import pickle
  import cuml
  from cuml.internals.safe_imports import cpu_only_import, cpu_only_import_from
label_desc: Use image node_id 17 for calling a global function with example usage: test_agglomerative_pickle(tmpdir, datatype, keys, data_size) and returns: model,  X_train