code: def test_make_tree_info_complete(self):
      task = _Task(param=1, sub=_SubTask(param=2))
  
      # check after sub task runs
      gokart.build(task, reset_register=False)
      tree = gokart.info.make_tree_info(task)
      expected = r"""
  └─-\(COMPLETE\) _Task\[[a-z0-9]*\]
     └─-\(COMPLETE\) _SubTask\[[a-z0-9]*\]$"""
      self.assertRegex(tree, expected)
  
file_path: gokart/test/test_info.py
imports: import unittest
  from test.tree.test_task_info import _DoubleLoadSubTask, _SubTask, _Task
  from unittest.mock import patch
  import luigi
  import luigi.mock
  from luigi.mock import MockFileSystem, MockTarget
  import gokart
  import gokart.info
label_desc: Use image node_id 4 for calling the TestInfo obj's underlying member method code with example usage: obj.test_make_tree_info_complete() without return types