code: def test_X_minmax_transformer():
      solubility_dataset = load_solubility_data()
      minmax_transformer = dc.trans.MinMaxTransformer(
          transform_X=True, dataset=solubility_dataset
      )
      X, y, w, ids = (
          solubility_dataset.X,
          solubility_dataset.y,
          solubility_dataset.w,
          solubility_dataset.ids,
      )
      solubility_dataset = minmax_transformer.transform(
          solubility_dataset
      )
      X_t, y_t, w_t, ids_t = (
          solubility_dataset.X,
          solubility_dataset.y,
          solubility_dataset.w,
          solubility_dataset.ids,
      )
  
      # Check ids are unchanged before and after transformation
      for id_elt, id_t_elt in zip(ids, ids_t):
          assert id_elt == id_t_elt
  
      # Check X is unchanged since transform_y is true
      np.testing.assert_allclose(y, y_t)
      # Check w is unchanged since transform_y is true
      np.testing.assert_allclose(w, w_t)
  
      # Check minimum and maximum values of transformed y are 0 and 1
      np.testing.assert_allclose(X_t.min(), 0.0)
      np.testing.assert_allclose(X_t.max(), 1.0)
  
      # Check untransform works correctly
      np.testing.assert_allclose(minmax_transformer.untransform(X_t), X)
  
imports: import os
  import numpy
  import deepchem
label_desc: Use image node_id 4 for calling a global function with example usage: test_X_minmax_transformer() without return types