code: def test_APPNP_linkmodel_apply_dense():
      G, features = create_graph_features()
      adj = G.to_adjacency_matrix()
      adj = np.array(adj.todense()[None, :, :])
  
      generator = FullBatchLinkGenerator(G, sparse=False, method="none")
      appnpnModel = APPNP(
          [3], generator, activations=["relu"], dropout=0.5
      )
  
      x_in, x_out = appnpnModel.in_out_tensors()
      model = keras.Model(inputs=x_in, outputs=x_out)
  
      # Check fit method
      out_indices = np.array([[[0, 1], [1, 2]]], dtype="int32")
      preds_1 = model.predict([features[None, :, :], out_indices, adj])
      assert preds_1.shape == (1, 2, 2, 3)
  
      # Check fit method
      preds_2 = model.predict(generator.flow([("a", "b"), ("b", "c")]))
      assert preds_2.shape == (1, 2, 2, 3)
  
      assert preds_1 == pytest.approx(preds_2)
  
file_path: stellargraph/tests/layer/test_appnp.py
imports: from stellargraph.layer.appnp import *
  from stellargraph.mapper import FullBatchNodeGenerator, FullBatchLinkGenerator
  from stellargraph import StellarGraph
  from stellargraph.core.utils import GCN_Aadj_feats_op
  import networkx
  import pandas
  import numpy
  from tensorflow import keras
  import pytest
  from ..test_utils.graphs import create_graph_features
  from ..None import test_utils
label_desc: Use image node_id 4 for calling a global function with example usage: test_APPNP_linkmodel_apply_dense() without return types