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); + } + }