code: def test_canonicalize(self):
      assert Device.canonicalize(None) == Device.DEFAULT
      assert Device.canonicalize("CPU") == "CPU"
      assert Device.canonicalize("cpu") == "CPU"
      assert Device.canonicalize("GPU") == "GPU"
      assert Device.canonicalize("GPU:0") == "GPU"
      assert Device.canonicalize("gpu:0") == "GPU"
      assert Device.canonicalize("GPU:1") == "GPU:1"
      assert Device.canonicalize("gpu:1") == "GPU:1"
      assert Device.canonicalize("GPU:2") == "GPU:2"
      assert (
          Device.canonicalize("disk:/dev/shm/test")
          == "DISK:/dev/shm/test"
      )
  
imports: import unittest
  from tinygrad.device import Device
label_desc: Use image node_id 1 for calling the TestDevice obj's underlying member method code with example usage: obj.test_canonicalize() without return types