class_docstr: map node test.
class_docstr_tok: ["map","node","test","."]
code: def test_generator_multi_output(self):
      node_info = {
          "type": "map",
          "inputs": ("num",),
          "outputs": ("vec1", "vec2"),
          "op_info": {
              "type": "hub",
              "operator": "local/multi_gen",
              "tag": "main",
              "init_args": None,
              "init_kws": {},
          },
          "iter_info": {"type": "map", "param": None},
          "config": {"name": "test"},
          "next_nodes": ["_output"],
      }
  
      in_que = DataQueue([("num", ColumnType.QUEUE)])
      in_que.put((4,))
      in_que.seal()
      out_que1 = DataQueue(
          [
              ("num", ColumnType.QUEUE),
              ("vec1", ColumnType.QUEUE),
              ("vec2", ColumnType.QUEUE),
          ]
      )
      node_repr = NodeRepr(uid="test_node", **node_info)
      node = create_node(node_repr, self.op_pool, [in_que], [out_que1])
      self.assertTrue(node.initialize())
      f = self.thread_pool.submit(node.process)
      f.result()
      print(node.err_msg)
      self.assertTrue(node.status == NodeStatus.FINISHED)
      self.assertTrue(out_que1.sealed)
      self.assertEqual(
          out_que1.get_dict(),
          {"num": 4, "vec1": [0, 1, 2, 3], "vec2": [0, 1, 2, 3]},
      )
  
imports: import unittest
  import time
  import copy
  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 9 for calling the TestMapNode obj's underlying member method code with example usage: obj.test_generator_multi_output() without return types