def test_add_documents_with_different_field_types(self):
        """
        Makes sure custom vector field doesn't mess up other kinds of fields
        Add a document with a custom vector field, multimodal, and standard:
        Mock vespa client call
        """
        # Mixed mapping to test both multimodal and custom vector
        multimodal_mappings = {
            "my_multimodal": {
                "type": "multimodal_combination",
                "weights": {
                    "multimodal_text": 0.4,
                    "multimodal_image": 0.6
                }
            },
            "my_custom_vector": {
                "type": "custom_vector"
            }
        }

        for index in self.indexes:
            mock_feed_batch = mock.MagicMock()
            mock_feed_batch.return_value = FeedBatchResponse(
                responses=[FeedBatchDocumentResponse(
                    status=200,
                    pathId='/document/v1/aa5ed6d56e6aa4a048d95b496b79659f9/aa5ed6d56e6aa4a048d95b496b79659f9/docid/0',
                    id='id:aa5ed6d56e6aa4a048d95b496b79659f9:aa5ed6d56e6aa4a048d95b496b79659f9::0', message=None)
                ],
                errors=False)

            @mock.patch("marqo.vespa.vespa_client.VespaClient.feed_batch", mock_feed_batch)
            def run():
                add_docs_res = self.add_documents(
                    config=self.config, add_docs_params=AddDocsParams(
                        index_name=index.name,
                        docs=[{
                            "_id": "0",
                            "multimodal_text": "blah",
                            "multimodal_image": TestImageUrls.HIPPO_REALISTIC.value,
                            "my_custom_vector": {
                                "content": "custom content is here!!",
                                "vector": self.random_vector_1
                            }
                        }],
                        device="cpu",
                        mappings=multimodal_mappings if isinstance(index, UnstructuredMarqoIndex) else None,
                        tensor_fields=["my_custom_vector", "my_multimodal"] if isinstance(index, UnstructuredMarqoIndex) else None
                    )
                )
                return True

            assert run()

            call_args = mock_feed_batch.call_args_list
            self.assertEqual(1, len(call_args))
            self.maxDiff = None
            feed_batch_args = call_args[0].args
            self.assertIsInstance(feed_batch_args[0][0], VespaDocument)
            vespa_fields = feed_batch_args[0][0].fields

            if isinstance(index, (StructuredMarqoIndex, SemiStructuredMarqoIndex)):
                self.assertEqual(vespa_fields["marqo__chunks_my_custom_vector"], ['custom content is here!!'])
                self.assertEqual(vespa_fields["marqo__embeddings_my_custom_vector"], {"0": self.random_vector_1})
                self.assertEqual(vespa_fields["marqo__chunks_my_multimodal"], [
                    f'{{"multimodal_text": "blah", "multimodal_image": "{TestImageUrls.HIPPO_REALISTIC.value}"}}'])
                self.assertIn("0", vespa_fields["marqo__embeddings_my_multimodal"]) # Just checking that multimodal vector is in embeddings, but not actually checking its value

            elif isinstance(index, UnstructuredMarqoIndex):
                self.assertEqual(vespa_fields["marqo__strings"],
                                 ['blah',
                                  TestImageUrls.HIPPO_REALISTIC.value,
                                  'custom content is here!!'])
                self.assertEqual(vespa_fields["marqo__long_string_fields"],
                                 {'multimodal_image': TestImageUrls.HIPPO_REALISTIC.value})
                self.assertEqual(vespa_fields["marqo__short_string_fields"],
                                 {'multimodal_text': 'blah', 'my_custom_vector': 'custom content is here!!'})
                self.assertEqual(vespa_fields["marqo__chunks"], ['my_custom_vector::custom content is here!!',
                                                                 f'my_multimodal::{{"multimodal_text": "blah", "multimodal_image": "{TestImageUrls.HIPPO_REALISTIC.value}"}}'])
                self.assertEqual(vespa_fields["marqo__embeddings"]["0"], self.random_vector_1), # First vector is custom vector
                self.assertIn("1", vespa_fields["marqo__embeddings"])   # Just checking that multimodal vector is in embeddings, but not actually checking its value

            self.assertEqual(vespa_fields["marqo__vector_count"], 2)

        Makes sure custom vector field doesn't mess up other kinds of fields
        Add a document with a custom vector field, multimodal, and standard:
        Mock vespa client call
        
tests/integ_tests/tensor_search/integ_tests/test_custom_vector_field.py