code: def test_parse_shape(self):
      def compare(expected, dims, unknown_rank=0):
          attr = self._attr_with_shape(dims, unknown_rank)
          actual = parse.parse_attr(attr)
          self.assertEqual(expected, actual)
  
      compare(None, [], 5)
      compare([100], [(100, "outer")])
      compare([1, 2, 3], [(1, "outer"), (2, "middle"), (3, "inner")])
  
file_path: turicreate/src/external/coremltools_wrap/coremltools/coremltools/converters/mil/frontend/tensorflow/test/test_parse.py
imports: import unittest
  import pytest
  from tensorflow.core.framework import attr_value_pb2
  from tensorflow.core.framework import tensor_shape_pb2
  from tensorflow.core.framework import types_pb2
  from coremltools.converters.mil.mil import types
  import coremltools.converters.mil.frontend.tensorflow.parse
label_desc: Use image node_id 4 for calling the TestParse obj's underlying member method code with example usage: obj.test_parse_shape() without return types