code: def test_string():
      assert_dshape_equal(String(), String())
      assert_dshape_equal(String("U8"), String("U8"))
      assert_dshape_equal(String(1), String(1))
      assert_dshape_equal(String(1, "U8"), String(1, "U8"))
  
      with pytest.raises(AssertionError) as e:
          assert_dshape_equal(String("U8"), String("U16"))
  
      assert "'U8' != 'U16'" in str(e.value)
      assert "_.encoding" in str(e.value)
  
      with pytest.raises(AssertionError) as e:
          assert_dshape_equal(String(1), String(2))
      assert "1 != 2" in str(e.value)
      assert "_.fixlen" in str(e.value)
  
file_path: datashader/datashader/datashape/util/tests/test_testing.py
imports: import pytest
  from datashader.datashape.coretypes import DateTime, R, String, Time, TimeDelta, Tuple, Option, int32, float32
  from datashader.datashape.util import dshape
  from datashader.datashape.util.testing import assert_dshape_equal
label_desc: Use image node_id 6 for calling a global function with example usage: test_string() without return types