### Question:
IntDoubleMap implements IHasSize { public double put (final int key, final double value) { if (key == FREE_KEY) { final double ret = m_dFreeValue; if (!m_bHasFreeKey) { ++m_nSize; m_bHasFreeKey = true; } m_dFreeValue = value; return ret; } int idx = _getPutIndex (key); if (idx < 0) { _rehash (m_aKeys.length * 2); idx = _getPutIndex (key); } final double prev = m_aValues[idx]; if (m_aKeys[idx] != key) { m_aKeys[idx] = key; m_aValues[idx] = value; ++m_nSize; if (m_nSize >= m_nThreshold) _rehash (m_aKeys.length * 2); } else { if (m_aKeys[idx] != key) throw new IllegalStateException (); m_aValues[idx] = value; } return prev; } IntDoubleMap();  IntDoubleMap(final int nSize);  IntDoubleMap(final int nSize, final float fFillFactor); double get(final int key); double get(final int key, final double fDefault); double computeIfAbsent(final int key, @Nonnull final IKeyToValueFunction aProvider); double put(final int key, final double value); double remove(final int key); @Nonnegative int size(); boolean isEmpty(); void forEach(@Nonnull final IConsumer aConsumer); static final double NO_VALUE; }### Answer:
@Test public void testPut () { for (final float ff : FILL_FACTORS) _testPutHelper (ff); }