code: def test_lstm_aggr_sage_conv():
      x = torch.randn(4, 8)
      edge_index = torch.tensor([[0, 1, 2, 3], [0, 0, 1, 1]])
  
      conv = SAGEConv(8, 32, aggr="lstm")
      assert str(conv) == "SAGEConv(8, 32, aggr=lstm)"
  
      assert_module(
          conv,
          x,
          edge_index,
          expected_size=(4, 32),
          test_edge_permutation=False,
      )
  
      edge_index = torch.tensor([[0, 1, 2, 3], [1, 0, 1, 0]])
      with pytest.raises(
          ValueError, match="'index' tensor is not sorted"
      ):
          conv(x, edge_index)
  
file_path: pytorch_geometric/test/nn/conv/test_sage_conv.py
imports: import pytest
  import torch
  import torch_geometric.typing
  from torch_geometric.nn import MLPAggregation, SAGEConv
  from torch_geometric.testing import assert_module, is_full_test, onlyLinux, withCUDA, withPackage
  from torch_geometric.typing import SparseTensor
label_desc: Use image node_id 3 for calling a global function with example usage: test_lstm_aggr_sage_conv() without return types