code: def test_shape_dynamic_none_second(
      self, dtype, encoding: features_lib.Encoding
  ):
      np_input_dynamic_1 = np.random.randint(
          256, size=(3, 2, 2), dtype=np.int32
      )
      np_input_dynamic_2 = np.random.randint(
          256, size=(3, 5, 2), dtype=np.int32
      )
  
      self.assertFeature(
          feature=features_lib.Tensor(
              shape=(3, None, 2),  # None not at the first position.
              dtype=dtype,
              encoding=encoding,
          ),
          dtype=dtype,
          shape=(3, None, 2),
          tests=[
              testing.FeatureExpectationItem(
                  value=np_input_dynamic_1,
                  expected=np_input_dynamic_1,
              ),
              testing.FeatureExpectationItem(
                  value=np_input_dynamic_2,
                  expected=np_input_dynamic_2,
              ),
              # Invalid shape
              testing.FeatureExpectationItem(
                  value=np.random.randint(
                      256, size=(2, 3, 1), dtype=np.int32
                  ),
                  raise_cls=ValueError,
                  raise_cls_np=ValueError,
                  raise_msg="are incompatible",
              ),
          ],
      )
  
imports: from absl.testing import parameterized
  import jax.numpy
  import numpy
  import pytest
  import tensorflow
  from tensorflow_datasets import testing
  from tensorflow_datasets.core import features
label_desc: Use image node_id 3 for calling the FeatureTensorTest obj's underlying member method code with example usage: obj.test_shape_dynamic_none_second(dtype, encoding) without return types