code: def test_diag_op_scalar(v_scalar):
      ctx = F.ctx()
      shape = (3, 4)
      D1 = diag(torch.arange(1, 4).to(ctx), shape=shape)
  
      # D * v
      D2 = D1 * v_scalar
      assert torch.allclose(
          D1.val * v_scalar, D2.val, rtol=1e-4, atol=1e-4
      )
      assert D1.shape == D2.shape
  
      # v * D
      D2 = v_scalar * D1
      assert torch.allclose(
          v_scalar * D1.val, D2.val, rtol=1e-4, atol=1e-4
      )
      assert D1.shape == D2.shape
  
      # D / v
      D2 = D1 / v_scalar
      assert torch.allclose(
          D1.val / v_scalar, D2.val, rtol=1e-4, atol=1e-4
      )
      assert D1.shape == D2.shape
  
      # D ^ v
      D1 = diag(torch.arange(1, 4).to(ctx))
      D2 = D1**v_scalar
      assert torch.allclose(
          D1.val**v_scalar, D2.val, rtol=1e-4, atol=1e-4
      )
      assert D1.shape == D2.shape
  
      # pow(D, v)
      D2 = power(D1, v_scalar)
      assert torch.allclose(
          D1.val**v_scalar, D2.val, rtol=1e-4, atol=1e-4
      )
      assert D1.shape == D2.shape
  
      with pytest.raises(TypeError):
          D1 + v_scalar
      with pytest.raises(TypeError):
          v_scalar + D1
  
      with pytest.raises(TypeError):
          D1 - v_scalar
      with pytest.raises(TypeError):
          v_scalar - D1
  
file_path: dgl/tests/python/pytorch/sparse/test_elementwise_op.py
imports: import operator
  import backend
  import dgl.sparse
  import pytest
  import torch
  from dgl.sparse import diag, power
label_desc: Use image node_id 2 for calling a global function with example usage: test_diag_op_scalar(v_scalar) without return types