class_docstr: map node test.
class_docstr_tok: ["map","node","test","."]
code: def test_normal(self):
      in_que1 = DataQueue(
          [("url", ColumnType.SCALAR), ("num1", ColumnType.QUEUE)]
      )
      in_que2 = DataQueue(
          [("url", ColumnType.SCALAR), ("num2", ColumnType.QUEUE)]
      )
      out_que1 = DataQueue(
          [
              ("url", ColumnType.SCALAR),
              ("num1", ColumnType.QUEUE),
              ("num2", ColumnType.QUEUE),
          ]
      )
      out_que2 = DataQueue([("num1", ColumnType.QUEUE)])
      node = create_node(
          self.node_repr,
          self.op_pool,
          [in_que1, in_que2],
          [out_que1, out_que2],
      )
      self.assertTrue(node.initialize())
      f = self.thread_pool.submit(node.process)
  
      in_que1.put(("test", 1))
      in_que1.put(("test", 2))
      in_que1.put(("test", 3))
  
      in_que2.put(("test", 2))
      in_que2.put(("test", 3))
      in_que2.put(("test", 4))
      in_que1.seal()
      in_que2.seal()
      f.result()
      self.assertTrue(node.status == NodeStatus.FINISHED)
      self.assertTrue(out_que1.sealed)
      self.assertTrue(out_que2.sealed)
      exp = [
          {"url": "test", "num1": 1, "num2": 2},
          {"url": "test", "num1": 2, "num2": 3},
          {"url": "test", "num1": 3, "num2": 4},
      ]
  
      ret = []
      while out_que1.size > 0:
          ret.append(out_que1.get_dict())
      self.assertEqual(ret, exp)
  
      exp = [{"num1": 1}, {"num1": 2}, {"num1": 3}]
  
      ret = []
      while out_que2.size > 0:
          ret.append(out_que2.get_dict())
      self.assertEqual(ret, exp)
  
file_path: towhee/tests/unittests/runtime/test_concat.py
imports: import unittest
  import time
  import uuid
  from concurrent.futures import ThreadPoolExecutor
  from towhee.runtime.node_repr import NodeRepr
  from towhee.runtime.nodes import create_node, NodeStatus
  from towhee.runtime.data_queue import DataQueue, ColumnType, Empty
  from towhee.runtime.operator_manager import OperatorPool
label_desc: Use image node_id 2 for calling the TestMapNode obj's underlying member method code with example usage: obj.test_normal() without return types