Skip to content

Commit b0d54c5

Browse files
committed
Use deepEquals for DefaultValues
Needed for the array properties
1 parent 4cafae3 commit b0d54c5

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

core/src/test/java/org/neo4j/gds/api/DefaultValueTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,24 @@ void createUserDefinedValueTypes(Object valueToSet, Function<DefaultValue, ?> fn
180180
assertThat(fn.apply(defaultValue)).isEqualTo(expectedValue);
181181
}
182182

183+
public static Stream<Arguments> defaultValuesEqual() {
184+
return Stream.of(
185+
Arguments.of(DefaultValue.of(42), DefaultValue.of(42), true),
186+
Arguments.of(DefaultValue.of(43), DefaultValue.of(42), false),
187+
Arguments.of(DefaultValue.of(new double[] {1.0, 2.0, 3.0}), DefaultValue.of(new double[] {1.0, 2.0, 3.0}), true),
188+
Arguments.of(DefaultValue.of(new long[] {1, 2, 3}), DefaultValue.of(new long[] {1, 2, 3}), true),
189+
Arguments.of(DefaultValue.of(new long[] {1, 2, 3}), DefaultValue.of(new double[] {1, 2, 3}), false)
190+
);
191+
}
192+
193+
@ParameterizedTest
194+
@MethodSource("defaultValuesEqual")
195+
void shouldEqualArrayDefaultValues(DefaultValue v1, DefaultValue v2, boolean expected) {
196+
var actual = v1.equals(v2);
197+
198+
assertThat(actual).isEqualTo(expected);
199+
}
200+
183201
private static Stream<Arguments> values() {
184202
return Stream.of(
185203
Arguments.of(42, (Function<DefaultValue, ?>) DefaultValue::longValue, 42L),

graph-projection-api/src/main/java/org/neo4j/gds/api/DefaultValue.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,8 @@ public boolean equals(Object o) {
251251
if (this == o) return true;
252252
if (o == null || getClass() != o.getClass()) return false;
253253
DefaultValue that = (DefaultValue) o;
254-
return Objects.equals(defaultValue, that.defaultValue);
254+
255+
return Objects.deepEquals(defaultValue, that.defaultValue);
255256
}
256257

257258
@Override

graph-projection-api/src/test/java/org/neo4j/gds/NodeProjectionsTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,19 @@ void shouldSupportCaseInsensitiveConfigKeys() {
239239
assertThat(actual.labelProjection(), equalTo("A"));
240240
}
241241

242+
@Test
243+
void shouldSupportArrayDefaultValues() {
244+
NodeProjections.fromObject(Map.of(
245+
"MY_LABEL", Map.of(
246+
"properties", Map.of("prop1", Map.of("defaultValue", new long[]{1, 2, 3}))
247+
),
248+
"OTHER_LABEL", Map.of(
249+
"properties", Map.of("prop1", Map.of("defaultValue", new long[]{1, 2, 3}))
250+
)
251+
)
252+
);
253+
}
254+
242255
static Stream<Arguments> syntacticSugarsSimple() {
243256
return Stream.of(
244257
Arguments.of(

0 commit comments

Comments
 (0)