code: def test_build_execution_tree_should_create_correct_exec_node(self):
      # SequentialScanExecutor
      plan = SeqScanPlan(MagicMock(), [])
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, SequentialScanExecutor)
  
      # PPExecutor
      plan = PPScanPlan(MagicMock())
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, PPExecutor)
  
      # CreateExecutor
      plan = CreatePlan(MagicMock(), [], False)
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, CreateExecutor)
  
      # InsertExecutor
      plan = InsertPlan(0, [], [])
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, InsertExecutor)
  
      # CreateFunctionExecutor
      plan = CreateFunctionPlan(
          "test", False, [], [], MagicMock(), None
      )
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, CreateFunctionExecutor)
  
      # DropObjectExecutor
      plan = DropObjectPlan(MagicMock(), "test", False)
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, DropObjectExecutor)
  
      # LoadDataExecutor
      plan = LoadDataPlan(
          MagicMock(),
          MagicMock(),
          MagicMock(),
          MagicMock(),
          MagicMock(),
      )
      executor = PlanExecutor(MagicMock(), plan)._build_execution_tree(
          plan
      )
      self.assertIsInstance(executor, LoadDataExecutor)
  
imports: import unittest
  from unittest.mock import MagicMock, patch
  import pandas
  from evadb.catalog.catalog_type import TableType
  from evadb.catalog.models.table_catalog import TableCatalogEntry
  from evadb.executor.create_executor import CreateExecutor
  from evadb.executor.create_function_executor import CreateFunctionExecutor
  from evadb.executor.drop_object_executor import DropObjectExecutor, DropObjectPlan
  from evadb.executor.insert_executor import InsertExecutor
  from evadb.executor.load_executor import LoadDataExecutor
  from evadb.executor.plan_executor import PlanExecutor
  from evadb.executor.pp_executor import PPExecutor
  from evadb.executor.seq_scan_executor import SequentialScanExecutor
  from evadb.models.storage.batch import Batch
  from evadb.plan_nodes.create_function_plan import CreateFunctionPlan
  from evadb.plan_nodes.create_plan import CreatePlan
  from evadb.plan_nodes.insert_plan import InsertPlan
  from evadb.plan_nodes.load_data_plan import LoadDataPlan
  from evadb.plan_nodes.pp_plan import PPScanPlan
  from evadb.plan_nodes.rename_plan import RenamePlan
  from evadb.plan_nodes.seq_scan_plan import SeqScanPlan
  from evadb.plan_nodes.storage_plan import StoragePlan
label_desc: Use image node_id 2 for calling the PlanExecutorTest obj's underlying member method code with example usage: obj.test_build_execution_tree_should_create_correct_exec_node() without return types