code: def test_dtype_non_writable_attributes_deletion(self):
      dt = np.dtype(np.double)
      attr = [
          "subdtype",
          "descr",
          "str",
          "name",
          "base",
          "shape",
          "isbuiltin",
          "isnative",
          "isalignedstruct",
          "fields",
          "metadata",
          "hasobject",
      ]
  
      for s in attr:
          assert_raises(AttributeError, delattr, dt, s)
  
imports: import functools
  import operator
  import pickle
  import sys
  import types
  from itertools import permutations
  from typing import Any
  from unittest import skipIf
  import pytest
  from pytest import raises
  from torch.testing._internal.common_utils import instantiate_parametrized_tests, parametrize, run_tests, subtest, TEST_WITH_TORCHDYNAMO, TestCase, xpassIfTorchDynamo
  import numpy
label_desc: Use image node_id 1 for calling the TestDtypeAttributeDeletion obj's underlying member method code with example usage: obj.test_dtype_non_writable_attributes_deletion() without return types