code: def test_mask_feature():
      x = torch.tensor(
          [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
          dtype=torch.float,
      )
  
      out = mask_feature(x, training=False)
      assert out[0].tolist() == x.tolist()
      assert torch.all(out[1])
  
      torch.manual_seed(4)
      out = mask_feature(x)
      assert out[0].tolist() == [
          [1.0, 2.0, 0.0, 0.0],
          [5.0, 6.0, 0.0, 0.0],
          [9.0, 10.0, 0.0, 0.0],
      ]
      assert out[1].tolist() == [[True, True, False, False]]
  
      torch.manual_seed(5)
      out = mask_feature(x, mode="row")
      assert out[0].tolist() == [
          [1.0, 2.0, 3.0, 4.0],
          [0.0, 0.0, 0.0, 0.0],
          [9.0, 10.0, 11.0, 12.0],
      ]
      assert out[1].tolist() == [[True], [False], [True]]
  
      torch.manual_seed(7)
      out = mask_feature(x, mode="all")
      assert out[0].tolist() == [
          [1.0, 0.0, 3.0, 4.0],
          [0.0, 0.0, 0.0, 8.0],
          [0.0, 10.0, 11.0, 12.0],
      ]
  
      assert out[1].tolist() == [
          [True, False, True, True],
          [False, False, False, True],
          [False, True, True, True],
      ]
  
      torch.manual_seed(7)
      out = mask_feature(x, mode="all", fill_value=-1)
      assert out[0].tolist() == [
          [1.0, -1.0, 3.0, 4.0],
          [-1.0, -1.0, -1.0, 8.0],
          [-1.0, 10.0, 11.0, 12.0],
      ]
  
      assert out[1].tolist() == [
          [True, False, True, True],
          [False, False, False, True],
          [False, True, True, True],
      ]
  
imports: import pytest
  import torch
  from torch_geometric import seed_everything
  from torch_geometric.utils import add_random_edge, is_undirected, mask_feature, shuffle_node
label_desc: Use image node_id 2 for calling a global function with example usage: test_mask_feature() without return types