code: def test_to_slug(self):
      self.assertEqual(fou.to_slug("coco_2017"), "coco-2017")
      self.assertEqual(
          fou.to_slug("c+o+c+o 2-0-1-7"), "c-o-c-o-2-0-1-7"
      )
      self.assertEqual(fou.to_slug("cat.DOG"), "cat-dog")
      self.assertEqual(fou.to_slug("---z----"), "z")
      self.assertEqual(
          fou.to_slug("Brian's #$&@ [awesome?] dataset!"),
          "brians-awesome-dataset",
      )
      self.assertEqual(
          fou.to_slug("     sPaM     aNd  EgGs    "),
          "spam-and-eggs",
      )
  
      with self.assertRaises(ValueError):
          fou.to_slug("------")  # too short
  
      with self.assertRaises(ValueError):
          fou.to_slug("a" * 101)
  
imports: import time
  import unittest
  from unittest.mock import MagicMock, patch
  import numpy
  import fiftyone
  import fiftyone.constants
  import fiftyone.core.media
  import fiftyone.core.odm
  import fiftyone.core.utils
  from fiftyone.migrations.runner import MigrationRunner
  from decorators import drop_datasets
  from bson import ObjectId
  from fiftyone.core.odm.utils import load_dataset
label_desc: Use image node_id 3 for calling the CoreUtilsTests obj's underlying member method code with example usage: obj.test_to_slug() without return types