Skip to content

Commit e25f36d

Browse files
committed
Override hashCode where equals is overridden
If two objects are equal according to the equals(Object), then calling the hashCode method on each of the two objects must produce the same integer result. However we have classes in src/tests that overrides equals(Object) without overriding the hashCode method. This overrides the missing hashCode methods. Fixes: #85
1 parent b1f8b9d commit e25f36d

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

src/tests/TypeNameTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ public boolean equals(Object other) {
4545
return ((B) other).data == data;
4646
}
4747

48+
@Override
49+
public int hashCode() {
50+
return Integer.hashCode(data);
51+
}
52+
4853
@Override
4954
public String toString() {
5055
return "B {data=" + data + "}";

src/tests/gov/nasa/jpf/test/mc/data/CGCreatorFactoryTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ public boolean equals(Object o) {
5656
return this.b == other.b;
5757
}
5858

59+
@Override
60+
public int hashCode() {
61+
return Boolean.hashCode(b);
62+
}
5963
}
6064

6165
@Test

src/tests/gov/nasa/jpf/test/mc/data/JSONTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
import org.junit.Test;
2525

26+
import java.util.Arrays;
27+
import java.util.Objects;
28+
2629

2730
/**
2831
* JPF regression test for JSON test object creation
@@ -350,6 +353,11 @@ public boolean equals(Object o) {
350353
Bool bool = (Bool) o;
351354
return this.b == bool.b;
352355
}
356+
357+
@Override
358+
public int hashCode() {
359+
return Boolean.hashCode(b);
360+
}
353361
}
354362

355363
static void checkValue(Object[] expected, Object curVal) {
@@ -399,6 +407,11 @@ public boolean equals(Object o) {
399407

400408
return bs.b == b && bs.s == s && bs.i == i && bs.l == l;
401409
}
410+
411+
@Override
412+
public int hashCode() {
413+
return Objects.hash(b, s, i, l);
414+
}
402415
}
403416

404417
@Test
@@ -457,6 +470,11 @@ public boolean equals(Object o) {
457470

458471
return outer.inner.i == this.inner.i;
459472
}
473+
474+
@Override
475+
public int hashCode() {
476+
return Integer.hashCode(inner.i);
477+
}
460478
}
461479

462480
@Test
@@ -498,6 +516,11 @@ public boolean equals(Object o) {
498516
}
499517
return true;
500518
}
519+
520+
@Override
521+
public int hashCode() {
522+
return Arrays.hashCode(arr);
523+
}
501524
}
502525

503526
@Test
@@ -529,6 +552,11 @@ public boolean equals(Object obj) {
529552
BoxedInteger bic = (BoxedInteger) obj;
530553
return this.bi.equals(bic.bi);
531554
}
555+
556+
@Override
557+
public int hashCode() {
558+
return bi.hashCode();
559+
}
532560
}
533561

534562
@Test
@@ -565,6 +593,11 @@ boolean doublesEqual(double d1, double d2) {
565593

566594
return Math.abs(d1 - d2) <= diff;
567595
}
596+
597+
@Override
598+
public int hashCode() {
599+
return Double.hashCode(d);
600+
}
568601
}
569602

570603
@Test

src/tests/gov/nasa/jpf/util/SortedArrayObjectSetTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import gov.nasa.jpf.util.test.TestJPF;
2222
import org.junit.Test;
2323

24+
import java.util.Objects;
25+
2426

2527
/**
2628
* regression test for SortedArrayObjectSet
@@ -59,6 +61,11 @@ public boolean equals(Object o){
5961

6062
return false;
6163
}
64+
65+
@Override
66+
public int hashCode() {
67+
return Objects.hash(id, x);
68+
}
6269
}
6370

6471
@Test

0 commit comments

Comments
 (0)