input: 
  def get_search_results(query: str, collection: str, start_record: int = 1, max_records: int = 1, record_schema: str = None) -> List[Dict[str, List[str]]]:
      """
      Search the KB SRU API with the given query and return a list of search results. Each result is a dictionary where the keys are property names (like 'titles', 'creators') and the values are lists of strings.
      
      >>> from unittest.mock import MagicMock, patch
      >>> with patch('requests.get') as mock_get:
      ...     mock_response = MagicMock()
      ...     mock_response.status_code = 200
      ...     mock_response.content = b'<xml><numberOfRecords>1</numberOfRecords><records><record><titles><title>Sample Title</title></titles><creators><creator>Sample Creator</creator></creators></record></records></xml>'
      ...     mock_get.return_value = mock_response
      ...     results = get_search_results('example query', 'GGC')
      ...     print(results)
      ...
      [{'titles': ['Sample Title'], 'creators': ['Sample Creator']}]
      """
      # Initialize the sru class and perform the search
      sru_instance = sru()
      response_obj = sru_instance.search(query, collection, start_record, max_records, record_schema)
      
      # Extract results from the response
      results = []
      for record_obj in response_obj.records:
          result_dict = {
              'titles': record_obj.titles,
              'creators': record_obj.creators,
              # Add other properties as needed
          }
          results.append(result_dict)
      
      return results
  
output:     import requests
      from xml.etree import ElementTree as ET
  
      class sru:
          def search(self, query, collection, start_record, max_records, record_schema):
              url = f"http://example.com/sru?query={query}&collection={collection}&startRecord={start_record}&maximumRecords={max_records}"
              if record_schema:
                  url += f"&recordSchema={record_schema}"
              response = requests.get(url)
              if response.status_code == 200:
                  return SRUResponse(response.content)
              else:
                  raise Exception("Failed to retrieve data from SRU API")
  
      class SRUResponse:
          def __init__(self, content):
              self.content = content
              self.tree = ET.fromstring(content)
              self.records = self._parse_records()
  
          def _parse_records(self):
              records = []
              for record in self.tree.findall('.//record'):
                  titles = [title.text for title in record.findall('.//title')]
                  creators = [creator.text for creator in record.findall('.//creator')]
                  records.append(SRURecord(titles, creators))
              return records
  
      class SRURecord:
          def __init__(self, titles, creators):
              self.titles = titles
              self.creators = creators
  
      # Initialize the sru class and perform the search
      sru_instance = sru()
      response_obj = sru_instance.search(query, collection, start_record, max_records, record_schema)
      
      # Extract results from the response
      results = []
      for record_obj in response_obj.records:
          result_dict = {
              'titles': record_obj.titles,
              'creators': record_obj.creators,
              # Add other properties as needed
          }
          results.append(result_dict)
      
      return results