From 606dc34c4bd1aea3fe220427b5146ef95485d5ea Mon Sep 17 00:00:00 2001 From: pinpong Date: Wed, 30 Nov 2016 19:47:39 +0100 Subject: [PATCH] implemented convertUnits --- .../java/jota/utils/IotaUnitConverter.java | 16 ++++++++ src/main/java/jota/utils/IotaUnits.java | 29 ++++++++++++++ src/test/java/jota/IotaUnitConverterTest.java | 39 +++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 src/main/java/jota/utils/IotaUnitConverter.java create mode 100644 src/main/java/jota/utils/IotaUnits.java create mode 100644 src/test/java/jota/IotaUnitConverterTest.java diff --git a/src/main/java/jota/utils/IotaUnitConverter.java b/src/main/java/jota/utils/IotaUnitConverter.java new file mode 100644 index 0000000..57271e8 --- /dev/null +++ b/src/main/java/jota/utils/IotaUnitConverter.java @@ -0,0 +1,16 @@ +package jota.utils; + +/** + * Created by pinpong on 30.11.16. + */ +public class IotaUnitConverter { + + public static long convertUnits(long amount, IotaUnits fromUnit, IotaUnits toUnit) { + long amountInSource = (long) (amount * Math.pow(10, fromUnit.getValue())); + return convertUnits(amountInSource, toUnit); + } + + private static long convertUnits(long amount, IotaUnits toUnit) { + return (long) (amount / Math.pow(10, toUnit.getValue())); + } +} diff --git a/src/main/java/jota/utils/IotaUnits.java b/src/main/java/jota/utils/IotaUnits.java new file mode 100644 index 0000000..34fb7cc --- /dev/null +++ b/src/main/java/jota/utils/IotaUnits.java @@ -0,0 +1,29 @@ +package jota.utils; + +/** + * Created by pinpong on 30.11.16. + */ +public enum IotaUnits { + IOTA("i", 0), + KILO_IOTA("Ki", 3), + MEGA_IOTA("Mi", 6), + GIGA_IOTA("Gi", 9), + TERRA_IOTA("Ti", 12), + PETA_IOTA("Pi", 15); + + private String unit; + private long value; + + IotaUnits(String unit, long value) { + this.unit = unit; + this.value = value; + } + + public String getUnit() { + return unit; + } + + public long getValue() { + return value; + } +} diff --git a/src/test/java/jota/IotaUnitConverterTest.java b/src/test/java/jota/IotaUnitConverterTest.java new file mode 100644 index 0000000..107d0a3 --- /dev/null +++ b/src/test/java/jota/IotaUnitConverterTest.java @@ -0,0 +1,39 @@ +package jota; + +import jota.utils.IotaUnitConverter; +import jota.utils.IotaUnits; +import org.hamcrest.core.IsNull; +import org.junit.Test; + +import static org.junit.Assert.assertThat; + +/** + * Created by pinpong on 30.11.16. + */ +public class IotaUnitConverterTest { + + @Test + public void shouldConvertUnitItoKi() { + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.IOTA, IotaUnits.KILO_IOTA), IsNull.notNullValue()); + } + + @Test + public void shouldConvertUnitKiToMi() { + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.KILO_IOTA, IotaUnits.MEGA_IOTA), IsNull.notNullValue()); + } + + @Test + public void shouldConvertUnitMiToGi() { + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.MEGA_IOTA, IotaUnits.GIGA_IOTA), IsNull.notNullValue()); + } + + @Test + public void shouldConvertUnitGiToTi() { + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERRA_IOTA), IsNull.notNullValue()); + } + + @Test + public void shouldConvertUnitTiToPi() { + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.TERRA_IOTA, IotaUnits.PETA_IOTA), IsNull.notNullValue()); + } +}