From f3cbdda1218e0ad7dcc161f157e8293cd9b2ebb7 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sat, 16 Dec 2017 14:34:36 +0100 Subject: [PATCH] early exit it toString was only used if data array was empty --- .../java/org/lucares/collections/IntList.java | 5 ++--- .../org/lucares/collections/IntListTest.java | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/primitiveCollections/src/main/java/org/lucares/collections/IntList.java b/primitiveCollections/src/main/java/org/lucares/collections/IntList.java index c1325d4..872c991 100644 --- a/primitiveCollections/src/main/java/org/lucares/collections/IntList.java +++ b/primitiveCollections/src/main/java/org/lucares/collections/IntList.java @@ -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 "[]"; diff --git a/primitiveCollections/src/test/java/org/lucares/collections/IntListTest.java b/primitiveCollections/src/test/java/org/lucares/collections/IntListTest.java index ed26ed4..f4b6413 100644 --- a/primitiveCollections/src/test/java/org/lucares/collections/IntListTest.java +++ b/primitiveCollections/src/test/java/org/lucares/collections/IntListTest.java @@ -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