[Minor] Made Base encoding/decoding performance tests configurable
To enable them, set the system property ch.eitchnet.utils.test.runPerfTests=true
This commit is contained in:
parent
a5ffe0a6cc
commit
b7a4762a05
|
@ -30,6 +30,7 @@ import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Hex;
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.runners.JUnit4;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -38,8 +39,16 @@ import org.slf4j.LoggerFactory;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class BaseDecodingTest {
|
public class BaseDecodingTest {
|
||||||
|
public static final String PROP_RUN_PERF_TESTS = "ch.eitchnet.utils.test.runPerfTests"; //$NON-NLS-1$
|
||||||
private static final Logger logger = LoggerFactory.getLogger(BaseDecodingTest.class);
|
private static final Logger logger = LoggerFactory.getLogger(BaseDecodingTest.class);
|
||||||
|
|
||||||
|
public static boolean isSkipPerfTests() {
|
||||||
|
String context = BaseDecodingTest.class.getSimpleName();
|
||||||
|
String key = PROP_RUN_PERF_TESTS;
|
||||||
|
boolean runPerfTests = PropertiesHelper.getPropertyBool(context, key, Boolean.FALSE);
|
||||||
|
return !runPerfTests;
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase64() {
|
public void testBase64() {
|
||||||
Assert.assertEquals("", fromBase64(""));
|
Assert.assertEquals("", fromBase64(""));
|
||||||
|
@ -49,6 +58,59 @@ public class BaseDecodingTest {
|
||||||
Assert.assertEquals("foob", fromBase64("Zm9vYg=="));
|
Assert.assertEquals("foob", fromBase64("Zm9vYg=="));
|
||||||
Assert.assertEquals("fooba", fromBase64("Zm9vYmE="));
|
Assert.assertEquals("fooba", fromBase64("Zm9vYmE="));
|
||||||
Assert.assertEquals("foobar", fromBase64("Zm9vYmFy"));
|
Assert.assertEquals("foobar", fromBase64("Zm9vYmFy"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32() {
|
||||||
|
Assert.assertEquals("", fromBase32(""));
|
||||||
|
Assert.assertEquals("f", fromBase32("MY======"));
|
||||||
|
Assert.assertEquals("fo", fromBase32("MZXQ===="));
|
||||||
|
Assert.assertEquals("foo", fromBase32("MZXW6==="));
|
||||||
|
Assert.assertEquals("foob", fromBase32("MZXW6YQ="));
|
||||||
|
Assert.assertEquals("fooba", fromBase32("MZXW6YTB"));
|
||||||
|
Assert.assertEquals("foobar", fromBase32("MZXW6YTBOI======"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32Hex() {
|
||||||
|
Assert.assertEquals("", fromBase32Hex(""));
|
||||||
|
Assert.assertEquals("f", fromBase32Hex("CO======"));
|
||||||
|
Assert.assertEquals("fo", fromBase32Hex("CPNG===="));
|
||||||
|
Assert.assertEquals("foo", fromBase32Hex("CPNMU==="));
|
||||||
|
Assert.assertEquals("foob", fromBase32Hex("CPNMUOG="));
|
||||||
|
Assert.assertEquals("fooba", fromBase32Hex("CPNMUOJ1"));
|
||||||
|
Assert.assertEquals("foobar", fromBase32Hex("CPNMUOJ1E8======"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32Dmedia() {
|
||||||
|
|
||||||
|
Assert.assertEquals("", fromBase32Dmedia(""));
|
||||||
|
Assert.assertEquals("binary foo", fromBase32Dmedia("FCNPVRELI7J9FUUI"));
|
||||||
|
Assert.assertEquals("f", fromBase32Dmedia("FR======"));
|
||||||
|
Assert.assertEquals("fo", fromBase32Dmedia("FSQJ===="));
|
||||||
|
Assert.assertEquals("foo", fromBase32Dmedia("FSQPX==="));
|
||||||
|
Assert.assertEquals("foob", fromBase32Dmedia("FSQPXRJ="));
|
||||||
|
Assert.assertEquals("fooba", fromBase32Dmedia("FSQPXRM4"));
|
||||||
|
Assert.assertEquals("foobar", fromBase32Dmedia("FSQPXRM4HB======"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase16() {
|
||||||
|
Assert.assertEquals("", fromBase16(""));
|
||||||
|
Assert.assertEquals("f", fromBase16("66"));
|
||||||
|
Assert.assertEquals("fo", fromBase16("666F"));
|
||||||
|
Assert.assertEquals("foo", fromBase16("666F6F"));
|
||||||
|
Assert.assertEquals("foob", fromBase16("666F6F62"));
|
||||||
|
Assert.assertEquals("fooba", fromBase16("666F6F6261"));
|
||||||
|
Assert.assertEquals("foobar", fromBase16("666F6F626172"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase64Perf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
for (int i = 0; i < bytes.length; i++) {
|
for (int i = 0; i < bytes.length; i++) {
|
||||||
|
@ -63,14 +125,11 @@ public class BaseDecodingTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase32() {
|
public void testBase32Perf() {
|
||||||
Assert.assertEquals("", fromBase32(""));
|
if (isSkipPerfTests()) {
|
||||||
Assert.assertEquals("f", fromBase32("MY======"));
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
Assert.assertEquals("fo", fromBase32("MZXQ===="));
|
return;
|
||||||
Assert.assertEquals("foo", fromBase32("MZXW6==="));
|
}
|
||||||
Assert.assertEquals("foob", fromBase32("MZXW6YQ="));
|
|
||||||
Assert.assertEquals("fooba", fromBase32("MZXW6YTB"));
|
|
||||||
Assert.assertEquals("foobar", fromBase32("MZXW6YTBOI======"));
|
|
||||||
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
for (int i = 0; i < bytes.length; i++) {
|
for (int i = 0; i < bytes.length; i++) {
|
||||||
|
@ -85,14 +144,11 @@ public class BaseDecodingTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase32Hex() {
|
public void testBase32HexPerf() {
|
||||||
Assert.assertEquals("", fromBase32Hex(""));
|
if (isSkipPerfTests()) {
|
||||||
Assert.assertEquals("f", fromBase32Hex("CO======"));
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
Assert.assertEquals("fo", fromBase32Hex("CPNG===="));
|
return;
|
||||||
Assert.assertEquals("foo", fromBase32Hex("CPNMU==="));
|
}
|
||||||
Assert.assertEquals("foob", fromBase32Hex("CPNMUOG="));
|
|
||||||
Assert.assertEquals("fooba", fromBase32Hex("CPNMUOJ1"));
|
|
||||||
Assert.assertEquals("foobar", fromBase32Hex("CPNMUOJ1E8======"));
|
|
||||||
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
for (int i = 0; i < bytes.length; i++) {
|
for (int i = 0; i < bytes.length; i++) {
|
||||||
|
@ -107,16 +163,11 @@ public class BaseDecodingTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase32Dmedia() {
|
public void testBase32DmediaPerf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
Assert.assertEquals("", fromBase32Dmedia(""));
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
Assert.assertEquals("binary foo", fromBase32Dmedia("FCNPVRELI7J9FUUI"));
|
return;
|
||||||
Assert.assertEquals("f", fromBase32Dmedia("FR======"));
|
}
|
||||||
Assert.assertEquals("fo", fromBase32Dmedia("FSQJ===="));
|
|
||||||
Assert.assertEquals("foo", fromBase32Dmedia("FSQPX==="));
|
|
||||||
Assert.assertEquals("foob", fromBase32Dmedia("FSQPXRJ="));
|
|
||||||
Assert.assertEquals("fooba", fromBase32Dmedia("FSQPXRM4"));
|
|
||||||
Assert.assertEquals("foobar", fromBase32Dmedia("FSQPXRM4HB======"));
|
|
||||||
|
|
||||||
long start = System.nanoTime();
|
long start = System.nanoTime();
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
@ -128,14 +179,11 @@ public class BaseDecodingTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase16() {
|
public void testBase16Perf() {
|
||||||
Assert.assertEquals("", fromBase16(""));
|
if (isSkipPerfTests()) {
|
||||||
Assert.assertEquals("f", fromBase16("66"));
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
Assert.assertEquals("fo", fromBase16("666F"));
|
return;
|
||||||
Assert.assertEquals("foo", fromBase16("666F6F"));
|
}
|
||||||
Assert.assertEquals("foob", fromBase16("666F6F62"));
|
|
||||||
Assert.assertEquals("fooba", fromBase16("666F6F6261"));
|
|
||||||
Assert.assertEquals("foobar", fromBase16("666F6F626172"));
|
|
||||||
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
for (int i = 0; i < bytes.length; i++) {
|
for (int i = 0; i < bytes.length; i++) {
|
||||||
|
|
|
@ -21,10 +21,12 @@
|
||||||
*/
|
*/
|
||||||
package ch.eitchnet.utils.helper;
|
package ch.eitchnet.utils.helper;
|
||||||
|
|
||||||
|
import static ch.eitchnet.utils.helper.BaseDecodingTest.PROP_RUN_PERF_TESTS;
|
||||||
|
import static ch.eitchnet.utils.helper.BaseDecodingTest.isSkipPerfTests;
|
||||||
import static ch.eitchnet.utils.helper.BaseEncoding.toBase16;
|
import static ch.eitchnet.utils.helper.BaseEncoding.toBase16;
|
||||||
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32;
|
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32;
|
||||||
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Hex;
|
|
||||||
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Dmedia;
|
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Dmedia;
|
||||||
|
import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Hex;
|
||||||
import static ch.eitchnet.utils.helper.BaseEncoding.toBase64;
|
import static ch.eitchnet.utils.helper.BaseEncoding.toBase64;
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
@ -49,14 +51,6 @@ public class BaseEncodingTest {
|
||||||
Assert.assertEquals("Zm9vYg==", toBase64("foob"));
|
Assert.assertEquals("Zm9vYg==", toBase64("foob"));
|
||||||
Assert.assertEquals("Zm9vYmE=", toBase64("fooba"));
|
Assert.assertEquals("Zm9vYmE=", toBase64("fooba"));
|
||||||
Assert.assertEquals("Zm9vYmFy", toBase64("foobar"));
|
Assert.assertEquals("Zm9vYmFy", toBase64("foobar"));
|
||||||
|
|
||||||
long start = System.nanoTime();
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
|
||||||
for (int i = 0; i < 200; i++) {
|
|
||||||
toBase64(bytes);
|
|
||||||
}
|
|
||||||
long end = System.nanoTime();
|
|
||||||
logger.info("Encoding 200MB Base64 took " + StringHelper.formatNanoDuration(end - start));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -68,14 +62,6 @@ public class BaseEncodingTest {
|
||||||
Assert.assertEquals("MZXW6YQ=", toBase32("foob"));
|
Assert.assertEquals("MZXW6YQ=", toBase32("foob"));
|
||||||
Assert.assertEquals("MZXW6YTB", toBase32("fooba"));
|
Assert.assertEquals("MZXW6YTB", toBase32("fooba"));
|
||||||
Assert.assertEquals("MZXW6YTBOI======", toBase32("foobar"));
|
Assert.assertEquals("MZXW6YTBOI======", toBase32("foobar"));
|
||||||
|
|
||||||
long start = System.nanoTime();
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
|
||||||
for (int i = 0; i < 200; i++) {
|
|
||||||
toBase32(bytes);
|
|
||||||
}
|
|
||||||
long end = System.nanoTime();
|
|
||||||
logger.info("Encoding 200MB Base32 took " + StringHelper.formatNanoDuration(end - start));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -87,19 +73,10 @@ public class BaseEncodingTest {
|
||||||
Assert.assertEquals("CPNMUOG=", toBase32Hex("foob"));
|
Assert.assertEquals("CPNMUOG=", toBase32Hex("foob"));
|
||||||
Assert.assertEquals("CPNMUOJ1", toBase32Hex("fooba"));
|
Assert.assertEquals("CPNMUOJ1", toBase32Hex("fooba"));
|
||||||
Assert.assertEquals("CPNMUOJ1E8======", toBase32Hex("foobar"));
|
Assert.assertEquals("CPNMUOJ1E8======", toBase32Hex("foobar"));
|
||||||
|
|
||||||
long start = System.nanoTime();
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
|
||||||
for (int i = 0; i < 200; i++) {
|
|
||||||
toBase32Hex(bytes);
|
|
||||||
}
|
|
||||||
long end = System.nanoTime();
|
|
||||||
logger.info("Encoding 200MB Base32Hex took " + StringHelper.formatNanoDuration(end - start));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBase32Dmedia() {
|
public void testBase32Dmedia() {
|
||||||
|
|
||||||
Assert.assertEquals("", toBase32Dmedia(""));
|
Assert.assertEquals("", toBase32Dmedia(""));
|
||||||
Assert.assertEquals("FCNPVRELI7J9FUUI", toBase32Dmedia("binary foo"));
|
Assert.assertEquals("FCNPVRELI7J9FUUI", toBase32Dmedia("binary foo"));
|
||||||
Assert.assertEquals("FR======", toBase32Dmedia("f"));
|
Assert.assertEquals("FR======", toBase32Dmedia("f"));
|
||||||
|
@ -108,14 +85,6 @@ public class BaseEncodingTest {
|
||||||
Assert.assertEquals("FSQPXRJ=", toBase32Dmedia("foob"));
|
Assert.assertEquals("FSQPXRJ=", toBase32Dmedia("foob"));
|
||||||
Assert.assertEquals("FSQPXRM4", toBase32Dmedia("fooba"));
|
Assert.assertEquals("FSQPXRM4", toBase32Dmedia("fooba"));
|
||||||
Assert.assertEquals("FSQPXRM4HB======", toBase32Dmedia("foobar"));
|
Assert.assertEquals("FSQPXRM4HB======", toBase32Dmedia("foobar"));
|
||||||
|
|
||||||
long start = System.nanoTime();
|
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
|
||||||
for (int i = 0; i < 200; i++) {
|
|
||||||
toBase32Hex(bytes);
|
|
||||||
}
|
|
||||||
long end = System.nanoTime();
|
|
||||||
logger.info("Encoding 200MB Base32Dmedia took " + StringHelper.formatNanoDuration(end - start));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -127,6 +96,78 @@ public class BaseEncodingTest {
|
||||||
Assert.assertEquals("666F6F62", toBase16("foob"));
|
Assert.assertEquals("666F6F62", toBase16("foob"));
|
||||||
Assert.assertEquals("666F6F6261", toBase16("fooba"));
|
Assert.assertEquals("666F6F6261", toBase16("fooba"));
|
||||||
Assert.assertEquals("666F6F626172", toBase16("foobar"));
|
Assert.assertEquals("666F6F626172", toBase16("foobar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase64Perf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long start = System.nanoTime();
|
||||||
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
for (int i = 0; i < 200; i++) {
|
||||||
|
toBase64(bytes);
|
||||||
|
}
|
||||||
|
long end = System.nanoTime();
|
||||||
|
logger.info("Encoding 200MB Base64 took " + StringHelper.formatNanoDuration(end - start));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32Perf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long start = System.nanoTime();
|
||||||
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
for (int i = 0; i < 200; i++) {
|
||||||
|
toBase32(bytes);
|
||||||
|
}
|
||||||
|
long end = System.nanoTime();
|
||||||
|
logger.info("Encoding 200MB Base32 took " + StringHelper.formatNanoDuration(end - start));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32HexPerf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long start = System.nanoTime();
|
||||||
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
for (int i = 0; i < 200; i++) {
|
||||||
|
toBase32Hex(bytes);
|
||||||
|
}
|
||||||
|
long end = System.nanoTime();
|
||||||
|
logger.info("Encoding 200MB Base32Hex took " + StringHelper.formatNanoDuration(end - start));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase32DmediaPerf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long start = System.nanoTime();
|
||||||
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
for (int i = 0; i < 200; i++) {
|
||||||
|
toBase32Hex(bytes);
|
||||||
|
}
|
||||||
|
long end = System.nanoTime();
|
||||||
|
logger.info("Encoding 200MB Base32Dmedia took " + StringHelper.formatNanoDuration(end - start));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBase16Perf() {
|
||||||
|
if (isSkipPerfTests()) {
|
||||||
|
logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
long start = System.nanoTime();
|
long start = System.nanoTime();
|
||||||
byte[] bytes = new byte[1024 * 1024];
|
byte[] bytes = new byte[1024 * 1024];
|
||||||
|
|
Loading…
Reference in New Issue