Merge pull request #2 from pinpong/master

implemented convertUnits
This commit is contained in:
Gianluigi Davassi
2016-12-01 07:59:28 +01:00
committed by GitHub
3 changed files with 83 additions and 0 deletions
@@ -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()));
}
}
+29
View File
@@ -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),
TERA_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;
}
}
@@ -0,0 +1,38 @@
package jota;
import jota.utils.IotaUnitConverter;
import jota.utils.IotaUnits;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* Created by pinpong on 30.11.16.
*/
public class IotaUnitConverterTest {
@Test
public void shouldConvertUnitItoKi() {
assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.IOTA, IotaUnits.KILO_IOTA), 1);
}
@Test
public void shouldConvertUnitKiToMi() {
assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.KILO_IOTA, IotaUnits.MEGA_IOTA), 1);
}
@Test
public void shouldConvertUnitMiToGi() {
assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.MEGA_IOTA, IotaUnits.GIGA_IOTA), 1);
}
@Test
public void shouldConvertUnitGiToTi() {
assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.GIGA_IOTA, IotaUnits.TERA_IOTA), 1);
}
@Test
public void shouldConvertUnitTiToPi() {
assertEquals(IotaUnitConverter.convertUnits(1000, IotaUnits.TERA_IOTA, IotaUnits.PETA_IOTA), 1);
}
}