code: def test_multi_aggr(multi_aggr_tuple):
      # The 'cat' combine mode will expand the output dimensions by
      # the number of aggregators which is 3 here, while the other
      # modes keep output dimensions unchanged.
      aggr_kwargs, expand = multi_aggr_tuple
      x = torch.randn(7, 16)
      index = torch.tensor([0, 0, 1, 1, 1, 2, 3])
      ptr = torch.tensor([0, 2, 5, 6, 7])
  
      aggrs = ["mean", "sum", "max"]
      aggr = MultiAggregation(aggrs, **aggr_kwargs)
      aggr.reset_parameters()
      assert str(aggr) == (
          "MultiAggregation([\n"
          "  MeanAggregation(),\n"
          "  SumAggregation(),\n"
          "  MaxAggregation(),\n"
          f"], mode={aggr_kwargs['mode']})"
      )
  
      out = aggr(x, index)
      assert out.size() == (4, expand * x.size(1))
  
      if not torch_geometric.typing.WITH_TORCH_SCATTER:
          with pytest.raises(
              NotImplementedError, match="requires 'index'"
          ):
              aggr(x, ptr=ptr)
      else:
          assert torch.allclose(out, aggr(x, ptr=ptr))
  
      jit = torch.jit.script(aggr)
      assert torch.allclose(out, jit(x, index))
  
imports: import pytest
  import torch
  import torch_geometric.typing
  from torch_geometric.nn import MultiAggregation
label_desc: Use image node_id 1 for calling a global function with example usage: test_multi_aggr(multi_aggr_tuple) without return types