From 449f449480f23c23a536740ff08c6c523dde5485 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Tue, 3 Jun 2025 21:20:32 +0200 Subject: [PATCH] added the failing test by @paulklint for issue #308 --- .../vallang/issues/RegressionTests.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/io/usethesource/vallang/issues/RegressionTests.java b/src/test/java/io/usethesource/vallang/issues/RegressionTests.java index d58fc1bd..35bb3330 100644 --- a/src/test/java/io/usethesource/vallang/issues/RegressionTests.java +++ b/src/test/java/io/usethesource/vallang/issues/RegressionTests.java @@ -17,6 +17,7 @@ import io.usethesource.vallang.ISet; import io.usethesource.vallang.ISourceLocation; import io.usethesource.vallang.IString; +import io.usethesource.vallang.ITuple; import io.usethesource.vallang.IValueFactory; import io.usethesource.vallang.ValueProvider; import io.usethesource.vallang.io.StandardTextReader; @@ -78,4 +79,18 @@ void escapeNormalCharacters(IValueFactory valueFactory, TypeStore typeStore) thr assertEquals("$", s.getValue()); } + @ParameterizedTest @ArgumentsSource(ValueProvider.class) + void setDifferenceInThePresenceOfHashCollisions( + IValueFactory vf, + @GivenValue("{<\"990evT\",[]>,<\"\",[]>,<\"\\a00\",[]>}") + ISet s, + @GivenValue("<\"\\a00\",[]>") + ITuple elem) { + + var lhs = s.delete(elem); + var rhs = s.stream().filter(p -> !p.equals(elem)).collect(vf.setWriter()); + + assertEquals(lhs, rhs); + } + }