def test_add_documents_with_custom_vector_normalize_embeddings_true(self):
        """
        This test method verifies that when documents with custom vector fields are added to both structured and
        unstructured indexes, the custom vectors are normalized as expected. Specifically this is checked for indexes
        where normalize_embeddings = True is set during index creation

        The test covers the following scenarios:
        1. Adding documents with custom vector fields to both structured and unstructured indexes.
        2. Ensuring that the custom vectors are normalized correctly.

        The test uses the `mock` library to mock the `feed_batch` method of the `VespaClient`.
        """
        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():
                self.add_documents(
                    config=self.config, add_docs_params=AddDocsParams(
                        index_name=index.name,
                        docs=[{
                            "_id": "0",
                            "my_custom_vector": {
                                "content": "custom content is here!!",
                                "vector": self.random_vector_1
                            }
                        }],
                        device="cpu",
                        mappings=self.mappings if isinstance(index, UnstructuredMarqoIndex) else None,
                        tensor_fields=["my_custom_vector"] if isinstance(index, UnstructuredMarqoIndex) else None
                    )
                )
                return True

            assert run()

            call_args = mock_feed_batch.call_args_list
            assert len(call_args) == 1

            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.normalized_random_vector_1})
            elif isinstance(index, UnstructuredMarqoIndex):
                self.assertEqual(vespa_fields["marqo__strings"], ["custom content is here!!"])
                self.assertEqual(vespa_fields["marqo__short_string_fields"], {"my_custom_vector": "custom content is here!!"})
                self.assertEqual(vespa_fields["marqo__chunks"], ['my_custom_vector::custom content is here!!'])
                # legacy unstructured index will not have custom vector normalised
                self.assertEqual(vespa_fields["marqo__embeddings"], {"0": self.random_vector_1})

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

        This test method verifies that when documents with custom vector fields are added to both structured and
        unstructured indexes, the custom vectors are normalized as expected. Specifically this is checked for indexes
        where normalize_embeddings = True is set during index creation

        The test covers the following scenarios:
        1. Adding documents with custom vector fields to both structured and unstructured indexes.
        2. Ensuring that the custom vectors are normalized correctly.

        The test uses the `mock` library to mock the `feed_batch` method of the `VespaClient`.
        
tests/integ_tests/tensor_search/integ_tests/test_custom_vector_field.py