early exit it toString was only used if data array was empty
This commit is contained in:
@@ -738,9 +738,8 @@ public final class IntList implements Serializable, Cloneable {
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
if (data == null)
|
||||
return "null";
|
||||
final int iMax = data.length - 1;
|
||||
assert data != null : "data cannot be null";
|
||||
final int iMax = size - 1;
|
||||
if (iMax == -1)
|
||||
return "[]";
|
||||
|
||||
|
||||
@@ -521,9 +521,13 @@ public class IntListTest {
|
||||
final IntList a = new IntList();
|
||||
final IntList b = new IntList();
|
||||
|
||||
// on empty lists
|
||||
Assert.assertTrue(a.equals(b));
|
||||
Assert.assertEquals(a.hashCode(), b.hashCode());
|
||||
|
||||
// on equal lists
|
||||
a.addAll(1, 2, 3, 4);
|
||||
b.addAll(1, 2, 3, 4);
|
||||
|
||||
Assert.assertTrue(a.equals(b));
|
||||
Assert.assertEquals(a.hashCode(), b.hashCode());
|
||||
|
||||
@@ -533,11 +537,27 @@ public class IntListTest {
|
||||
Assert.assertTrue(a.equals(b));
|
||||
Assert.assertEquals(a.hashCode(), b.hashCode());
|
||||
|
||||
// TODO sorted and unsorted lists with same length
|
||||
|
||||
// change one value
|
||||
a.remove(2, 3);
|
||||
a.insert(2, 99);
|
||||
Assert.assertFalse(a.equals(b));
|
||||
Assert.assertNotEquals(a.hashCode(), b.hashCode());
|
||||
|
||||
// have different length
|
||||
a.add(66);
|
||||
Assert.assertFalse(a.equals(b));
|
||||
Assert.assertNotEquals(a.hashCode(), b.hashCode());
|
||||
|
||||
// same object
|
||||
Assert.assertTrue(a.equals(a));
|
||||
|
||||
// other is null
|
||||
Assert.assertFalse(a.equals(null));
|
||||
|
||||
// equals with a different class
|
||||
Assert.assertFalse(a.equals("not an IntList"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user