code: def test_di_attributes_cached(self):
      G = self.K3.copy()
      assert id(G.in_edges) == id(G.in_edges)
      assert id(G.out_edges) == id(G.out_edges)
      assert id(G.in_degree) == id(G.in_degree)
      assert id(G.out_degree) == id(G.out_degree)
      assert id(G.succ) == id(G.succ)
      assert id(G.pred) == id(G.pred)
  
imports: import pytest
  import networkx
  from networkx.utils import nodes_equal
  from .test_graph import BaseAttrGraphTester, BaseGraphTester
  from .test_graph import TestEdgeSubgraph
  from .test_graph import TestGraph
label_desc: Use image node_id 20 for calling the BaseDiGraphTester obj's underlying member method code with example usage: obj.test_di_attributes_cached() without return types