code: def test_create_function_plan(self):
      function_name = "function"
      or_replace = False
      if_not_exists = True
      functionIO = "functionIO"
      inputs = [functionIO, functionIO]
      outputs = [functionIO]
      impl_path = "test"
      ty = "classification"
      node = CreateFunctionPlan(
          function_name,
          or_replace,
          if_not_exists,
          inputs,
          outputs,
          impl_path,
          ty,
      )
      self.assertEqual(node.opr_type, PlanOprType.CREATE_FUNCTION)
      self.assertEqual(node.or_replace, or_replace)
      self.assertEqual(node.if_not_exists, if_not_exists)
      self.assertEqual(node.inputs, [functionIO, functionIO])
      self.assertEqual(node.outputs, [functionIO])
      self.assertEqual(node.impl_path, impl_path)
      self.assertEqual(node.function_type, ty)
  
imports: import unittest
  from inspect import isabstract, signature
  from test.util import get_all_subclasses, get_mock_object
  import pytest
  from evadb.catalog.catalog_type import ColumnType
  from evadb.catalog.models.column_catalog import ColumnCatalogEntry
  from evadb.parser.table_ref import TableInfo, TableRef
  from evadb.parser.types import FileFormatType, ObjectType
  from evadb.plan_nodes.abstract_plan import AbstractPlan
  from evadb.plan_nodes.create_function_plan import CreateFunctionPlan
  from evadb.plan_nodes.create_plan import CreatePlan
  from evadb.plan_nodes.drop_object_plan import DropObjectPlan
  from evadb.plan_nodes.insert_plan import InsertPlan
  from evadb.plan_nodes.load_data_plan import LoadDataPlan
  from evadb.plan_nodes.rename_plan import RenamePlan
  from evadb.plan_nodes.types import PlanOprType
  from evadb.plan_nodes.union_plan import UnionPlan
label_desc: Use image node_id 5 for calling the PlanNodeTests obj's underlying member method code with example usage: obj.test_create_function_plan() without return types