code: def test_ufunc():
      for attr in [
          "nin",
          "nargs",
          "nout",
          "ntypes",
          "identity",
          "signature",
          "types",
      ]:
          assert getattr(da.log, attr) == getattr(np.log, attr)
  
      with pytest.raises(AttributeError):
          da.log.not_an_attribute
  
      assert repr(da.log) == repr(np.log)
      assert "nin" in dir(da.log)
      assert "outer" in dir(da.log)
  
imports: from __future__ import annotations
  import pickle
  import warnings
  from functools import partial
  from operator import add
  import pytest
  import dask.array
  from dask.array.ufunc import da_frompyfunc
  from dask.array.utils import assert_eq
  from dask.base import tokenize
label_desc: Use image node_id 2 for calling a global function with example usage: test_ufunc() without return types