code: def test_sparse_to_sparse(self):
      def single_arg_sparse_fn(x):
          y0 = ops.transpose(x, axes=(0, 2, 1))
          y1 = ops.squeeze(ops.expand_dims(x, axis=3), axis=3)
          y2 = ops.reshape(ops.reshape(x, (-1, 9)), (-1, 3, 3))
          return (y0, y1, y2)
  
      x = KerasTensor(shape=(None, 3, 3), sparse=True)
      ys = backend.compute_output_spec(single_arg_sparse_fn, x)
      for y in ys:
          self.assertEqual(y.shape, (None, 3, 3))
          self.assertTrue(y.sparse)
  
      def three_args_2_kwarg_sparse_fn(x1, x2, x3=None):
          y0 = ops.add(x1, x2)  # sparse, sparse
          y1 = ops.concatenate([x1, x2], axis=0)  # sparse, sparse
          y2 = ops.divide(x1, x3)  # sparse, dense
          y3 = ops.matmul(x1, x2)  # sparse, sparse
          y4 = ops.multiply(x1, x2)  # sparse, sparse
          y5 = ops.multiply(x1, x3)  # sparse, dense
          return (y0, y1, y2, y3, y4, y5)
  
      x1 = KerasTensor(shape=(None, 3, 3), sparse=True)
      x2 = KerasTensor(shape=(None, 3, 3), sparse=True)
      x3 = KerasTensor(shape=(None, 3, 3), sparse=False)
      ys = backend.compute_output_spec(
          three_args_2_kwarg_sparse_fn, x1, x2, x3=x3
      )
      for y in ys:
          self.assertEqual(y.shape, (None, 3, 3))
          self.assertTrue(y.sparse)
  
file_path: keras/keras/backend/tests/compute_output_spec_test.py
imports: import unittest
  import pytest
  from keras import backend
  from keras import ops
  from keras.backend.common.keras_tensor import KerasTensor
label_desc: Use image node_id 3 for calling the ComputeOutputSpecTest obj's underlying member method code with example usage: obj.test_sparse_to_sparse() and returns: y0,  y1,  y2, y0,  y1,  y2,  y3,  y4,  y5