code: def test_nodemapper_zero_samples():
      n_feat = 4
      n_batch = 2
  
      # test graph
      G = example_graph(feature_size=n_feat)
      mapper = GraphSAGENodeGenerator(
          G, batch_size=n_batch, num_samples=[0]
      ).flow(G.nodes())
  
      # This is an edge case, are we sure we want this behaviour?
      assert len(mapper) == 2
      for ii in range(len(mapper)):
          nf, nl = mapper[ii]
          assert len(nf) == 2
          assert nf[0].shape == (n_batch, 1, n_feat)
          assert nf[1].shape == (n_batch, 0, n_feat)
          assert nl is None
  
      # test graph
      G = example_graph(feature_size=n_feat)
      mapper = GraphSAGENodeGenerator(
          G, batch_size=n_batch, num_samples=[0, 0]
      ).flow(G.nodes())
  
      # This is an edge case, are we sure we want this behaviour?
      assert len(mapper) == 2
      for ii in range(len(mapper)):
          nf, nl = mapper[ii]
          assert len(nf) == 3
          assert nf[0].shape == (n_batch, 1, n_feat)
          assert nf[1].shape == (n_batch, 0, n_feat)
          assert nf[1].shape == (n_batch, 0, n_feat)
          assert nl is None
  
imports: from stellargraph.core.graph import *
  from stellargraph.mapper import *
  import networkx
  import numpy
  import random
  import pytest
  import pandas
  import scipy.sparse
  from ..test_utils.graphs import example_graph, example_graph_random, example_hin_1, create_graph_features, repeated_features, weighted_tree
  from ..None import test_utils
label_desc: Use image node_id 10 for calling a global function with example usage: test_nodemapper_zero_samples() without return types