From 1f6c2f69974bb0ba00573fe9e3934c884fc043d6 Mon Sep 17 00:00:00 2001 From: alxkm Date: Thu, 24 Jul 2025 19:05:32 +0200 Subject: [PATCH 1/2] test: improve coverage PgVectorEmbeddingDimensionsTests Signed-off-by: alxkm --- .../PgVectorEmbeddingDimensionsTests.java | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java index e3bee959ea5..94d06817e9b 100644 --- a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java +++ b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java @@ -58,26 +58,74 @@ public void explicitlySetDimensions() { @Test public void embeddingModelDimensions() { - given(this.embeddingModel.dimensions()).willReturn(969); + int expectedDimensions = 969; + given(this.embeddingModel.dimensions()).willReturn(expectedDimensions); PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build(); - var dim = pgVectorStore.embeddingDimensions(); - - assertThat(dim).isEqualTo(969); + int actualDimensions = pgVectorStore.embeddingDimensions(); + assertThat(actualDimensions).isEqualTo(expectedDimensions); verify(this.embeddingModel, only()).dimensions(); } @Test public void fallBackToDefaultDimensions() { + given(this.embeddingModel.dimensions()).willThrow(new RuntimeException("Embedding model error")); + + PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build(); + int actualDimensions = pgVectorStore.embeddingDimensions(); - given(this.embeddingModel.dimensions()).willThrow(new RuntimeException()); + assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); + verify(this.embeddingModel, only()).dimensions(); + } + + @Test + public void embeddingModelReturnsZeroDimensions() { + given(this.embeddingModel.dimensions()).willReturn(0); PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build(); - var dim = pgVectorStore.embeddingDimensions(); + int actualDimensions = pgVectorStore.embeddingDimensions(); - assertThat(dim).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); + assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); verify(this.embeddingModel, only()).dimensions(); } + @Test + public void embeddingModelReturnsNegativeDimensions() { + given(this.embeddingModel.dimensions()).willReturn(-5); + + PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build(); + int actualDimensions = pgVectorStore.embeddingDimensions(); + + assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); + verify(this.embeddingModel, only()).dimensions(); + } + + @Test + public void explicitZeroDimensionsUsesEmbeddingModel() { + int embeddingModelDimensions = 768; + given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions); + + PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel) + .dimensions(0) + .build(); + int actualDimensions = pgVectorStore.embeddingDimensions(); + + assertThat(actualDimensions).isEqualTo(embeddingModelDimensions); + verify(this.embeddingModel, only()).dimensions(); + } + + @Test + public void explicitNegativeDimensionsUsesEmbeddingModel() { + int embeddingModelDimensions = 512; + given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions); + + PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel) + .dimensions(-1) + .build(); + int actualDimensions = pgVectorStore.embeddingDimensions(); + + assertThat(actualDimensions).isEqualTo(embeddingModelDimensions); + verify(this.embeddingModel, only()).dimensions(); + } } From 56f65c3fccf37c773bc9202470fe219a261335ed Mon Sep 17 00:00:00 2001 From: alxkm Date: Thu, 24 Jul 2025 19:27:33 +0200 Subject: [PATCH 2/2] style: fix formatting Signed-off-by: alxkm --- .../pgvector/PgVectorEmbeddingDimensionsTests.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java index 94d06817e9b..1062a8647df 100644 --- a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java +++ b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java @@ -107,8 +107,8 @@ public void explicitZeroDimensionsUsesEmbeddingModel() { given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions); PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel) - .dimensions(0) - .build(); + .dimensions(0) + .build(); int actualDimensions = pgVectorStore.embeddingDimensions(); assertThat(actualDimensions).isEqualTo(embeddingModelDimensions); @@ -121,11 +121,12 @@ public void explicitNegativeDimensionsUsesEmbeddingModel() { given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions); PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel) - .dimensions(-1) - .build(); + .dimensions(-1) + .build(); int actualDimensions = pgVectorStore.embeddingDimensions(); assertThat(actualDimensions).isEqualTo(embeddingModelDimensions); verify(this.embeddingModel, only()).dimensions(); } + }