code: def test_patch_bad_slice_indices(self) -> None:
      ds = bms.ColumnDataSource(
          data=dict(
              a=[10, 11, 12, 13, 14, 15], b=[20, 21, 22, 23, 24, 25]
          )
      )
      with pytest.raises(
          ValueError,
          match=r"Out-of bounds slice index stop \(10\) in patch for column: a",
      ):
          ds.patch(dict(a=[(slice(10), list(range(10)))]))
      with pytest.raises(
          ValueError,
          match=r"Patch slices must have start < end, got slice\(10, 1, None\)",
      ):
          ds.patch(dict(a=[(slice(10, 1), list(range(10)))]))
      with pytest.raises(
          ValueError,
          match=r"Patch slices must have non-negative \(start, stop, step\) values, got slice\(None, 10, -1\)",
      ):
          ds.patch(dict(a=[(slice(None, 10, -1), list(range(10)))]))
      with pytest.raises(
          ValueError,
          match=r"Patch slices must have start < end, got slice\(10, 1, 1\)",
      ):
          ds.patch(dict(a=[(slice(10, 1, 1), list(range(10)))]))
      with pytest.raises(
          ValueError,
          match=r"Patch slices must have start < end, got slice\(10, 1, -1\)",
      ):
          ds.patch(dict(a=[(slice(10, 1, -1), list(range(10)))]))
      with pytest.raises(
          ValueError,
          match=r"Patch slices must have non-negative \(start, stop, step\) values, got slice\(1, 10, -1\)",
      ):
          ds.patch(dict(a=[(slice(1, 10, -1), list(range(10)))]))
  
imports: from __future__ import annotations
  import pytest
  import datetime
  import io
  import numpy
  import pandas
  from bokeh.models import Selection
  from bokeh.util.serialization import convert_datetime_array
  from bokeh.util.warnings import BokehDeprecationWarning
  import bokeh.models.sources
label_desc: Use image node_id 46 for calling the TestColumnDataSource obj's underlying member method code with example usage: obj.test_patch_bad_slice_indices() without return types