class_docstr: Tests specific to dict-of-dict-of-dict digraph data structure
class_docstr_tok: ["Tests","specific","to","dict-of-dict-of-dict","digraph","data","structure"]
code: def test_add_edges_from(self):
      G = self.Graph()
      G.add_edges_from([(0, 1), (0, 2, {"data": 3})], data=2)
      assert G.adj == {
          0: {1: {"data": 2}, 2: {"data": 3}},
          1: {},
          2: {},
      }
      assert G.succ == {
          0: {1: {"data": 2}, 2: {"data": 3}},
          1: {},
          2: {},
      }
      assert G.pred == {0: {}, 1: {0: {"data": 2}}, 2: {0: {"data": 3}}}
  
      with pytest.raises(nx.NetworkXError):
          G.add_edges_from([(0,)])  # too few in tuple
      with pytest.raises(nx.NetworkXError):
          G.add_edges_from([(0, 1, 2, 3)])  # too many in tuple
      with pytest.raises(TypeError):
          G.add_edges_from([0])  # not a tuple
      with pytest.raises(ValueError, match="None cannot be a node"):
          G.add_edges_from([(None, 3), (3, 2)])
  
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 4 for calling the TestDiGraph obj's underlying member method code with example usage: obj.test_add_edges_from() without return types