GreekResultCollection implements Iterable<Pair<Greek, Double>> { @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (!(obj instanceof GreekResultCollection)) { return false; } final GreekResultCollection other = (GreekResultCollection) obj; return ObjectUtils.equals(_backingMap, other._backingMap); }  Double get(final Greek greek); void put(final Greek greek, final Double result); boolean isEmpty(); boolean contains(final Greek greek); int size(); Set<Greek> keySet(); Collection<Double> values(); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override Iterator<Pair<Greek, Double>> iterator();  }
@Test public void testEquals() { final GreekResultCollection grc1 = new GreekResultCollection(); assertTrue(grc1.equals(grc1)); assertFalse(grc1.equals(null)); assertFalse(grc1.equals("foo")); final GreekResultCollection grc2 = new GreekResultCollection(); assertTrue(grc1.equals(grc2)); grc1.put(Greek.DELTA, 1.); assertFalse(grc1.equals(grc2)); grc2.put(Greek.DELTA, 1.); assertTrue(grc1.equals(grc2)); grc1.put(Greek.GAMMA, 3.); grc2.put(Greek.GAMMA_BLEED, 3.); assertFalse(grc1.equals(grc2)); }