Split up test method into smaller ones. Correct code formatting
This commit is contained in:
parent
5cfe661c8a
commit
3396e92d2d
|
@ -7,38 +7,38 @@ import java.text.NumberFormat;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public class FormatNumber {
|
public class FormatNumber {
|
||||||
public static double withBigDecimal(double value, int places) {
|
public static double withBigDecimal(double value, int places) {
|
||||||
if (places < 0)
|
if (places < 0)
|
||||||
throw new IllegalArgumentException();
|
throw new IllegalArgumentException();
|
||||||
|
|
||||||
BigDecimal bigDecimal = new BigDecimal(value);
|
BigDecimal bigDecimal = new BigDecimal(value);
|
||||||
bigDecimal = bigDecimal.setScale(places, RoundingMode.HALF_UP);
|
bigDecimal = bigDecimal.setScale(places, RoundingMode.HALF_UP);
|
||||||
return bigDecimal.doubleValue();
|
return bigDecimal.doubleValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double withMathRound(double value, int places) {
|
public static double withMathRound(double value, int places) {
|
||||||
double scale = Math.pow(10, places);
|
double scale = Math.pow(10, places);
|
||||||
return Math.round(value * scale) / scale;
|
return Math.round(value * scale) / scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double withDecimalFormatPattern(double value, int places) {
|
public static double withDecimalFormatPattern(double value, int places) {
|
||||||
DecimalFormat df2 = new DecimalFormat("#,###,###,##0.00");
|
DecimalFormat df2 = new DecimalFormat("#,###,###,##0.00");
|
||||||
DecimalFormat df3 = new DecimalFormat("#,###,###,##0.000");
|
DecimalFormat df3 = new DecimalFormat("#,###,###,##0.000");
|
||||||
if (places == 2)
|
if (places == 2)
|
||||||
return new Double(df2.format(value));
|
return new Double(df2.format(value));
|
||||||
else if (places == 3)
|
else if (places == 3)
|
||||||
return new Double(df3.format(value));
|
return new Double(df3.format(value));
|
||||||
else
|
else
|
||||||
throw new IllegalArgumentException();
|
throw new IllegalArgumentException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double withDecimalFormatLocal(double value) {
|
public static double withDecimalFormatLocal(double value) {
|
||||||
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(Locale.getDefault());
|
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(Locale.getDefault());
|
||||||
return new Double(df.format(value));
|
return new Double(df.format(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String withStringFormat(double value, int places) {
|
public static String withStringFormat(double value, int places) {
|
||||||
return String.format("%." + places + "f", value);
|
return String.format("%." + places + "f", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,33 +6,41 @@ import static com.baeldung.formatNumber.FormatNumber.*;
|
||||||
import static org.assertj.core.api.Assertions.*;
|
import static org.assertj.core.api.Assertions.*;
|
||||||
|
|
||||||
public class FormatNumberUnitTest {
|
public class FormatNumberUnitTest {
|
||||||
private static final double D = 4.2352989244d;
|
private static final double D = 4.2352989244d;
|
||||||
private static final double F = 8.6994540927d;
|
private static final double F = 8.6994540927d;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDecimalNumber_whenFormatNumberToNDecimalPlaces_thenGetExpectedResult() {
|
public void givenDecimalNumber_whenFormatNumber_withBigDecimal_thenGetExpectedResult() {
|
||||||
|
assertThat(withBigDecimal(D, 2)).isEqualTo(4.24);
|
||||||
|
assertThat(withBigDecimal(D, 3)).isEqualTo(4.235);
|
||||||
|
assertThat(withBigDecimal(F, 2)).isEqualTo(8.7);
|
||||||
|
assertThat(withBigDecimal(F, 3)).isEqualTo(8.699);
|
||||||
|
}
|
||||||
|
|
||||||
assertThat(withBigDecimal(D, 2)).isEqualTo(4.24);
|
@Test
|
||||||
assertThat(withBigDecimal(D, 3)).isEqualTo(4.235);
|
public void givenDecimalNumber_whenFormatNumber_withDecimalFormat_thenGetExpectedResult() {
|
||||||
assertThat(withBigDecimal(F, 2)).isEqualTo(8.7);
|
assertThat(withDecimalFormatLocal(D)).isEqualTo(4.235);
|
||||||
assertThat(withBigDecimal(F, 3)).isEqualTo(8.699);
|
assertThat(withDecimalFormatLocal(F)).isEqualTo(8.699);
|
||||||
|
|
||||||
assertThat(withMathRound(D, 2)).isEqualTo(4.24);
|
assertThat(withDecimalFormatPattern(D, 2)).isEqualTo(4.24);
|
||||||
assertThat(withMathRound(D, 3)).isEqualTo(4.235);
|
assertThat(withDecimalFormatPattern(D, 3)).isEqualTo(4.235);
|
||||||
assertThat(withMathRound(F, 2)).isEqualTo(8.7);
|
assertThat(withDecimalFormatPattern(F, 2)).isEqualTo(8.7);
|
||||||
assertThat(withMathRound(F, 3)).isEqualTo(8.699);
|
assertThat(withDecimalFormatPattern(F, 3)).isEqualTo(8.699);
|
||||||
|
}
|
||||||
|
|
||||||
assertThat(withStringFormat(D, 2)).isEqualTo("4.24");
|
@Test
|
||||||
assertThat(withStringFormat(D, 3)).isEqualTo("4.235");
|
public void givenDecimalNumber_whenFormatNumber_withStringFormat_thenGetExpectedResult() {
|
||||||
assertThat(withStringFormat(F, 2)).isEqualTo("8.70");
|
assertThat(withStringFormat(D, 2)).isEqualTo("4.24");
|
||||||
assertThat(withStringFormat(F, 3)).isEqualTo("8.699");
|
assertThat(withStringFormat(D, 3)).isEqualTo("4.235");
|
||||||
|
assertThat(withStringFormat(F, 2)).isEqualTo("8.70");
|
||||||
|
assertThat(withStringFormat(F, 3)).isEqualTo("8.699");
|
||||||
|
}
|
||||||
|
|
||||||
assertThat(withDecimalFormatLocal(D)).isEqualTo(4.235);
|
@Test
|
||||||
assertThat(withDecimalFormatLocal(F)).isEqualTo(8.699);
|
public void givenDecimalNumber_whenFormatNumber_withMathRound_thenGetExpectedResult() {
|
||||||
|
assertThat(withMathRound(D, 2)).isEqualTo(4.24);
|
||||||
assertThat(withDecimalFormatPattern(D, 2)).isEqualTo(4.24);
|
assertThat(withMathRound(D, 3)).isEqualTo(4.235);
|
||||||
assertThat(withDecimalFormatPattern(D, 3)).isEqualTo(4.235);
|
assertThat(withMathRound(F, 2)).isEqualTo(8.7);
|
||||||
assertThat(withDecimalFormatPattern(F, 2)).isEqualTo(8.7);
|
assertThat(withMathRound(F, 3)).isEqualTo(8.699);
|
||||||
assertThat(withDecimalFormatPattern(F, 3)).isEqualTo(8.699);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue