code: def test_degree_p4(self):
      G = nx.path_graph(4)
      answer = {0: 2, 1: 1.5, 2: 1.5, 3: 2}
      nd = nx.average_neighbor_degree(G)
      assert nd == answer
  
      D = G.to_directed()
      nd = nx.average_neighbor_degree(D)
      assert nd == answer
  
      D = nx.DiGraph(G.edges(data=True))
      nd = nx.average_neighbor_degree(D)
      assert nd == {0: 1, 1: 1, 2: 0, 3: 0}
      nd = nx.average_neighbor_degree(D, "in", "out")
      assert nd == {0: 0, 1: 1, 2: 1, 3: 1}
      nd = nx.average_neighbor_degree(D, "out", "in")
      assert nd == {0: 1, 1: 1, 2: 1, 3: 0}
      nd = nx.average_neighbor_degree(D, "in", "in")
      assert nd == {0: 0, 1: 0, 2: 1, 3: 1}
  
file_path: networkx/networkx/algorithms/assortativity/tests/test_neighbor_degree.py
imports: import pytest
  import networkx
label_desc: Use image node_id 1 for calling the TestAverageNeighbor obj's underlying member method code with example usage: obj.test_degree_p4() without return types