package net.yadan.banana.memory.malloc.chainedallocator; import net.yadan.banana.memory.malloc.AbstractComputeMemoryUsageTest; import net.yadan.banana.memory.malloc.ChainedAllocator; public class ChainedComputeMemoryUsageTest extends AbstractComputeMemoryUsageTest { public ChainedComputeMemoryUsageTest(int maxBlocks, int blockSize, int allocationSize) { super(maxBlocks, blockSize, allocationSize); } @Override public void init(int maxBlocks, int blockSize) { m = new ChainedAllocator(maxBlocks, blockSize); } @Override public int computeExpectedCapacityFor(int size) { if (size <= m.blockSize()) { return m.blockSize(); } else { int sizePerBlock = m.blockSize() - 1; return (1 + (size - 1) / sizePerBlock) * sizePerBlock; } } }