Skip to content

Commit 0a430b9

Browse files
committed
test: improve coverage PgVectorEmbeddingDimensionsTests
1 parent 128c45a commit 0a430b9

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,74 @@ public void explicitlySetDimensions() {
5858

5959
@Test
6060
public void embeddingModelDimensions() {
61-
given(this.embeddingModel.dimensions()).willReturn(969);
61+
int expectedDimensions = 969;
62+
given(this.embeddingModel.dimensions()).willReturn(expectedDimensions);
6263

6364
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
64-
var dim = pgVectorStore.embeddingDimensions();
65-
66-
assertThat(dim).isEqualTo(969);
65+
int actualDimensions = pgVectorStore.embeddingDimensions();
6766

67+
assertThat(actualDimensions).isEqualTo(expectedDimensions);
6868
verify(this.embeddingModel, only()).dimensions();
6969
}
7070

7171
@Test
7272
public void fallBackToDefaultDimensions() {
73+
given(this.embeddingModel.dimensions()).willThrow(new RuntimeException("Embedding model error"));
74+
75+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
76+
int actualDimensions = pgVectorStore.embeddingDimensions();
7377

74-
given(this.embeddingModel.dimensions()).willThrow(new RuntimeException());
78+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
79+
verify(this.embeddingModel, only()).dimensions();
80+
}
81+
82+
@Test
83+
public void embeddingModelReturnsZeroDimensions() {
84+
given(this.embeddingModel.dimensions()).willReturn(0);
7585

7686
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
77-
var dim = pgVectorStore.embeddingDimensions();
87+
int actualDimensions = pgVectorStore.embeddingDimensions();
7888

79-
assertThat(dim).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
89+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
8090
verify(this.embeddingModel, only()).dimensions();
8191
}
8292

93+
@Test
94+
public void embeddingModelReturnsNegativeDimensions() {
95+
given(this.embeddingModel.dimensions()).willReturn(-5);
96+
97+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
98+
int actualDimensions = pgVectorStore.embeddingDimensions();
99+
100+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
101+
verify(this.embeddingModel, only()).dimensions();
102+
}
103+
104+
@Test
105+
public void explicitZeroDimensionsUsesEmbeddingModel() {
106+
int embeddingModelDimensions = 768;
107+
given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions);
108+
109+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel)
110+
.dimensions(0)
111+
.build();
112+
int actualDimensions = pgVectorStore.embeddingDimensions();
113+
114+
assertThat(actualDimensions).isEqualTo(embeddingModelDimensions);
115+
verify(this.embeddingModel, only()).dimensions();
116+
}
117+
118+
@Test
119+
public void explicitNegativeDimensionsUsesEmbeddingModel() {
120+
int embeddingModelDimensions = 512;
121+
given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions);
122+
123+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel)
124+
.dimensions(-1)
125+
.build();
126+
int actualDimensions = pgVectorStore.embeddingDimensions();
127+
128+
assertThat(actualDimensions).isEqualTo(embeddingModelDimensions);
129+
verify(this.embeddingModel, only()).dimensions();
130+
}
83131
}

0 commit comments

Comments
 (0)