From 968bb71891ea308a785b0b80554df3d91f3d2c3c Mon Sep 17 00:00:00 2001 From: Giuseppe Villani Date: Tue, 19 Dec 2023 15:03:05 +0100 Subject: [PATCH] Fix Neo4jEmbeddingStoreTest error (#368) See https://github.com/langchain4j/langchain4j/actions/runs/7259989386/job/19778223144 Changed to `MATCH (n:%s) RETURN n ORDER BY n.text` to make tests more deterministic, since rarely the sorting of "MATCH (n:%s) RETURN n" is not based on the order of arrival of the `embeddingModel.embed(..)`. --- .../store/embedding/neo4j/Neo4jEmbeddingStoreTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/langchain4j-neo4j/src/test/java/dev/langchain4j/store/embedding/neo4j/Neo4jEmbeddingStoreTest.java b/langchain4j-neo4j/src/test/java/dev/langchain4j/store/embedding/neo4j/Neo4jEmbeddingStoreTest.java index 7d9c66f5c40..607427062c1 100644 --- a/langchain4j-neo4j/src/test/java/dev/langchain4j/store/embedding/neo4j/Neo4jEmbeddingStoreTest.java +++ b/langchain4j-neo4j/src/test/java/dev/langchain4j/store/embedding/neo4j/Neo4jEmbeddingStoreTest.java @@ -144,7 +144,6 @@ void should_add_embedding_with_segment() { assertThat(match.embedding()).isEqualTo(embedding); assertThat(match.embedded()).isEqualTo(segment); - checkEntitiesCreated(relevant.size(), iterator -> { List otherProps = Collections.singletonList(DEFAULT_TEXT_PROP); @@ -264,9 +263,9 @@ void should_add_multiple_embeddings() { @Test void should_add_multiple_embeddings_with_segments() { - TextSegment firstSegment = TextSegment.from(randomUUID()); + TextSegment firstSegment = TextSegment.from("firstText"); Embedding firstEmbedding = embeddingModel.embed(firstSegment.text()).content(); - TextSegment secondSegment = TextSegment.from(randomUUID()); + TextSegment secondSegment = TextSegment.from("secondText"); Embedding secondEmbedding = embeddingModel.embed(secondSegment.text()).content(); List ids = embeddingStore.addAll( @@ -482,7 +481,10 @@ private void checkEntitiesCreated(int expectedSize, Consumer> nod } private void checkEntitiesCreated(int expectedSize, String labelName, Consumer> nodeConsumer) { - String query = String.format("MATCH (n:%s) RETURN n", SchemaNames.sanitize(labelName).get()); + String query = "MATCH (n:%s) RETURN n ORDER BY n.%s".formatted( + SchemaNames.sanitize(labelName).get(), + DEFAULT_TEXT_PROP + ); List n = session.run(query) .list(i -> i.get("n").asNode());