code: def test_feature_embedding(self):
      out_feat_len = 48
  
      # test without residue dimensions
      feats = np.random.randn(10, 8)
      embed_feats = feature_embedding(feats, out_feat_len)
      self.assertEqual(embed_feats.shape, (10, out_feat_len))
  
      # test with residue dimensions
      feats = np.random.randn(10, 9)
      embed_feats = feature_embedding(feats, out_feat_len)
      self.assertEqual(embed_feats.shape, (10, out_feat_len))
  
imports: from unittest import TestCase, mock
  import numpy
  import torch
  from mmocr.models.textdet.heads.drrg_head import GCN, DRRGHead, LocalGraphs, ProposalLocalGraphs, feature_embedding, normalize_adjacent_matrix
label_desc: Use image node_id 2 for calling the TestUtils obj's underlying member method code with example usage: obj.test_feature_embedding() without return types