code: def test(model, x, y_true, split_idx, evaluator):
      model.eval()
  
      y_pred = model(x)
  
      train_rocauc = evaluator.eval(
          {
              "y_true": y_true[split_idx["train"]],
              "y_pred": y_pred[split_idx["train"]],
          }
      )["rocauc"]
      valid_rocauc = evaluator.eval(
          {
              "y_true": y_true[split_idx["valid"]],
              "y_pred": y_pred[split_idx["valid"]],
          }
      )["rocauc"]
      test_rocauc = evaluator.eval(
          {
              "y_true": y_true[split_idx["test"]],
              "y_pred": y_pred[split_idx["test"]],
          }
      )["rocauc"]
  
      return train_rocauc, valid_rocauc, test_rocauc
  
file_path: ogb/examples/nodeproppred/proteins/mlp.py
imports: import argparse
  import torch
  import torch.nn.functional
  from torch_geometric.utils import scatter
  from ogb.nodeproppred import PygNodePropPredDataset, Evaluator
  from logger import Logger
label_desc: Use image node_id 2 for calling a global function with example usage: test(model, x, y_true, split_idx, evaluator) and returns: train_rocauc,  valid_rocauc,  test_rocauc