code: def test_mpnn_classification():
      # load datasets
      featurizer = MolGraphConvFeaturizer(use_edges=True)
      tasks, dataset, transformers, metric = get_dataset(
          "classification", featurizer=featurizer
      )
  
      # initialize models
      n_tasks = len(tasks)
      model = MPNNModel(
          mode="classification", n_tasks=n_tasks, learning_rate=0.0005
      )
  
      # overfit test
      model.fit(dataset, nb_epoch=200)
      scores = model.evaluate(dataset, [metric], transformers)
      assert scores["mean-roc_auc_score"] >= 0.80
  
      # test on a small MoleculeNet dataset
      from deepchem.molnet import load_bace_classification
  
      tasks, all_dataset, transformers = load_bace_classification(
          featurizer=featurizer
      )
      train_set, _, _ = all_dataset
      model = MPNNModel(
          mode="classification",
          n_tasks=len(tasks),
          node_out_feats=2,
          edge_hidden_feats=2,
          num_step_message_passing=1,
          num_step_set2set=1,
          num_layer_set2set=1,
      )
      model.fit(train_set, nb_epoch=1)
  
file_path: deepchem/deepchem/models/tests/test_mpnn.py
imports: import pytest
  import tempfile
  import numpy
  import deepchem
  from deepchem.feat import MolGraphConvFeaturizer
  from deepchem.models.tests.test_graph_models import get_dataset
label_desc: Use image node_id 2 for calling a global function with example usage: test_mpnn_classification() without return types