/** * Returns object security expansion rate based on the property set and given buffer size. * * @param bufferSize * Buffer's size that expansion rate has to be calculated for. * @return Expansion rate in percentages. */ public float getObjectSecurityExpansionRate(long bufferSize) { return (getObjectSecurityExpansionRateBufferSize(bufferSize) + getObjectSecurityExpansionRateBufferOccupancy(bufferSize, getOldGenMax())) / 2; }
/** * General Parameterized test to assure that no matter how big buffer size is, expansion rate * will be between min and max related. * * @param bufferSize * Buffer size. */ @Test(dataProvider = "Buffer-Size-Provider") public void parametrizedExpansionRateTest(long bufferSize) { float expansionRate = bufferProperties.getObjectSecurityExpansionRate(bufferSize); assertThat(expansionRate, is(lessThanOrEqualTo(bufferProperties.getMaxObjectExpansionRate()))); assertThat(expansionRate, is(greaterThanOrEqualTo(bufferProperties.getMinObjectExpansionRate()))); float relatedToSize = bufferProperties.getObjectSecurityExpansionRateBufferSize(bufferSize); float relatedToOccupancy = bufferProperties.getObjectSecurityExpansionRateBufferOccupancy(bufferSize, bufferProperties.getOldGenMax()); assertThat(expansionRate, is(equalTo((relatedToSize + relatedToOccupancy) / 2))); }
/** * Single expansion rate test for buffer size. */ @Test public void singleExpansionRateTestBufferSize() { long bufferSize = bufferProperties.getMaxObjectExpansionRateActiveTillBufferSize() + ((bufferProperties.getMinObjectExpansionRateActiveFromBufferSize() - bufferProperties.getMaxObjectExpansionRateActiveTillBufferSize()) / 2); float expansionRate = bufferProperties.getObjectSecurityExpansionRateBufferSize(bufferSize); 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 buffers size. * * @param bufferSize * Buffer size. */ @Test(dataProvider = "Buffer-Size-Provider") public void parametrizedExpansionRateTestBufferSize(long bufferSize) { float expansionRate = bufferProperties.getObjectSecurityExpansionRateBufferSize(bufferSize); assertThat(expansionRate, is(lessThanOrEqualTo(bufferProperties.getMaxObjectExpansionRate()))); assertThat(expansionRate, is(greaterThanOrEqualTo(bufferProperties.getMinObjectExpansionRate()))); if ((bufferSize > bufferProperties.getMaxObjectExpansionRateActiveTillBufferSize()) && (bufferSize < bufferProperties.getMinObjectExpansionRateActiveFromBufferSize())) { assertThat(expansionRate, is(lessThan(bufferProperties.getMaxObjectExpansionRate()))); assertThat(expansionRate, is(greaterThan(bufferProperties.getMinObjectExpansionRate()))); } }