class_docstr: Simple operator test
code: def test_nnoperator(self):
      self.assertTrue(issubclass(NNOperator, Operator))
  
      nn_operator = load_local_operator("nn_operator", NN_OPERATOR_PATH)
  
      pt_op = nn_operator.TestNNOperator()
      tf_op = nn_operator.TestNNOperator("tensorflow")
      self.assertIsInstance(pt_op, NNOperator)
      self.assertIsInstance(tf_op, NNOperator)
      self.assertEqual(pt_op.framework, "pytorch")
      self.assertEqual(tf_op.framework, "tensorflow")
  
      try:
          pt_op.save_model()
      except NotImplementedError:
          pass
  
      try:
          pt_op.supported_model_names()
      except NotImplementedError:
          pass
  
      pt_op.framework = "tensorflow"
      self.assertEqual(pt_op.framework, tf_op.framework)
  
file_path: towhee/tests/unittests/operators/test_operator_base.py
imports: import os
  import unittest
  from pathlib import Path
  from tests.unittests.mock_operators import ADD_OPERATOR_PATH, load_local_operator
  from towhee.operator import SharedType, PyOperator, NNOperator, Operator
label_desc: Use image node_id 1 for calling the TestOperator obj's underlying member method code with example usage: obj.test_nnoperator() without return types