From cfe12086a0de5db011a1a9c04024c45fd249281b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Ho=C3=9F?= Date: Sat, 6 Aug 2016 23:02:11 +0200 Subject: [PATCH] fix #14 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Sebastian Hoß --- README.asciidoc | 5 ++++ .../de/xn__ho_hia/utils/storage_unit/Byte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Exabyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Exbibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Gibibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Gigabyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Kibibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Kilobyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Mebibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Megabyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Pebibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Petabyte.java | 6 ++++ .../xn__ho_hia/utils/storage_unit/StorageUnit.java | 28 +++++++++++++++++++ .../utils/storage_unit/StorageUnits.java | 4 +++ .../de/xn__ho_hia/utils/storage_unit/Tebibyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Terabyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Yobibyte.java | 6 ++++ .../xn__ho_hia/utils/storage_unit/Yottabyte.java | 6 ++++ .../de/xn__ho_hia/utils/storage_unit/Zebibyte.java | 6 ++++ .../xn__ho_hia/utils/storage_unit/Zettabyte.java | 6 ++++ .../utils/storage_unit/ReadmeConversionsTest.java | 32 ++++++++++++++++++++++ .../storage_unit/StorageUnitConversionTest.java | 4 +++ 22 files changed, 175 insertions(+) create mode 100644 src/test/java/de/xn__ho_hia/utils/storage_unit/ReadmeConversionsTest.java diff --git a/README.asciidoc b/README.asciidoc index 0e7f695..a357b5f 100755 --- a/README.asciidoc +++ b/README.asciidoc @@ -294,6 +294,11 @@ Each unit can be converted to each other unit without loss of information. Megabyte unit = kilobyte(1000).asMegabyte() // "1.00 MB" Kilobyte unit = gigabyte(12).asKilobyte() // "12000000.00 kB" Gigabyte unit = terabyte(1).asGigabyte() // "1000.00 GB" + +// convert to best-match +kilobyte(1100).asBestMatchingUnit() // "1.10 MB" +kilobyte(1100).asBestMatchingBinaryUnit() // "1.50 MiB" +kilobyte(1100).asBestMatchingMetricUnit() // "1.10 MB" ---- Each unit can be expressed as a fraction of another unit (precise up to 24 decimal places) diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Byte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Byte.java index 7c9720e..687ca74 100644 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Byte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Byte.java @@ -14,6 +14,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.nonNull; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -98,4 +99,9 @@ public class Byte extends StorageUnit { return "B"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Exabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Exabyte.java index a3137b8..2ebe8dc 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Exabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Exabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Exabyte extends StorageUnit { return "EB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Exbibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Exbibyte.java index bb57d82..214ea1a 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Exbibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Exbibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public final class Exbibyte extends StorageUnit { return "EiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Gibibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Gibibyte.java index 0042db4..33c3414 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Gibibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Gibibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public final class Gibibyte extends StorageUnit { return "GiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Gigabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Gigabyte.java index 21892a4..4dbc8e5 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Gigabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Gigabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Gigabyte extends StorageUnit { return "GB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Kibibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Kibibyte.java index 368a09a..2e5d46d 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Kibibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Kibibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public final class Kibibyte extends StorageUnit { return "KiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Kilobyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Kilobyte.java index 16b2540..148534a 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Kilobyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Kilobyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Kilobyte extends StorageUnit { return "kB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Mebibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Mebibyte.java index 14165fe..c7d7a22 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Mebibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Mebibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -98,4 +99,9 @@ public final class Mebibyte extends StorageUnit { return "MiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Megabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Megabyte.java index f5d1439..a1c094f 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Megabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Megabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Megabyte extends StorageUnit { return "MB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Pebibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Pebibyte.java index b90122f..dd61bd2 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Pebibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Pebibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public final class Pebibyte extends StorageUnit { return "PiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Petabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Petabyte.java index 34bf23c..c9ed5e9 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Petabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Petabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Petabyte extends StorageUnit { return "PB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnit.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnit.java index e774bd8..3cbad74 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnit.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnit.java @@ -17,6 +17,7 @@ import java.text.DecimalFormat; import java.text.Format; import java.util.Locale; import java.util.Objects; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -125,6 +126,33 @@ public abstract class StorageUnit> extends Number imple } /** + * @return This storage unit as the best matching binary-prefixed unit. + */ + @NonNull + public final StorageUnit asBestMatchingBinaryUnit() { + return StorageUnits.binaryValueOf(this.bytes); + } + + /** + * @return This storage unit as the best matching metric-prefixed unit. + */ + @NonNull + public final StorageUnit asBestMatchingMetricUnit() { + return StorageUnits.metricValueOf(this.bytes); + } + + /** + * @return This storage unit as the unit within the same prefix group that matches the number of bytes within this + * storage unit best. + */ + @NonNull + public final StorageUnit asBestMatchingUnit() { + return converter().apply(this.bytes); + } + + protected abstract Function<@NonNull BigInteger, @NonNull StorageUnit> converter(); + + /** * @return This storage unit as bytes. */ @NonNull diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnits.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnits.java index 8749576..807548f 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnits.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/StorageUnits.java @@ -49,6 +49,7 @@ public final class StorageUnits { * The amount to bytes to represent. * @return The appropriate binary-prefixed unit for the given amount of bytes. */ + @NonNull public static StorageUnit binaryValueOf(final long bytes) { return binaryValueOf(asBigInteger(bytes)); } @@ -58,6 +59,7 @@ public final class StorageUnits { * The amount to bytes to represent. * @return The appropriate binary-prefixed unit for the given amount of bytes. */ + @NonNull public static StorageUnit binaryValueOf(@NonNull final BigInteger bytes) { StorageUnit unit = Byte.valueOf(bytes); @NonNull @@ -89,6 +91,7 @@ public final class StorageUnits { * The amount of bytes to represent. * @return The appropriate metric-prefixed unit for the given amount of bytes. */ + @NonNull public static StorageUnit metricValueOf(final long bytes) { return metricValueOf(asBigInteger(bytes)); } @@ -98,6 +101,7 @@ public final class StorageUnits { * The amount of bytes to represent. * @return The appropriate metric-prefixed unit for the given amount of bytes. */ + @NonNull public static StorageUnit metricValueOf(@NonNull final BigInteger bytes) { StorageUnit unit = Byte.valueOf(bytes); @NonNull diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Tebibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Tebibyte.java index 8ec6b82..a50c6e5 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Tebibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Tebibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -98,4 +99,9 @@ public final class Tebibyte extends StorageUnit { return "TiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Terabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Terabyte.java index 7f7ba57..c5be20b 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Terabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Terabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Terabyte extends StorageUnit { return "TB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Yobibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Yobibyte.java index 97626b9..d17f79e 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Yobibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Yobibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -98,4 +99,9 @@ public final class Yobibyte extends StorageUnit { return "YiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Yottabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Yottabyte.java index b4512ab..46693d8 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Yottabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Yottabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Yottabyte extends StorageUnit { return "YB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Zebibyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Zebibyte.java index 2cbbf68..61b7e3b 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Zebibyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Zebibyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public final class Zebibyte extends StorageUnit { return "ZiB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::binaryValueOf; + } + } diff --git a/src/main/java/de/xn__ho_hia/utils/storage_unit/Zettabyte.java b/src/main/java/de/xn__ho_hia/utils/storage_unit/Zettabyte.java index 8695be6..eaa1532 100755 --- a/src/main/java/de/xn__ho_hia/utils/storage_unit/Zettabyte.java +++ b/src/main/java/de/xn__ho_hia/utils/storage_unit/Zettabyte.java @@ -13,6 +13,7 @@ import static de.xn__ho_hia.quality.null_analysis.Nullsafe.multiplyNullsafe; import static de.xn__ho_hia.quality.null_analysis.Nullsafe.subtractNullsafe; import java.math.BigInteger; +import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; @@ -97,4 +98,9 @@ public class Zettabyte extends StorageUnit { return "ZB"; //$NON-NLS-1$ } + @Override + protected Function<@NonNull BigInteger, @NonNull StorageUnit> converter() { + return StorageUnits::metricValueOf; + } + } diff --git a/src/test/java/de/xn__ho_hia/utils/storage_unit/ReadmeConversionsTest.java b/src/test/java/de/xn__ho_hia/utils/storage_unit/ReadmeConversionsTest.java new file mode 100644 index 0000000..f2c8ca2 --- /dev/null +++ b/src/test/java/de/xn__ho_hia/utils/storage_unit/ReadmeConversionsTest.java @@ -0,0 +1,32 @@ +/* + * This file is part of storage-units. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://creativecommons.org/publicdomain/zero/1.0/. No part of storage-units, + * including this file, may be copied, modified, propagated, or distributed except according to the terms contained + * in the LICENSE file. + */ +package de.xn__ho_hia.utils.storage_unit; + +import static de.xn__ho_hia.utils.storage_unit.StorageUnits.kilobyte; + +import org.junit.Assert; +import org.junit.Test; + +import de.xn__ho_hia.quality.suppression.CompilerWarnings; + +/** + * Conversions test cases for the examples in the README. + */ +@SuppressWarnings({ CompilerWarnings.NLS, CompilerWarnings.STATIC_METHOD }) +public class ReadmeConversionsTest { + + /** + * Tests the README example: Converting a unit to the best matching unit. + */ + @Test + public void shouldFormatUnitWithDefaults() { + Assert.assertEquals("1.10 MB", kilobyte(900).add(kilobyte(200)).asBestMatchingUnit().toString()); + Assert.assertEquals("1.05 MiB", kilobyte(900).add(kilobyte(200)).asBestMatchingBinaryUnit().toString()); + Assert.assertEquals("1.10 MB", kilobyte(900).add(kilobyte(200)).asBestMatchingMetricUnit().toString()); + } + +} diff --git a/src/test/java/de/xn__ho_hia/utils/storage_unit/StorageUnitConversionTest.java b/src/test/java/de/xn__ho_hia/utils/storage_unit/StorageUnitConversionTest.java index 7b2d290..7e51f1c 100755 --- a/src/test/java/de/xn__ho_hia/utils/storage_unit/StorageUnitConversionTest.java +++ b/src/test/java/de/xn__ho_hia/utils/storage_unit/StorageUnitConversionTest.java @@ -40,6 +40,10 @@ public class StorageUnitConversionTest { public static List, StorageUnit>> expressions() { final List, StorageUnit>> units = new ArrayList<>(); + units.add(StorageUnit::asBestMatchingBinaryUnit); + units.add(StorageUnit::asBestMatchingMetricUnit); + units.add(StorageUnit::asBestMatchingUnit); + units.add(StorageUnit::asByte); units.add(StorageUnit::asKibibyte); -- 2.11.4.GIT