code: def test_value_properties():
      ndav = C.NDArrayView((1, 2, 3), np.float32, device=C.cpu())
      val = C.Value(batch=ndav)
  
      dev = val.device
      assert isinstance(dev, C.DeviceDescriptor)
      assert str(dev) == "CPU"
  
      assert val.is_read_only == False
  
      assert val.is_sparse == False
  
      assert val.dtype == np.float32
  
imports: import pytest
  import numpy
  import scipy.sparse
  import cntk
  from cntk.ops.tests.ops_test_utils import cntk_device
  from cntk.internal import _value_as_sequence_or_array
  from cntk import asvalue
  from cntk.tests.test_utils import _to_dense, _to_csr
label_desc: Use image node_id 8 for calling a global function with example usage: test_value_properties() without return types