@Override
    public void reset() {
        this.size = 0;
        this.val0 = 0;
        finishCopy().reset();
    }
@Test
    public void testReset() {
        final IntHashCounter intCounter = new AtomicIntHashCounter();
        Assert.assertEquals(intCounter.size(), 0);

        final int testTimes = 10240;
        for (int i = 0; i < testTimes; i++) {
            Assert.assertEquals(1, intCounter.addAndGet(i, 1));
        }
        Assert.assertEquals(testTimes, intCounter.size());

        intCounter.reset();
        for (int i = 1; i < testTimes; i++) {
            Assert.assertEquals(0, intCounter.get(i));
        }
        Assert.assertEquals(intCounter.size(), 0);

        for (int i = 0; i < testTimes; i++) {
            Assert.assertEquals(i + 10, intCounter.addAndGet(i, i + 10));
        }
        Assert.assertEquals(testTimes, intCounter.size());

        for (int i = 0; i < testTimes; i++) {
            Assert.assertEquals(i + 10, intCounter.get(i));
        }
        Assert.assertEquals(testTimes, intCounter.size());
    }