code: def test_forward(self):
      in_channels = [64, 128, 256, 512]
      size = [112, 56, 28, 14]
      asf_cfgs = [
          None,
          dict(attention_type="ScaleChannelSpatial"),
      ]
      for flag in [False, True]:
          for asf_cfg in asf_cfgs:
              fpnc = FPNC(
                  in_channels=in_channels,
                  bias_on_lateral=flag,
                  bn_re_on_lateral=flag,
                  bias_on_smooth=flag,
                  bn_re_on_smooth=flag,
                  asf_cfg=asf_cfg,
                  conv_after_concat=flag,
              )
          fpnc.init_weights()
          inputs = []
          for i in range(4):
              inputs.append(
                  torch.rand(1, in_channels[i], size[i], size[i])
              )
          outputs = fpnc.forward(inputs)
          self.assertListEqual(list(outputs.size()), [1, 256, 112, 112])
  
imports: import unittest
  import torch
  from mmocr.models.textdet.necks import FPNC
label_desc: Use image node_id 1 for calling the TestFPNC obj's underlying member method code with example usage: obj.test_forward() without return types