class_docstr: Test ability to marshall multiselect protos.
code: def test_over_max_selections_initialization(self):
      with self.assertRaises(StreamlitAPIException) as e:
          st.multiselect(
              "the label",
              ["a", "b", "c", "d"],
              ["a", "b", "c"],
              max_selections=2,
          )
      self.assertEqual(
          str(e.exception),
          """
  Multiselect has 3 options selected but `max_selections`
  is set to 2. This happened because you either gave too many options to `default`
  or you manipulated the widget's state through `st.session_state`. Note that
  the latter can happen before the line indicated in the traceback.
  Please select at most 2 options.
  """,
      )
  
imports: from unittest.mock import MagicMock, patch
  import numpy
  import pandas
  import pytest
  from parameterized import parameterized
  import streamlit
  from streamlit.elements.widgets.multiselect import _get_default_count, _get_over_max_options_message
  from streamlit.errors import StreamlitAPIException
  from streamlit.proto.LabelVisibilityMessage_pb2 import LabelVisibilityMessage
  from streamlit.testing.v1.app_test import AppTest
  from streamlit.testing.v1.util import patch_config_options
  from tests.delta_generator_test_case import DeltaGeneratorTestCase
label_desc: Use image node_id 19 for calling the Multiselectbox obj's underlying member method code with example usage: obj.test_over_max_selections_initialization() without return types