diff --git a/src/test/java/ch/eitchnet/utils/helper/BaseDecodingTest.java b/src/test/java/ch/eitchnet/utils/helper/BaseDecodingTest.java index 78a9ea566..fee6c668e 100644 --- a/src/test/java/ch/eitchnet/utils/helper/BaseDecodingTest.java +++ b/src/test/java/ch/eitchnet/utils/helper/BaseDecodingTest.java @@ -30,6 +30,7 @@ import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Hex; import junit.framework.Assert; import org.junit.Test; +import org.junit.runners.JUnit4; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,8 +39,16 @@ import org.slf4j.LoggerFactory; * */ 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); + 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 public void testBase64() { Assert.assertEquals("", fromBase64("")); @@ -49,6 +58,59 @@ public class BaseDecodingTest { Assert.assertEquals("foob", fromBase64("Zm9vYg==")); Assert.assertEquals("fooba", fromBase64("Zm9vYmE=")); 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]; for (int i = 0; i < bytes.length; i++) { @@ -63,14 +125,11 @@ public class BaseDecodingTest { } @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======")); + public void testBase32Perf() { + if (isSkipPerfTests()) { + logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS); + return; + } byte[] bytes = new byte[1024 * 1024]; for (int i = 0; i < bytes.length; i++) { @@ -85,14 +144,11 @@ public class BaseDecodingTest { } @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======")); + public void testBase32HexPerf() { + if (isSkipPerfTests()) { + logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS); + return; + } byte[] bytes = new byte[1024 * 1024]; for (int i = 0; i < bytes.length; i++) { @@ -107,16 +163,11 @@ public class BaseDecodingTest { } @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======")); + 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]; @@ -128,14 +179,11 @@ public class BaseDecodingTest { } @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")); + public void testBase16Perf() { + if (isSkipPerfTests()) { + logger.info("Not running performance tests as not enabled by system property " + PROP_RUN_PERF_TESTS); + return; + } byte[] bytes = new byte[1024 * 1024]; for (int i = 0; i < bytes.length; i++) { diff --git a/src/test/java/ch/eitchnet/utils/helper/BaseEncodingTest.java b/src/test/java/ch/eitchnet/utils/helper/BaseEncodingTest.java index 7a2b3052f..7bca92e75 100644 --- a/src/test/java/ch/eitchnet/utils/helper/BaseEncodingTest.java +++ b/src/test/java/ch/eitchnet/utils/helper/BaseEncodingTest.java @@ -21,10 +21,12 @@ */ 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.toBase32; -import static ch.eitchnet.utils.helper.BaseEncoding.toBase32Hex; 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 junit.framework.Assert; @@ -49,14 +51,6 @@ public class BaseEncodingTest { Assert.assertEquals("Zm9vYg==", toBase64("foob")); Assert.assertEquals("Zm9vYmE=", toBase64("fooba")); 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 @@ -68,14 +62,6 @@ public class BaseEncodingTest { Assert.assertEquals("MZXW6YQ=", toBase32("foob")); Assert.assertEquals("MZXW6YTB", toBase32("fooba")); 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 @@ -87,19 +73,10 @@ public class BaseEncodingTest { Assert.assertEquals("CPNMUOG=", toBase32Hex("foob")); Assert.assertEquals("CPNMUOJ1", toBase32Hex("fooba")); 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 public void testBase32Dmedia() { - Assert.assertEquals("", toBase32Dmedia("")); Assert.assertEquals("FCNPVRELI7J9FUUI", toBase32Dmedia("binary foo")); Assert.assertEquals("FR======", toBase32Dmedia("f")); @@ -108,14 +85,6 @@ public class BaseEncodingTest { Assert.assertEquals("FSQPXRJ=", toBase32Dmedia("foob")); Assert.assertEquals("FSQPXRM4", toBase32Dmedia("fooba")); 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 @@ -127,6 +96,78 @@ public class BaseEncodingTest { Assert.assertEquals("666F6F62", toBase16("foob")); Assert.assertEquals("666F6F6261", toBase16("fooba")); 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(); byte[] bytes = new byte[1024 * 1024];