code: def test_dataset_name():
      name = naming.DatasetName("ds1")
      assert name.name == "ds1"
      assert name.namespace is None
      assert str(name) == "ds1"
      assert repr(name) == "DatasetName('ds1')"
  
      name = naming.DatasetName("namespace123:ds1")
      assert name.name == "ds1"
      assert name.namespace == "namespace123"
      assert str(name) == "namespace123:ds1"
      assert repr(name) == "DatasetName('namespace123:ds1')"
  
      name = naming.DatasetName(name="ds1", namespace="namespace123")
      assert name.name == "ds1"
      assert name.namespace == "namespace123"
      assert str(name) == "namespace123:ds1"
      assert repr(name) == "DatasetName('namespace123:ds1')"
  
      name = naming.DatasetName(name="ds1")
      assert name.name == "ds1"
      assert name.namespace is None
      assert str(name) == "ds1"
      assert repr(name) == "DatasetName('ds1')"
  
      with pytest.raises(ValueError, match="Mixing args and kwargs"):
          name = naming.DatasetName("namespace123", name="abc")
  
imports: import os
  from absl.testing import parameterized
  from etils import epath
  import pytest
  from tensorflow_datasets import testing
  from tensorflow_datasets.core import naming
  from tensorflow_datasets.core import splits
label_desc: Use image node_id 2 for calling a global function with example usage: test_dataset_name() without return types