From 606dc34c4bd1aea3fe220427b5146ef95485d5ea Mon Sep 17 00:00:00 2001 From: pinpong Date: Wed, 30 Nov 2016 19:47:39 +0100 Subject: [PATCH 1/3] 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()); + } +} From 23ca1354e9caa762f258d87fdf58cc1730fa7547 Mon Sep 17 00:00:00 2001 From: pinpong Date: Wed, 30 Nov 2016 21:28:01 +0100 Subject: [PATCH 2/3] fixed typo --- src/main/java/jota/utils/IotaUnits.java | 2 +- src/test/java/jota/IotaUnitConverterTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/jota/utils/IotaUnits.java b/src/main/java/jota/utils/IotaUnits.java index 34fb7cc..f3fbfe0 100644 --- a/src/main/java/jota/utils/IotaUnits.java +++ b/src/main/java/jota/utils/IotaUnits.java @@ -8,7 +8,7 @@ public enum IotaUnits { KILO_IOTA("Ki", 3), MEGA_IOTA("Mi", 6), GIGA_IOTA("Gi", 9), - TERRA_IOTA("Ti", 12), + TERA_IOTA("Ti", 12), PETA_IOTA("Pi", 15); private String unit; diff --git a/src/test/java/jota/IotaUnitConverterTest.java b/src/test/java/jota/IotaUnitConverterTest.java index 107d0a3..09a7db0 100644 --- a/src/test/java/jota/IotaUnitConverterTest.java +++ b/src/test/java/jota/IotaUnitConverterTest.java @@ -29,11 +29,11 @@ public class IotaUnitConverterTest { @Test public void shouldConvertUnitGiToTi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERRA_IOTA), IsNull.notNullValue()); + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERA_IOTA), IsNull.notNullValue()); } @Test public void shouldConvertUnitTiToPi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.TERRA_IOTA, IotaUnits.PETA_IOTA), IsNull.notNullValue()); + assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.TERA_IOTA, IotaUnits.PETA_IOTA), IsNull.notNullValue()); } } From 2114b12e4ac1b2c3bbb2f0f5af97e8b12db56ab1 Mon Sep 17 00:00:00 2001 From: pinpong Date: Wed, 30 Nov 2016 22:13:22 +0100 Subject: [PATCH 3/3] updated IotaUnitConverter test --- src/test/java/jota/IotaUnitConverterTest.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/test/java/jota/IotaUnitConverterTest.java b/src/test/java/jota/IotaUnitConverterTest.java index 09a7db0..5078ac5 100644 --- a/src/test/java/jota/IotaUnitConverterTest.java +++ b/src/test/java/jota/IotaUnitConverterTest.java @@ -2,10 +2,9 @@ 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; +import static org.junit.Assert.assertEquals; /** * Created by pinpong on 30.11.16. @@ -14,26 +13,26 @@ public class IotaUnitConverterTest { @Test public void shouldConvertUnitItoKi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.IOTA, IotaUnits.KILO_IOTA), IsNull.notNullValue()); + assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.IOTA, IotaUnits.KILO_IOTA), 1); } @Test public void shouldConvertUnitKiToMi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.KILO_IOTA, IotaUnits.MEGA_IOTA), IsNull.notNullValue()); + assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.KILO_IOTA, IotaUnits.MEGA_IOTA), 1); } @Test public void shouldConvertUnitMiToGi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.MEGA_IOTA, IotaUnits.GIGA_IOTA), IsNull.notNullValue()); + assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.MEGA_IOTA, IotaUnits.GIGA_IOTA), 1); } @Test public void shouldConvertUnitGiToTi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERA_IOTA), IsNull.notNullValue()); + assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERA_IOTA), 1); } @Test public void shouldConvertUnitTiToPi() { - assertThat(IotaUnitConverter.convertUnits(1000, IotaUnits.TERA_IOTA, IotaUnits.PETA_IOTA), IsNull.notNullValue()); + assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.TERA_IOTA, IotaUnits.PETA_IOTA), 1); } }