code: def test_gin_conv_bi(g, idtype, aggregator_type):
      g = g.astype(idtype).to(F.ctx())
      gin = nn.GINConv(tf.keras.layers.Dense(12), aggregator_type)
      feat = (
          F.randn((g.number_of_src_nodes(), 5)),
          F.randn((g.number_of_dst_nodes(), 5)),
      )
      h = gin(g, feat)
      assert h.shape == (g.number_of_dst_nodes(), 12)
  
imports: from copy import deepcopy
  import backend
  import dgl
  import dgl.function
  import dgl.nn.tensorflow
  import networkx
  import numpy
  import pytest
  import scipy
  import tensorflow
  from tensorflow.keras import layers
  from utils import parametrize_idtype
  from utils.graph_cases import get_cases, random_bipartite, random_dglgraph, random_graph
label_desc: Use image node_id 16 for calling a global function with example usage: test_gin_conv_bi(g, idtype, aggregator_type) without return types