code: def test_deep_merge(self):
      def get_input(column_info):
          input_ind = Input(shape=(sum(column_info.indicator_dims),))
          input_emb = Input(shape=(len(column_info.embed_in_dims),))
          input_con = Input(shape=(len(column_info.continuous_cols),))
          return (input_ind, input_emb, input_con)
  
      column_info1 = self.column_info
      model1 = WideAndDeep(5, column_info1, "deep")
      (input_ind1, input_emb1, input_con1) = get_input(column_info1)
      (input1, merged_list1) = model1._deep_merge(
          input_ind1, input_emb1, input_con1
      )
      assert len(input1) == 3
      assert len(merged_list1) == 4
  
      column_info2 = ColumnFeatureInfo(
          indicator_cols=["occupation", "gender"],
          indicator_dims=[21, 3],
          embed_cols=["userId", "itemId"],
          embed_in_dims=[100, 100],
          embed_out_dims=[20, 20],
      )
      model2 = WideAndDeep(5, column_info2, "deep")
      (input_ind2, input_emb2, input_con2) = get_input(column_info2)
      (input2, merged_list2) = model2._deep_merge(
          input_ind2, input_emb2, input_con2
      )
      assert len(input2) == 2
      assert len(merged_list2) == 3
  
      column_info3 = ColumnFeatureInfo(
          indicator_cols=["occupation", "gender"],
          indicator_dims=[21, 3],
          continuous_cols=["age"],
      )
      model3 = WideAndDeep(5, column_info3, "deep")
      (input_ind3, input_emb3, input_con3) = get_input(column_info3)
      (input3, merged_list3) = model3._deep_merge(
          input_ind3, input_emb3, input_con3
      )
      assert len(input3) == 2
      assert len(merged_list3) == 2
  
file_path: analytics-zoo/pyzoo/test/zoo/models/recommendation/test_wideanddeep.py
imports: import pytest
  from pyspark.sql.functions import col, udf
  from zoo.models.recommendation import *
  from zoo.models.recommendation.utils import *
  from zoo.common.nncontext import *
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
label_desc: Use image node_id 10 for calling the TestWideAndDeep obj's underlying member method code with example usage: obj.test_deep_merge() and returns: input_ind,  input_emb,  input_con