code: def test_on_separate_dims(
      active_dims_1: Optional[Sequence[int]],
      active_dims_2: Optional[Sequence[int]],
      is_separate: bool,
  ) -> None:
      kernel_1 = Linear(active_dims=active_dims_1)
      kernel_2 = SquaredExponential(active_dims=active_dims_2)
      assert kernel_1.on_separate_dims(kernel_2) == is_separate
      assert kernel_2.on_separate_dims(kernel_1) == is_separate
      assert kernel_1.on_separate_dims(kernel_1) is False
      assert kernel_2.on_separate_dims(kernel_2) is False
  
imports: from typing import Any, Optional, Sequence, Tuple, Type, Union, cast
  import numpy
  import pytest
  import tensorflow
  from check_shapes import check_shapes
  from numpy.testing import assert_allclose
  import gpflow.ci_utils
  from gpflow.base import AnyNDArray, TensorType
  from gpflow.config import default_float
  from gpflow.kernels import RBF, AnisotropicStationary, ArcCosine, ChangePoints, Constant, Convolutional, Coregion, Cosine, IsotropicStationary, Kernel, Linear, LinearCoregionalization, Matern12, Matern32, Matern52, MultioutputKernel, Periodic, Polynomial, RationalQuadratic, SeparateIndependent, SharedIndependent, SquaredExponential, Stationary, White
  from gpflow.kernels.categorical import _concat_inputs_with_latents
  from tests.gpflow.kernels.reference import ref_arccosine_kernel, ref_periodic_kernel, ref_rbf_kernel
label_desc: Use image node_id 31 for calling a global function with example usage: test_on_separate_dims(active_dims_1, active_dims_2, is_separate) without return types