/** * Single expansion rate test for buffer occupancy. */ @Test public void singleExpansionRateTestBufferOccupancy() { long oldGenMax = 100; long bufferSize = (long) (oldGenMax * (bufferProperties.maxObjectExpansionRateActiveFromOccupancy - ((bufferProperties.getMaxObjectExpansionRateActiveFromOccupancy() - bufferProperties.getMinObjectExpansionRateActiveTillOccupancy()) / 2))); float expansionRate = bufferProperties.getObjectSecurityExpansionRateBufferOccupancy(bufferSize, oldGenMax); float expectedRate = bufferProperties.getMinObjectExpansionRate() + ((bufferProperties.getMaxObjectExpansionRate() - bufferProperties.getMinObjectExpansionRate()) / 2); assertThat(expansionRate, is(equalTo(expectedRate))); }
/** * Parameterized test to assure that no matter how big buffer size is, expansion rate will be * between min and max related to buffer occupancy. * * @param bufferSize * Buffer size. */ @Test(dataProvider = "Buffer-Size-Provider") public void parametrizedExpansionRateTestBufferOccupancy(long bufferSize) { float expansionRate = bufferProperties.getObjectSecurityExpansionRateBufferOccupancy(bufferSize, bufferProperties.getOldGenMax()); assertThat(expansionRate, is(lessThanOrEqualTo(bufferProperties.getMaxObjectExpansionRate()))); assertThat(expansionRate, is(greaterThanOrEqualTo(bufferProperties.getMinObjectExpansionRate()))); long maxOldGen = bufferProperties.getOldGenMax(); float occupancy = bufferSize / maxOldGen; if ((occupancy > bufferProperties.getMinObjectExpansionRateActiveTillOccupancy()) && (occupancy < bufferProperties.getMaxObjectExpansionRateActiveFromOccupancy())) { assertThat(expansionRate, is(lessThan(bufferProperties.getMaxObjectExpansionRate()))); assertThat(expansionRate, is(greaterThan(bufferProperties.getMinObjectExpansionRate()))); } }