# Path: tensorflow_transform/common_types.py
# def is_ragged_feature_available() -> bool:
# def is_ragged_feature(spec: FeatureSpecType) -> bool:


import tensorflow as tf
from tensorflow_transform import common_types
from google.protobuf import text_format
from tensorflow_metadata.proto.v0 import schema_pb2
            'x': _FEATURE_BY_NAME['x'],
            'ragged$row_lengths_1': _FEATURE_BY_NAME['ragged$row_lengths_1'],
            'ragged$row_lengths_2': _FEATURE_BY_NAME['ragged$row_lengths_2'],
        },
    },
    {
        'testcase_name':
            'uniform_3d',
        'name':
            'ragged_uniform_3d',
        'tensor_representation':
            text_format.Parse(
                """
          ragged_tensor {
            feature_path { step: "ragged$value" }
            partition { row_length: "ragged$row_lengths_1" }
            partition { uniform_row_length: 3 }
          }
        """, schema_pb2.TensorRepresentation()),
        'feature_by_name':
            _FEATURE_BY_NAME.copy(),
        'expected_value_feature':
            _FEATURE_BY_NAME['ragged$value'],
        'truncated_feature_by_name': {
            'x': _FEATURE_BY_NAME['x'],
            'ragged$row_lengths_2': _FEATURE_BY_NAME['ragged$row_lengths_2'],
        },
    },
]


# Path: tensorflow_transform/common_types.py
# def is_ragged_feature_available() -> bool:
# def is_ragged_feature(spec: FeatureSpecType) -> bool:


# Path: tensorflow_transform/tf_metadata/schema_utils_test_cases.py
import tensorflow as tf
from tensorflow_transform import common_types
from google.protobuf import text_format
from tensorflow_metadata.proto.v0 import schema_pb2

            'x': _FEATURE_BY_NAME['x'],
            'ragged$row_lengths_1': _FEATURE_BY_NAME['ragged$row_lengths_1'],
            'ragged$row_lengths_2': _FEATURE_BY_NAME['ragged$row_lengths_2'],
        },
    },
    {
        'testcase_name':
            'uniform_3d',
        'name':
            'ragged_uniform_3d',
        'tensor_representation':
            text_format.Parse(
                """
          ragged_tensor {
            feature_path { step: "ragged$value" }
            partition { row_length: "ragged$row_lengths_1" }
            partition { uniform_row_length: 3 }
          }
        """, schema_pb2.TensorRepresentation()),
        'feature_by_name':
            _FEATURE_BY_NAME.copy(),
        'expected_value_feature':
            _FEATURE_BY_NAME['ragged$value'],
        'truncated_feature_by_name': {
            'x': _FEATURE_BY_NAME['x'],
            'ragged$row_lengths_2': _FEATURE_BY_NAME['ragged$row_lengths_2'],
        },
    },
]


if common_types.is_ragged_feature_available():