test/java/util/Formatter/BasicBigInteger.java
Print this page
rev 10699 : 8058887: (fmt) Improve java/util/Formatter test coverage of group separators and width
*** 1,7 ****
/*
! * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 34,65 ****
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DateFormatSymbols;
import java.util.*;
-
-
-
import static java.util.Calendar.*;
-
-
-
-
public class BasicBigInteger extends Basic {
private static void test(String fs, String exp, Object ... args) {
Formatter f = new Formatter(new StringBuilder(), Locale.US);
f.format(fs, args);
ck(fs, exp, f.toString());
}
private static void test(Locale l, String fs, String exp, Object ... args)
{
Formatter f = new Formatter(new StringBuilder(), l);
f.format(fs, args);
ck(fs, exp, f.toString());
}
private static void test(String fs, Object ... args) {
Formatter f = new Formatter(new StringBuilder(), Locale.US);
f.format(fs, args);
--- 34,66 ----
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DateFormatSymbols;
import java.util.*;
import static java.util.Calendar.*;
public class BasicBigInteger extends Basic {
private static void test(String fs, String exp, Object ... args) {
Formatter f = new Formatter(new StringBuilder(), Locale.US);
f.format(fs, args);
ck(fs, exp, f.toString());
+
+ f = new Formatter(new StringBuilder(), Locale.US);
+ f.format("foo " + fs + " bar", args);
+ ck(fs, "foo " + exp + " bar", f.toString());
}
private static void test(Locale l, String fs, String exp, Object ... args)
{
Formatter f = new Formatter(new StringBuilder(), l);
f.format(fs, args);
ck(fs, exp, f.toString());
+
+ f = new Formatter(new StringBuilder(), l);
+ f.format("foo " + fs + " bar", args);
+ ck(fs, "foo " + exp + " bar", f.toString());
}
private static void test(String fs, Object ... args) {
Formatter f = new Formatter(new StringBuilder(), Locale.US);
f.format(fs, args);
*** 133,337 ****
fail(fs, ex);
else
pass();
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
public static void test() {
TimeZone.setDefault(TimeZone.getTimeZone("GMT-0800"));
// Any characters not explicitly defined as conversions, date/time
// conversion suffixes, or flags are illegal and are reserved for
--- 134,143 ----
*** 513,1579 ****
//---------------------------------------------------------------------
tryCatch("%F", UnknownFormatConversionException.class);
tryCatch("%#g", FormatFlagsConversionMismatchException.class);
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
! //---------------------------------------------------------------------
! // BigInteger - errors
! //---------------------------------------------------------------------
! tryCatch("%f", IllegalFormatConversionException.class,
! new BigInteger("1"));
!
! //---------------------------------------------------------------------
! // %d - BigInteger
! //---------------------------------------------------------------------
! test("%d", "null", (Object)null);
! test("%d", "1234567", new BigInteger("1234567", 10));
! test("%,d", "1,234,567", new BigInteger("1234567", 10));
! test(Locale.FRANCE, "%,d", "1\u00a0234\u00a0567", new BigInteger("1234567", 10));
! test("%,d", "-1,234,567", new BigInteger("-1234567", 10));
! test("%(d", "1234567", new BigInteger("1234567", 10));
! test("%(d", "(1234567)", new BigInteger("-1234567", 10));
! test("% d", " 1234567", new BigInteger("1234567", 10));
! test("% d", "-1234567", new BigInteger("-1234567", 10));
! test("%+d", "+1234567", new BigInteger("1234567", 10));
! test("%+d", "-1234567", new BigInteger("-1234567", 10));
! test("%010d", "0001234567", new BigInteger("1234567", 10));
! test("%010d", "-001234567", new BigInteger("-1234567", 10));
! test("%(10d", " (1234567)", new BigInteger("-1234567", 10));
! test("%+d", "+1234567", new BigInteger("1234567", 10));
! test("%+d", "-1234567", new BigInteger("-1234567", 10));
! test("%-10d", "1234567 ", new BigInteger("1234567", 10));
! test("%-10d", "-1234567 ", new BigInteger("-1234567", 10));
!
! //---------------------------------------------------------------------
! // %o - BigInteger
! //---------------------------------------------------------------------
! test("%o", "null", (Object)null);
! test("%o", "1234567", new BigInteger("1234567", 8));
! test("%(o", "1234567", new BigInteger("1234567", 8));
! test("%(o", "(1234567)", new BigInteger("-1234567", 8));
! test("% o", " 1234567", new BigInteger("1234567", 8));
! test("% o", "-1234567", new BigInteger("-1234567", 8));
! test("%+o", "+1234567", new BigInteger("1234567", 8));
! test("%+o", "-1234567", new BigInteger("-1234567", 8));
! test("%010o", "0001234567", new BigInteger("1234567", 8));
! test("%010o", "-001234567", new BigInteger("-1234567", 8));
! test("%(10o", " (1234567)", new BigInteger("-1234567", 8));
! test("%+o", "+1234567", new BigInteger("1234567", 8));
! test("%+o", "-1234567", new BigInteger("-1234567", 8));
! test("%-10o", "1234567 ", new BigInteger("1234567", 8));
! test("%-10o", "-1234567 ", new BigInteger("-1234567", 8));
! test("%#10o", " 01234567", new BigInteger("1234567", 8));
! test("%#10o", " -01234567", new BigInteger("-1234567", 8));
!
! //---------------------------------------------------------------------
! // %x - BigInteger
! //---------------------------------------------------------------------
! test("%x", "null", (Object)null);
! test("%x", "1234567", new BigInteger("1234567", 16));
! test("%(x", "1234567", new BigInteger("1234567", 16));
! test("%(x", "(1234567)", new BigInteger("-1234567", 16));
! test("% x", " 1234567", new BigInteger("1234567", 16));
! test("% x", "-1234567", new BigInteger("-1234567", 16));
! test("%+x", "+1234567", new BigInteger("1234567", 16));
! test("%+x", "-1234567", new BigInteger("-1234567", 16));
! test("%010x", "0001234567", new BigInteger("1234567", 16));
! test("%010x", "-001234567", new BigInteger("-1234567", 16));
! test("%(10x", " (1234567)", new BigInteger("-1234567", 16));
! test("%+x", "+1234567", new BigInteger("1234567", 16));
! test("%+x", "-1234567", new BigInteger("-1234567", 16));
! test("%-10x", "1234567 ", new BigInteger("1234567", 16));
! test("%-10x", "-1234567 ", new BigInteger("-1234567", 16));
! test("%#10x", " 0x1234567", new BigInteger("1234567", 16));
! test("%#10x", "-0x1234567", new BigInteger("-1234567", 16));
! test("%#10X", " 0X1234567", new BigInteger("1234567", 16));
! test("%#10X", "-0X1234567", new BigInteger("-1234567", 16));
! test("%X", "1234567A", new BigInteger("1234567a", 16));
! test("%X", "-1234567A", new BigInteger("-1234567a", 16));
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
//---------------------------------------------------------------------
// %t
//
// Date/Time conversions applicable to Calendar, Date, and long.
--- 319,409 ----
//---------------------------------------------------------------------
tryCatch("%F", UnknownFormatConversionException.class);
tryCatch("%#g", FormatFlagsConversionMismatchException.class);
+ //---------------------------------------------------------------------
+ // BigInteger - errors
+ //---------------------------------------------------------------------
+ tryCatch("%f", IllegalFormatConversionException.class,
+ new BigInteger("1"));
+ //---------------------------------------------------------------------
+ // %d - BigInteger
+ //---------------------------------------------------------------------
+ test("%d", "null", (Object)null);
+ test("%d", "1234567", new BigInteger("1234567", 10));
+ test("%,d", "1,234,567", new BigInteger("1234567", 10));
+ test(Locale.FRANCE, "%,d", "1\u00a0234\u00a0567", new BigInteger("1234567", 10));
+ test("%,d", "-1,234,567", new BigInteger("-1234567", 10));
+ test("%(d", "1234567", new BigInteger("1234567", 10));
+ test("%(d", "(1234567)", new BigInteger("-1234567", 10));
+ test("% d", " 1234567", new BigInteger("1234567", 10));
+ test("% d", "-1234567", new BigInteger("-1234567", 10));
+ test("%+d", "+1234567", new BigInteger("1234567", 10));
+ test("%+d", "-1234567", new BigInteger("-1234567", 10));
+ test("%010d", "0001234567", new BigInteger("1234567", 10));
+ test("%010d", "-001234567", new BigInteger("-1234567", 10));
+ test("%(10d", " (1234567)", new BigInteger("-1234567", 10));
+ test("%+d", "+1234567", new BigInteger("1234567", 10));
+ test("%+d", "-1234567", new BigInteger("-1234567", 10));
+ test("%-10d", "1234567 ", new BigInteger("1234567", 10));
+ test("%-10d", "-1234567 ", new BigInteger("-1234567", 10));
+ // , variations:
+ test("%0,10d", "01,234,567", new BigInteger("1234567", 10));
+ test("%0,10d", "-1,234,567", new BigInteger("-1234567", 10));
+ test("%(,10d", "(1,234,567)", new BigInteger("-1234567", 10));
+ test("%+,d", "+1,234,567", new BigInteger("1234567", 10));
+ test("%+,d", "-1,234,567", new BigInteger("-1234567", 10));
+ test("%-,10d", "1,234,567 ", new BigInteger("1234567", 10));
+ test("%-,10d", "-1,234,567", new BigInteger("-1234567", 10));
+ //---------------------------------------------------------------------
+ // %o - BigInteger
+ //---------------------------------------------------------------------
+ test("%o", "null", (Object)null);
+ test("%o", "1234567", new BigInteger("1234567", 8));
+ test("%(o", "1234567", new BigInteger("1234567", 8));
+ test("%(o", "(1234567)", new BigInteger("-1234567", 8));
+ test("% o", " 1234567", new BigInteger("1234567", 8));
+ test("% o", "-1234567", new BigInteger("-1234567", 8));
+ test("%+o", "+1234567", new BigInteger("1234567", 8));
+ test("%+o", "-1234567", new BigInteger("-1234567", 8));
+ test("%010o", "0001234567", new BigInteger("1234567", 8));
+ test("%010o", "-001234567", new BigInteger("-1234567", 8));
+ test("%(10o", " (1234567)", new BigInteger("-1234567", 8));
+ test("%+o", "+1234567", new BigInteger("1234567", 8));
+ test("%+o", "-1234567", new BigInteger("-1234567", 8));
+ test("%-10o", "1234567 ", new BigInteger("1234567", 8));
+ test("%-10o", "-1234567 ", new BigInteger("-1234567", 8));
+ test("%#10o", " 01234567", new BigInteger("1234567", 8));
+ test("%#10o", " -01234567", new BigInteger("-1234567", 8));
! //---------------------------------------------------------------------
! // %x - BigInteger
! //---------------------------------------------------------------------
! test("%x", "null", (Object)null);
! test("%x", "1234567", new BigInteger("1234567", 16));
! test("%(x", "1234567", new BigInteger("1234567", 16));
! test("%(x", "(1234567)", new BigInteger("-1234567", 16));
! test("% x", " 1234567", new BigInteger("1234567", 16));
! test("% x", "-1234567", new BigInteger("-1234567", 16));
! test("%+x", "+1234567", new BigInteger("1234567", 16));
! test("%+x", "-1234567", new BigInteger("-1234567", 16));
! test("%010x", "0001234567", new BigInteger("1234567", 16));
! test("%010x", "-001234567", new BigInteger("-1234567", 16));
! test("%(10x", " (1234567)", new BigInteger("-1234567", 16));
! test("%+x", "+1234567", new BigInteger("1234567", 16));
! test("%+x", "-1234567", new BigInteger("-1234567", 16));
! test("%-10x", "1234567 ", new BigInteger("1234567", 16));
! test("%-10x", "-1234567 ", new BigInteger("-1234567", 16));
! test("%#10x", " 0x1234567", new BigInteger("1234567", 16));
! test("%#10x", "-0x1234567", new BigInteger("-1234567", 16));
! test("%#10X", " 0X1234567", new BigInteger("1234567", 16));
! test("%#10X", "-0X1234567", new BigInteger("-1234567", 16));
! test("%X", "1234567A", new BigInteger("1234567a", 16));
! test("%X", "-1234567A", new BigInteger("-1234567a", 16));
//---------------------------------------------------------------------
// %t
//
// Date/Time conversions applicable to Calendar, Date, and long.
*** 1590,1693 ****
tryCatch("%TP", UnknownFormatConversionException.class);
tryCatch("%.5tB", IllegalFormatPrecisionException.class);
tryCatch("%#tB", FormatFlagsConversionMismatchException.class);
tryCatch("%-tB", MissingFormatWidthException.class);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
//---------------------------------------------------------------------
// %n
//---------------------------------------------------------------------
test("%n", System.getProperty("line.separator"), (Object)null);
test("%n", System.getProperty("line.separator"), "");
--- 420,429 ----