class_docstr: Tests of GraphSAGELinkGenerator class
code: def test_zero_dim_samples(self):
      G = example_graph(feature_size=self.n_feat, is_directed=True)
      data_size = G.number_of_edges()
      edge_labels = [0] * data_size
  
      mapper = DirectedGraphSAGELinkGenerator(
          G, batch_size=self.batch_size, in_samples=[0], out_samples=[0]
      ).flow(G.edges(), edge_labels)
  
      assert len(mapper) == 2
  
      for ii in range(len(mapper)):
          nf, nl = mapper[ii]
          assert len(nf) == 2 ** (len([0]) + 2) - 2
          for f in nf[:2]:
              assert f.shape == (self.batch_size, 1, self.n_feat)
  
          # neighbours
          for f in nf[2:]:
              assert f.shape == (self.batch_size, 0, self.n_feat)
  
          assert len(nl) == min(self.batch_size, data_size)
          assert all(nl == 0)
  
imports: import numpy
  import networkx
  import pytest
  import random
  from stellargraph.mapper import *
  from stellargraph.core.graph import *
  from stellargraph.data.unsupervised_sampler import *
  from ..test_utils.graphs import example_graph, example_graph_random, example_hin_1, repeated_features, weighted_tree
  from ..None import test_utils
label_desc: Use image node_id 4 for calling the Test_DirectedGraphSAGELinkGenerator obj's underlying member method code with example usage: obj.test_zero_dim_samples() without return types