public <E extends SamplingEntry> Iterable<E> getRandomSamples(int sampleCount) {
        if (sampleCount < 0) {
            throw new IllegalArgumentException("Sample count cannot be a negative value.");
        }
        if (sampleCount == 0 || size() == 0) {
            return Collections.emptyList();
        }
        return new LazySamplingEntryIterableIterator<>(sampleCount);
    }
@Test
    public void test_getRandomSamples_whenSampleCountIsGreaterThenCapacity() {
        final int entryCount = 10;
        final int sampleCount = 100;

        map = new SampleableConcurrentHashMap<>(entryCount);

        // put single entry
        map.put(1, 1);

        Iterable<SampleableConcurrentHashMap.SamplingEntry<Integer, Integer>> samples = map.getRandomSamples(sampleCount);

        Iterator<SampleableConcurrentHashMap.SamplingEntry<Integer, Integer>> iterator = samples.iterator();
        assertTrue(iterator.hasNext());
        assertNotNull(iterator.next());
        assertFalse(iterator.hasNext());
    }