code: def test_array_shape_dynamic_checks():
      basic_test_array_shape_dynamic_checks(
          (8, 4, 5, 10), (None, None, 5, 10), 4, 5, is_valid=True
      )
      basic_test_array_shape_dynamic_checks(
          (8, 20, 10), (None, None, 10), 4, 5, is_valid=True
      )
      basic_test_array_shape_dynamic_checks(
          (8, 21, 10), (None, None, 10), 4, 5, is_valid=False
      )
      basic_test_array_shape_dynamic_checks(
          (8, 4, 6, 10), (None, None, None, 10), 4, 5, is_valid=False
      )
      basic_test_array_shape_dynamic_checks(
          (8, 4), (None, None), 4, 5, is_valid=False
      )
  
imports: import numpy
  import pytest
  import tensorflow
  from tensorflow_addons.seq2seq import attention_wrapper
  from tensorflow_addons.seq2seq import beam_search_decoder, gather_tree
label_desc: Use image node_id 9 for calling a global function with example usage: test_array_shape_dynamic_checks() without return types