class_docstr: Window
class_docstr_tok: ["Window"]
code: def test_schema_cover(self):
      in_que = DataQueue(
          [("num1", ColumnType.SCALAR), ("num2", ColumnType.QUEUE)]
      )
      in_que.put((1, 1))
      in_que.put((1, 2))
      in_que.put((1, 3))
      in_que.seal()
      out_que1 = DataQueue(
          [("num1", ColumnType.QUEUE), ("num2", ColumnType.QUEUE)]
      )
      out_que2 = DataQueue([("num1", ColumnType.QUEUE)])
      info = copy.deepcopy(self.node_info)
      info["iter_info"]["param"]["size"] = 2
      info["iter_info"]["param"]["step"] = 2
      info["outputs"] = ("num1", "num2")
      node = create_node(
          NodeRepr(uid="test_node", **info),
          self.op_pool,
          [in_que],
          [out_que1, out_que2],
      )
      self.assertTrue(node.initialize())
      f = self.thread_pool.submit(node.process)
      f.result()
  
      exp_ret1 = [
          {"num1": 2, "num2": 3},
          {"num1": 1, "num2": 3},
      ]
  
      exp_ret2 = [{"num1": 2}, {"num1": 1}]
  
      ret1 = []
      while out_que1.size > 0:
          ret1.append(out_que1.get_dict())
      self.assertEqual(ret1, exp_ret1)
  
      ret2 = []
      while out_que2.size > 0:
          ret2.append(out_que2.get_dict())
      self.assertEqual(ret2, exp_ret2)
  
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.nodes._window import _WindowBuffer
  from towhee.runtime.data_queue import DataQueue, ColumnType, Empty
  from towhee.runtime.operator_manager import OperatorPool
label_desc: Use image node_id 7 for calling the TestWindowNode obj's underlying member method code with example usage: obj.test_schema_cover() without return types