code: def test_add_child_semantics(self):
      composer = core_encoder.EncoderComposer(
          test_utils.TimesTwoEncodingStage()
      )
      composer.add_child(test_utils.PlusOneEncodingStage(), T2_VALS)
      encoder_1 = composer.make()
      encoder_2 = (
          core_encoder.EncoderComposer(
              test_utils.TimesTwoEncodingStage()
          )
          .add_child(test_utils.PlusOneEncodingStage(), T2_VALS)
          .make()
      )
  
      # Assert that these produce different trees. The add_child method returns
      # the newly created node, and thus the make creates only the child node.
      self.assertNotEqual(
          encoder_1.children.keys(), encoder_2.children.keys()
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import numpy
  import tensorflow
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.core import core_encoder
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.core import encoding_stage
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.testing import test_utils
label_desc: Use image node_id 3 for calling the EncoderComposerTest obj's underlying member method code with example usage: obj.test_add_child_semantics() without return types