code: def testSparseNdUpdate(self):
      v = self.create_variable([0.0, 0.0, 0.0, 0.0])
      self.assertAllEqual(
          v.scatter_nd_sub([[3], [1]], [1.0, 2.0], name="sub"),
          [0.0, -2.0, 0.0, -1.0],
      )
      self.assertAllEqual(
          v.scatter_nd_add([[2], [0]], [1.0, 2.0], name="add"),
          [2.0, -2.0, 1.0, -1.0],
      )
      self.assertAllEqual(
          v.scatter_nd_update([[1], [3]], [3.0, 3.0], name="update"),
          [2.0, 3.0, 1.0, 3.0],
      )
  
imports: from absl.testing import parameterized
  from tensorflow.python.distribute import combinations
  from tensorflow.python.distribute import strategy_combinations
  from tensorflow.python.distribute import test_util
  from tensorflow.python.distribute import values_v2
  from tensorflow.python.eager import def_function
  from tensorflow.python.eager import test
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import variables
label_desc: Use image node_id 15 for calling the _VariableInterfaceTestBase obj's underlying member method code with example usage: obj.testSparseNdUpdate() without return types