def _assert_field_types(self, id: str, field_type_pairs: List[Tuple[str, MarqoFieldTypes]]):
        """
        Verify that the field types of a document match the expected types.

        This method retrieves the document from Vespa and checks that the field types
        match the expected types provided in the `field_type_pairs` list.

        Args:
            id (str): The ID of the document to check.
            field_type_pairs (List[Tuple[str, MarqoFieldTypes]]): A list of tuples where each tuple contains
                a field name and its expected type.

        Raises:
            AssertionError: If any field type does not match the expected type.
        """

        raw_vespa_doc = self.config.vespa_client.get_document(id, self.index.schema_name)
        vespa_fields = raw_vespa_doc.document.dict().get('fields')

        for field_name, field_type in field_type_pairs:
            expected_type = field_type.value if field_type is not None else None
            self.assertEqual(vespa_fields.get('marqo__field_types').get(field_name), expected_type,
                             f"Expected {field_name} to have type {expected_type} for document {id}")

        self._assert_field_types_not_changed(id, vespa_fields, field_type_pairs)

        Verify that the field types of a document match the expected types.

        This method retrieves the document from Vespa and checks that the field types
        match the expected types provided in the `field_type_pairs` list.

        Args:
            id (str): The ID of the document to check.
            field_type_pairs (List[Tuple[str, MarqoFieldTypes]]): A list of tuples where each tuple contains
                a field name and its expected type.

        Raises:
            AssertionError: If any field type does not match the expected type.
        
tests/integ_tests/core/document/test_partial_update_semi_structured.py