jdk/test/java/util/Formatter/BasicLongObject.java
changeset 2 90ce3da70b43
child 1823 23d42a96635e
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 /*
       
     2  * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     5  * This code is free software; you can redistribute it and/or modify it
       
     6  * under the terms of the GNU General Public License version 2 only, as
       
     7  * published by the Free Software Foundation.
       
     8  *
       
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    12  * version 2 for more details (a copy is included in the LICENSE file that
       
    13  * accompanied this code).
       
    14  *
       
    15  * You should have received a copy of the GNU General Public License version
       
    16  * 2 along with this work; if not, write to the Free Software Foundation,
       
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    18  *
       
    19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
       
    21  * have any questions.
       
    22  */
       
    23 
       
    24 /* Type-specific source code for unit test
       
    25  *
       
    26  * Regenerate the BasicX classes via genBasic.sh whenever this file changes.
       
    27  * We check in the generated source files so that the test tree can be used
       
    28  * independently of the rest of the source tree.
       
    29  */
       
    30 
       
    31 // -- This file was mechanically generated: Do not edit! -- //
       
    32 
       
    33 import java.io.*;
       
    34 import java.math.BigDecimal;
       
    35 import java.math.BigInteger;
       
    36 import java.text.DateFormatSymbols;
       
    37 import java.util.*;
       
    38 
       
    39 
       
    40 
       
    41 
       
    42 
       
    43 import static java.util.Calendar.*;
       
    44 
       
    45 
       
    46 
       
    47 
       
    48 
       
    49 public class BasicLongObject extends Basic {
       
    50 
       
    51     private static void test(String fs, String exp, Object ... args) {
       
    52         Formatter f = new Formatter(new StringBuilder(), Locale.US);
       
    53         f.format(fs, args);
       
    54         ck(fs, exp, f.toString());
       
    55     }
       
    56 
       
    57     private static void test(Locale l, String fs, String exp, Object ... args)
       
    58     {
       
    59         Formatter f = new Formatter(new StringBuilder(), l);
       
    60         f.format(fs, args);
       
    61         ck(fs, exp, f.toString());
       
    62     }
       
    63 
       
    64     private static void test(String fs, Object ... args) {
       
    65         Formatter f = new Formatter(new StringBuilder(), Locale.US);
       
    66         f.format(fs, args);
       
    67         ck(fs, "fail", f.toString());
       
    68     }
       
    69 
       
    70     private static void test(String fs) {
       
    71         Formatter f = new Formatter(new StringBuilder(), Locale.US);
       
    72         f.format(fs, "fail");
       
    73         ck(fs, "fail", f.toString());
       
    74     }
       
    75 
       
    76     private static void testSysOut(String fs, String exp, Object ... args) {
       
    77         FileOutputStream fos = null;
       
    78         FileInputStream fis = null;
       
    79         try {
       
    80             PrintStream saveOut = System.out;
       
    81             fos = new FileOutputStream("testSysOut");
       
    82             System.setOut(new PrintStream(fos));
       
    83             System.out.format(Locale.US, fs, args);
       
    84             fos.close();
       
    85 
       
    86             fis = new FileInputStream("testSysOut");
       
    87             byte [] ba = new byte[exp.length()];
       
    88             int len = fis.read(ba);
       
    89             String got = new String(ba);
       
    90             if (len != ba.length)
       
    91                 fail(fs, exp, got);
       
    92             ck(fs, exp, got);
       
    93 
       
    94             System.setOut(saveOut);
       
    95         } catch (FileNotFoundException ex) {
       
    96             fail(fs, ex.getClass());
       
    97         } catch (IOException ex) {
       
    98             fail(fs, ex.getClass());
       
    99         } finally {
       
   100             try {
       
   101                 if (fos != null)
       
   102                     fos.close();
       
   103                 if (fis != null)
       
   104                     fis.close();
       
   105             } catch (IOException ex) {
       
   106                 fail(fs, ex.getClass());
       
   107             }
       
   108         }
       
   109     }
       
   110 
       
   111     private static void tryCatch(String fs, Class<?> ex) {
       
   112         boolean caught = false;
       
   113         try {
       
   114             test(fs);
       
   115         } catch (Throwable x) {
       
   116             if (ex.isAssignableFrom(x.getClass()))
       
   117                 caught = true;
       
   118         }
       
   119         if (!caught)
       
   120             fail(fs, ex);
       
   121         else
       
   122             pass();
       
   123     }
       
   124 
       
   125     private static void tryCatch(String fs, Class<?> ex, Object ... args) {
       
   126         boolean caught = false;
       
   127         try {
       
   128             test(fs, args);
       
   129         } catch (Throwable x) {
       
   130             if (ex.isAssignableFrom(x.getClass()))
       
   131                 caught = true;
       
   132         }
       
   133         if (!caught)
       
   134             fail(fs, ex);
       
   135         else
       
   136             pass();
       
   137     }
       
   138 
       
   139 
       
   140 
       
   141 
       
   142 
       
   143 
       
   144 
       
   145 
       
   146 
       
   147 
       
   148 
       
   149 
       
   150 
       
   151 
       
   152 
       
   153 
       
   154 
       
   155 
       
   156 
       
   157 
       
   158 
       
   159 
       
   160 
       
   161 
       
   162 
       
   163 
       
   164 
       
   165 
       
   166 
       
   167 
       
   168 
       
   169 
       
   170 
       
   171 
       
   172 
       
   173 
       
   174 
       
   175 
       
   176 
       
   177 
       
   178 
       
   179 
       
   180 
       
   181 
       
   182 
       
   183 
       
   184 
       
   185 
       
   186 
       
   187 
       
   188 
       
   189 
       
   190 
       
   191 
       
   192 
       
   193 
       
   194 
       
   195 
       
   196 
       
   197 
       
   198 
       
   199 
       
   200 
       
   201 
       
   202 
       
   203 
       
   204 
       
   205 
       
   206 
       
   207 
       
   208 
       
   209 
       
   210 
       
   211 
       
   212 
       
   213 
       
   214 
       
   215 
       
   216 
       
   217 
       
   218 
       
   219 
       
   220 
       
   221 
       
   222 
       
   223 
       
   224 
       
   225 
       
   226 
       
   227 
       
   228 
       
   229 
       
   230 
       
   231 
       
   232 
       
   233 
       
   234 
       
   235 
       
   236 
       
   237 
       
   238 
       
   239 
       
   240 
       
   241 
       
   242     private static Long negate(Long v) {
       
   243         return new Long(-v.longValue());
       
   244     }
       
   245 
       
   246 
       
   247 
       
   248 
       
   249 
       
   250 
       
   251 
       
   252 
       
   253 
       
   254 
       
   255 
       
   256 
       
   257 
       
   258 
       
   259 
       
   260 
       
   261 
       
   262 
       
   263 
       
   264 
       
   265 
       
   266 
       
   267 
       
   268 
       
   269 
       
   270 
       
   271 
       
   272 
       
   273 
       
   274 
       
   275 
       
   276 
       
   277 
       
   278 
       
   279 
       
   280 
       
   281 
       
   282 
       
   283 
       
   284 
       
   285 
       
   286 
       
   287 
       
   288 
       
   289 
       
   290 
       
   291 
       
   292 
       
   293 
       
   294 
       
   295 
       
   296 
       
   297 
       
   298 
       
   299 
       
   300 
       
   301 
       
   302 
       
   303 
       
   304 
       
   305 
       
   306 
       
   307 
       
   308 
       
   309 
       
   310 
       
   311 
       
   312 
       
   313 
       
   314 
       
   315 
       
   316 
       
   317 
       
   318 
       
   319 
       
   320 
       
   321 
       
   322 
       
   323 
       
   324 
       
   325 
       
   326 
       
   327 
       
   328 
       
   329 
       
   330 
       
   331 
       
   332 
       
   333 
       
   334     public static void test() {
       
   335         TimeZone.setDefault(TimeZone.getTimeZone("GMT-0800"));
       
   336 
       
   337         // Any characters not explicitly defined as conversions, date/time
       
   338         // conversion suffixes, or flags are illegal and are reserved for
       
   339         // future extensions.  Use of such a character in a format string will
       
   340         // cause an UnknownFormatConversionException or
       
   341         // UnknownFormatFlagsException to be thrown.
       
   342         tryCatch("%q", UnknownFormatConversionException.class);
       
   343         tryCatch("%t&", UnknownFormatConversionException.class);
       
   344         tryCatch("%&d", UnknownFormatConversionException.class);
       
   345         tryCatch("%^b", UnknownFormatConversionException.class);
       
   346 
       
   347         //---------------------------------------------------------------------
       
   348         // Formatter.java class javadoc examples
       
   349         //---------------------------------------------------------------------
       
   350         test(Locale.FRANCE, "e = %+10.4f", "e =    +2,7183", Math.E);
       
   351         test("%4$2s %3$2s %2$2s %1$2s", " d  c  b  a", "a", "b", "c", "d");
       
   352         test("Amount gained or lost since last statement: $ %,(.2f",
       
   353              "Amount gained or lost since last statement: $ (6,217.58)",
       
   354              (new BigDecimal("-6217.58")));
       
   355         Calendar c = new GregorianCalendar(1969, JULY, 20, 16, 17, 0);
       
   356         testSysOut("Local time: %tT", "Local time: 16:17:00", c);
       
   357 
       
   358         test("Unable to open file '%1$s': %2$s",
       
   359              "Unable to open file 'food': No such file or directory",
       
   360              "food", "No such file or directory");
       
   361         Calendar duke = new GregorianCalendar(1995, MAY, 23, 19, 48, 34);
       
   362         duke.set(Calendar.MILLISECOND, 584);
       
   363         test("Duke's Birthday: %1$tB %1$te, %1$tY",
       
   364              "Duke's Birthday: May 23, 1995",
       
   365              duke);
       
   366         test("Duke's Birthday: %1$tB %1$te, %1$tY",
       
   367              "Duke's Birthday: May 23, 1995",
       
   368              duke.getTime());
       
   369         test("Duke's Birthday: %1$tB %1$te, %1$tY",
       
   370              "Duke's Birthday: May 23, 1995",
       
   371              duke.getTimeInMillis());
       
   372 
       
   373         test("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
       
   374              "d c b a d c b a", "a", "b", "c", "d");
       
   375         test("%s %s %<s %<s", "a b b b", "a", "b", "c", "d");
       
   376         test("%s %s %s %s", "a b c d", "a", "b", "c", "d");
       
   377         test("%2$s %s %<s %s", "b a a b", "a", "b", "c", "d");
       
   378 
       
   379         //---------------------------------------------------------------------
       
   380         // %b
       
   381         //
       
   382         // General conversion applicable to any argument.
       
   383         //---------------------------------------------------------------------
       
   384         test("%b", "true", true);
       
   385         test("%b", "false", false);
       
   386         test("%B", "TRUE", true);
       
   387         test("%B", "FALSE", false);
       
   388         test("%b", "true", Boolean.TRUE);
       
   389         test("%b", "false", Boolean.FALSE);
       
   390         test("%B", "TRUE", Boolean.TRUE);
       
   391         test("%B", "FALSE", Boolean.FALSE);
       
   392         test("%14b", "          true", true);
       
   393         test("%-14b", "true          ", true);
       
   394         test("%5.1b", "    f", false);
       
   395         test("%-5.1b", "f    ", false);
       
   396 
       
   397         test("%b", "true", "foo");
       
   398         test("%b", "false", (Object)null);
       
   399 
       
   400         // Boolean.java hardcodes the Strings for "true" and "false", so no
       
   401         // localization is possible.
       
   402         test(Locale.FRANCE, "%b", "true", true);
       
   403         test(Locale.FRANCE, "%b", "false", false);
       
   404 
       
   405         // If you pass in a single array to a varargs method, the compiler
       
   406         // uses it as the array of arguments rather than treating it as a
       
   407         // single array-type argument.
       
   408         test("%b", "false", (Object[])new String[2]);
       
   409         test("%b", "true", new String[2], new String[2]);
       
   410 
       
   411         int [] ia = { 1, 2, 3 };
       
   412         test("%b", "true", ia);
       
   413 
       
   414         //---------------------------------------------------------------------
       
   415         // %b - errors
       
   416         //---------------------------------------------------------------------
       
   417         tryCatch("%#b", FormatFlagsConversionMismatchException.class);
       
   418         tryCatch("%-b", MissingFormatWidthException.class);
       
   419         // correct or side-effect of implementation?
       
   420         tryCatch("%.b", UnknownFormatConversionException.class);
       
   421         tryCatch("%,b", FormatFlagsConversionMismatchException.class);
       
   422 
       
   423         //---------------------------------------------------------------------
       
   424         // %c
       
   425         //
       
   426         // General conversion applicable to any argument.
       
   427         //---------------------------------------------------------------------
       
   428         test("%c", "i", 'i');
       
   429         test("%C", "I", 'i');
       
   430         test("%4c",  "   i", 'i');
       
   431         test("%-4c", "i   ", 'i');
       
   432         test("%4C",  "   I", 'i');
       
   433         test("%-4C", "I   ", 'i');
       
   434         test("%c", "i", new Character('i'));
       
   435         test("%c", "H", (byte) 72);
       
   436         test("%c", "i", (short) 105);
       
   437         test("%c", "!", (int) 33);
       
   438         test("%c", "\u007F", Byte.MAX_VALUE);
       
   439         test("%c", new String(Character.toChars(Short.MAX_VALUE)),
       
   440              Short.MAX_VALUE);
       
   441         test("%c", "null", (Object) null);
       
   442 
       
   443         //---------------------------------------------------------------------
       
   444         // %c - errors
       
   445         //---------------------------------------------------------------------
       
   446         tryCatch("%c", IllegalFormatConversionException.class,
       
   447                  Boolean.TRUE);
       
   448         tryCatch("%c", IllegalFormatConversionException.class,
       
   449                  (float) 0.1);
       
   450         tryCatch("%c", IllegalFormatConversionException.class,
       
   451                  new Object());
       
   452         tryCatch("%c", IllegalFormatCodePointException.class,
       
   453                  Byte.MIN_VALUE);
       
   454         tryCatch("%c", IllegalFormatCodePointException.class,
       
   455                  Short.MIN_VALUE);
       
   456         tryCatch("%c", IllegalFormatCodePointException.class,
       
   457                  Integer.MIN_VALUE);
       
   458         tryCatch("%c", IllegalFormatCodePointException.class,
       
   459                  Integer.MAX_VALUE);
       
   460 
       
   461         tryCatch("%#c", FormatFlagsConversionMismatchException.class);
       
   462         tryCatch("%,c", FormatFlagsConversionMismatchException.class);
       
   463         tryCatch("%(c", FormatFlagsConversionMismatchException.class);
       
   464         tryCatch("%$c", UnknownFormatConversionException.class);
       
   465         tryCatch("%.2c", IllegalFormatPrecisionException.class);
       
   466 
       
   467         //---------------------------------------------------------------------
       
   468         // %s
       
   469         //
       
   470         // General conversion applicable to any argument.
       
   471         //---------------------------------------------------------------------
       
   472         test("%s", "Hello, Duke", "Hello, Duke");
       
   473         test("%S", "HELLO, DUKE", "Hello, Duke");
       
   474         test("%20S", "         HELLO, DUKE", "Hello, Duke");
       
   475         test("%20s", "         Hello, Duke", "Hello, Duke");
       
   476         test("%-20s", "Hello, Duke         ", "Hello, Duke");
       
   477         test("%-20.5s", "Hello               ", "Hello, Duke");
       
   478         test("%s", "null", (Object)null);
       
   479 
       
   480         StringBuffer sb = new StringBuffer("foo bar");
       
   481         test("%s", sb.toString(), sb);
       
   482         test("%S", sb.toString().toUpperCase(), sb);
       
   483 
       
   484         //---------------------------------------------------------------------
       
   485         // %s - errors
       
   486         //---------------------------------------------------------------------
       
   487         tryCatch("%-s", MissingFormatWidthException.class);
       
   488         tryCatch("%--s", DuplicateFormatFlagsException.class);
       
   489 
       
   490         //---------------------------------------------------------------------
       
   491         // %h
       
   492         //
       
   493         // General conversion applicable to any argument.
       
   494         //---------------------------------------------------------------------
       
   495         test("%h", Integer.toHexString("Hello, Duke".hashCode()),
       
   496              "Hello, Duke");
       
   497         test("%10h", "  ddf63471", "Hello, Duke");
       
   498         test("%-10h", "ddf63471  ", "Hello, Duke");
       
   499         test("%-10H", "DDF63471  ", "Hello, Duke");
       
   500         test("%10h", "  402e0000", 15.0);
       
   501         test("%10H", "  402E0000", 15.0);
       
   502 
       
   503         //---------------------------------------------------------------------
       
   504         // %h - errors
       
   505         //---------------------------------------------------------------------
       
   506         tryCatch("%#h", FormatFlagsConversionMismatchException.class);
       
   507 
       
   508         //---------------------------------------------------------------------
       
   509         // flag/conversion errors
       
   510         //---------------------------------------------------------------------
       
   511         tryCatch("%F", UnknownFormatConversionException.class);
       
   512 
       
   513         tryCatch("%#g", FormatFlagsConversionMismatchException.class);
       
   514 
       
   515 
       
   516 
       
   517 
       
   518 
       
   519 
       
   520         Long minByte = new Long(Byte.MIN_VALUE);
       
   521 
       
   522 
       
   523         //---------------------------------------------------------------------
       
   524         // %d
       
   525         //
       
   526         // Numeric conversion applicable to byte, short, int, long, and
       
   527         // BigInteger.
       
   528         //---------------------------------------------------------------------
       
   529         test("%d", "null", (Object)null);
       
   530 
       
   531 
       
   532 
       
   533 
       
   534 
       
   535 
       
   536 
       
   537 
       
   538 
       
   539 
       
   540 
       
   541 
       
   542 
       
   543 
       
   544 
       
   545 
       
   546 
       
   547 
       
   548 
       
   549 
       
   550 
       
   551 
       
   552 
       
   553 
       
   554 
       
   555 
       
   556 
       
   557 
       
   558 
       
   559 
       
   560 
       
   561 
       
   562 
       
   563 
       
   564 
       
   565 
       
   566 
       
   567 
       
   568 
       
   569 
       
   570 
       
   571 
       
   572 
       
   573 
       
   574 
       
   575 
       
   576 
       
   577 
       
   578 
       
   579 
       
   580 
       
   581 
       
   582 
       
   583 
       
   584 
       
   585 
       
   586 
       
   587 
       
   588 
       
   589 
       
   590 
       
   591 
       
   592 
       
   593 
       
   594 
       
   595 
       
   596 
       
   597         //---------------------------------------------------------------------
       
   598         // %d - errors
       
   599         //---------------------------------------------------------------------
       
   600         tryCatch("%#d", FormatFlagsConversionMismatchException.class);
       
   601         tryCatch("%D", UnknownFormatConversionException.class);
       
   602         tryCatch("%0d", MissingFormatWidthException.class);
       
   603         tryCatch("%-d", MissingFormatWidthException.class);
       
   604         tryCatch("%7.3d", IllegalFormatPrecisionException.class);
       
   605 
       
   606         //---------------------------------------------------------------------
       
   607         // %o
       
   608         //
       
   609         // Numeric conversion applicable to byte, short, int, long, and
       
   610         // BigInteger.
       
   611         //---------------------------------------------------------------------
       
   612         test("%o", "null", (Object)null);
       
   613 
       
   614 
       
   615 
       
   616 
       
   617 
       
   618 
       
   619 
       
   620 
       
   621 
       
   622 
       
   623 
       
   624 
       
   625 
       
   626 
       
   627 
       
   628 
       
   629 
       
   630 
       
   631 
       
   632 
       
   633 
       
   634 
       
   635 
       
   636 
       
   637 
       
   638 
       
   639 
       
   640 
       
   641 
       
   642 
       
   643 
       
   644 
       
   645 
       
   646 
       
   647 
       
   648 
       
   649 
       
   650 
       
   651 
       
   652 
       
   653 
       
   654 
       
   655 
       
   656 
       
   657 
       
   658 
       
   659 
       
   660         //---------------------------------------------------------------------
       
   661         // %o - errors
       
   662         //---------------------------------------------------------------------
       
   663         tryCatch("%(o", FormatFlagsConversionMismatchException.class,
       
   664                  minByte);
       
   665         tryCatch("%+o", FormatFlagsConversionMismatchException.class,
       
   666                  minByte);
       
   667         tryCatch("% o", FormatFlagsConversionMismatchException.class,
       
   668                  minByte);
       
   669         tryCatch("%0o", MissingFormatWidthException.class);
       
   670         tryCatch("%-o", MissingFormatWidthException.class);
       
   671         tryCatch("%,o", FormatFlagsConversionMismatchException.class);
       
   672         tryCatch("%O", UnknownFormatConversionException.class);
       
   673 
       
   674         //---------------------------------------------------------------------
       
   675         // %x
       
   676         //
       
   677         // Numeric conversion applicable to byte, short, int, long, and
       
   678         // BigInteger.
       
   679         //---------------------------------------------------------------------
       
   680         test("%x", "null", (Object)null);
       
   681 
       
   682 
       
   683 
       
   684 
       
   685 
       
   686 
       
   687 
       
   688 
       
   689 
       
   690 
       
   691 
       
   692 
       
   693 
       
   694 
       
   695 
       
   696 
       
   697 
       
   698 
       
   699 
       
   700 
       
   701 
       
   702 
       
   703 
       
   704 
       
   705 
       
   706 
       
   707 
       
   708 
       
   709 
       
   710 
       
   711 
       
   712 
       
   713 
       
   714 
       
   715 
       
   716 
       
   717 
       
   718 
       
   719 
       
   720 
       
   721 
       
   722 
       
   723 
       
   724 
       
   725 
       
   726 
       
   727 
       
   728 
       
   729 
       
   730 
       
   731 
       
   732 
       
   733 
       
   734 
       
   735 
       
   736 
       
   737 
       
   738 
       
   739 
       
   740 
       
   741 
       
   742 
       
   743 
       
   744         //---------------------------------------------------------------------
       
   745         // %x - errors
       
   746         //---------------------------------------------------------------------
       
   747         tryCatch("%,x", FormatFlagsConversionMismatchException.class);
       
   748         tryCatch("%0x", MissingFormatWidthException.class);
       
   749         tryCatch("%-x", MissingFormatWidthException.class);
       
   750 
       
   751 
       
   752 
       
   753 
       
   754 
       
   755 
       
   756 
       
   757 
       
   758 
       
   759 
       
   760 
       
   761 
       
   762 
       
   763 
       
   764 
       
   765 
       
   766 
       
   767 
       
   768 
       
   769 
       
   770 
       
   771 
       
   772 
       
   773 
       
   774 
       
   775 
       
   776 
       
   777 
       
   778 
       
   779 
       
   780 
       
   781 
       
   782 
       
   783 
       
   784 
       
   785 
       
   786 
       
   787 
       
   788 
       
   789 
       
   790 
       
   791 
       
   792 
       
   793 
       
   794 
       
   795 
       
   796 
       
   797 
       
   798 
       
   799 
       
   800 
       
   801 
       
   802 
       
   803 
       
   804 
       
   805 
       
   806 
       
   807 
       
   808 
       
   809 
       
   810 
       
   811 
       
   812 
       
   813 
       
   814 
       
   815 
       
   816 
       
   817 
       
   818 
       
   819 
       
   820 
       
   821 
       
   822 
       
   823 
       
   824 
       
   825 
       
   826 
       
   827 
       
   828 
       
   829 
       
   830 
       
   831 
       
   832 
       
   833 
       
   834 
       
   835 
       
   836 
       
   837 
       
   838 
       
   839 
       
   840 
       
   841 
       
   842 
       
   843 
       
   844 
       
   845 
       
   846 
       
   847 
       
   848 
       
   849 
       
   850 
       
   851 
       
   852 
       
   853 
       
   854 
       
   855 
       
   856 
       
   857 
       
   858 
       
   859 
       
   860 
       
   861 
       
   862 
       
   863 
       
   864 
       
   865 
       
   866 
       
   867 
       
   868 
       
   869 
       
   870 
       
   871 
       
   872 
       
   873 
       
   874 
       
   875 
       
   876 
       
   877 
       
   878 
       
   879 
       
   880 
       
   881 
       
   882 
       
   883 
       
   884 
       
   885 
       
   886 
       
   887 
       
   888 
       
   889 
       
   890 
       
   891 
       
   892 
       
   893 
       
   894 
       
   895 
       
   896 
       
   897 
       
   898 
       
   899 
       
   900 
       
   901 
       
   902 
       
   903 
       
   904 
       
   905 
       
   906 
       
   907 
       
   908 
       
   909 
       
   910 
       
   911 
       
   912 
       
   913 
       
   914 
       
   915 
       
   916 
       
   917 
       
   918 
       
   919 
       
   920 
       
   921 
       
   922 
       
   923 
       
   924 
       
   925 
       
   926 
       
   927 
       
   928 
       
   929 
       
   930 
       
   931 
       
   932 
       
   933 
       
   934 
       
   935 
       
   936 
       
   937 
       
   938 
       
   939 
       
   940 
       
   941 
       
   942 
       
   943 
       
   944 
       
   945 
       
   946 
       
   947 
       
   948 
       
   949 
       
   950 
       
   951 
       
   952 
       
   953 
       
   954 
       
   955 
       
   956 
       
   957 
       
   958 
       
   959 
       
   960 
       
   961 
       
   962 
       
   963 
       
   964 
       
   965 
       
   966 
       
   967 
       
   968 
       
   969 
       
   970 
       
   971 
       
   972 
       
   973 
       
   974 
       
   975 
       
   976 
       
   977 
       
   978 
       
   979 
       
   980 
       
   981 
       
   982 
       
   983 
       
   984 
       
   985 
       
   986 
       
   987 
       
   988 
       
   989 
       
   990 
       
   991 
       
   992 
       
   993 
       
   994 
       
   995 
       
   996 
       
   997 
       
   998 
       
   999 
       
  1000 
       
  1001 
       
  1002 
       
  1003 
       
  1004 
       
  1005 
       
  1006 
       
  1007 
       
  1008 
       
  1009 
       
  1010 
       
  1011 
       
  1012 
       
  1013 
       
  1014 
       
  1015 
       
  1016 
       
  1017 
       
  1018 
       
  1019 
       
  1020 
       
  1021 
       
  1022 
       
  1023 
       
  1024 
       
  1025 
       
  1026 
       
  1027 
       
  1028 
       
  1029 
       
  1030 
       
  1031 
       
  1032 
       
  1033 
       
  1034 
       
  1035 
       
  1036 
       
  1037 
       
  1038 
       
  1039 
       
  1040 
       
  1041 
       
  1042 
       
  1043 
       
  1044 
       
  1045 
       
  1046 
       
  1047 
       
  1048 
       
  1049 
       
  1050 
       
  1051 
       
  1052 
       
  1053 
       
  1054 
       
  1055 
       
  1056 
       
  1057 
       
  1058 
       
  1059 
       
  1060 
       
  1061 
       
  1062 
       
  1063 
       
  1064 
       
  1065 
       
  1066 
       
  1067 
       
  1068 
       
  1069 
       
  1070 
       
  1071 
       
  1072 
       
  1073 
       
  1074 
       
  1075 
       
  1076 
       
  1077 
       
  1078 
       
  1079 
       
  1080 
       
  1081 
       
  1082 
       
  1083 
       
  1084 
       
  1085 
       
  1086 
       
  1087 
       
  1088 
       
  1089 
       
  1090 
       
  1091 
       
  1092 
       
  1093 
       
  1094 
       
  1095 
       
  1096 
       
  1097 
       
  1098 
       
  1099 
       
  1100 
       
  1101 
       
  1102 
       
  1103 
       
  1104 
       
  1105 
       
  1106 
       
  1107 
       
  1108 
       
  1109 
       
  1110 
       
  1111 
       
  1112 
       
  1113 
       
  1114 
       
  1115 
       
  1116 
       
  1117 
       
  1118 
       
  1119 
       
  1120 
       
  1121 
       
  1122 
       
  1123 
       
  1124 
       
  1125 
       
  1126 
       
  1127 
       
  1128 
       
  1129 
       
  1130 
       
  1131 
       
  1132 
       
  1133 
       
  1134 
       
  1135 
       
  1136 
       
  1137 
       
  1138 
       
  1139 
       
  1140 
       
  1141 
       
  1142 
       
  1143 
       
  1144 
       
  1145 
       
  1146 
       
  1147 
       
  1148 
       
  1149 
       
  1150 
       
  1151 
       
  1152 
       
  1153 
       
  1154 
       
  1155 
       
  1156 
       
  1157 
       
  1158 
       
  1159 
       
  1160 
       
  1161 
       
  1162 
       
  1163 
       
  1164 
       
  1165 
       
  1166 
       
  1167 
       
  1168 
       
  1169 
       
  1170 
       
  1171 
       
  1172 
       
  1173 
       
  1174 
       
  1175 
       
  1176 
       
  1177 
       
  1178 
       
  1179 
       
  1180 
       
  1181 
       
  1182 
       
  1183 
       
  1184 
       
  1185 
       
  1186 
       
  1187 
       
  1188 
       
  1189 
       
  1190 
       
  1191 
       
  1192 
       
  1193 
       
  1194 
       
  1195 
       
  1196 
       
  1197 
       
  1198 
       
  1199 
       
  1200 
       
  1201 
       
  1202 
       
  1203 
       
  1204 
       
  1205 
       
  1206 
       
  1207 
       
  1208 
       
  1209 
       
  1210 
       
  1211 
       
  1212 
       
  1213 
       
  1214 
       
  1215 
       
  1216 
       
  1217 
       
  1218 
       
  1219 
       
  1220 
       
  1221 
       
  1222 
       
  1223 
       
  1224 
       
  1225 
       
  1226 
       
  1227 
       
  1228 
       
  1229 
       
  1230 
       
  1231 
       
  1232 
       
  1233 
       
  1234 
       
  1235 
       
  1236 
       
  1237 
       
  1238 
       
  1239 
       
  1240 
       
  1241 
       
  1242 
       
  1243 
       
  1244 
       
  1245 
       
  1246 
       
  1247 
       
  1248 
       
  1249 
       
  1250 
       
  1251 
       
  1252 
       
  1253 
       
  1254 
       
  1255 
       
  1256 
       
  1257 
       
  1258 
       
  1259 
       
  1260 
       
  1261 
       
  1262 
       
  1263 
       
  1264 
       
  1265 
       
  1266 
       
  1267 
       
  1268 
       
  1269 
       
  1270 
       
  1271 
       
  1272 
       
  1273 
       
  1274 
       
  1275 
       
  1276 
       
  1277 
       
  1278 
       
  1279 
       
  1280 
       
  1281 
       
  1282 
       
  1283 
       
  1284 
       
  1285 
       
  1286 
       
  1287 
       
  1288 
       
  1289 
       
  1290 
       
  1291 
       
  1292 
       
  1293 
       
  1294 
       
  1295 
       
  1296 
       
  1297 
       
  1298 
       
  1299 
       
  1300 
       
  1301 
       
  1302 
       
  1303 
       
  1304 
       
  1305 
       
  1306 
       
  1307 
       
  1308 
       
  1309 
       
  1310 
       
  1311 
       
  1312 
       
  1313 
       
  1314 
       
  1315 
       
  1316 
       
  1317 
       
  1318 
       
  1319 
       
  1320 
       
  1321 
       
  1322 
       
  1323 
       
  1324 
       
  1325 
       
  1326 
       
  1327 
       
  1328 
       
  1329 
       
  1330 
       
  1331 
       
  1332 
       
  1333 
       
  1334 
       
  1335 
       
  1336 
       
  1337 
       
  1338 
       
  1339 
       
  1340 
       
  1341 
       
  1342 
       
  1343 
       
  1344 
       
  1345 
       
  1346 
       
  1347 
       
  1348 
       
  1349 
       
  1350 
       
  1351 
       
  1352 
       
  1353 
       
  1354 
       
  1355 
       
  1356 
       
  1357 
       
  1358 
       
  1359 
       
  1360 
       
  1361 
       
  1362 
       
  1363 
       
  1364 
       
  1365 
       
  1366 
       
  1367 
       
  1368 
       
  1369 
       
  1370 
       
  1371 
       
  1372 
       
  1373 
       
  1374 
       
  1375 
       
  1376 
       
  1377 
       
  1378 
       
  1379 
       
  1380 
       
  1381 
       
  1382 
       
  1383 
       
  1384 
       
  1385 
       
  1386 
       
  1387 
       
  1388 
       
  1389 
       
  1390 
       
  1391 
       
  1392 
       
  1393 
       
  1394 
       
  1395 
       
  1396 
       
  1397 
       
  1398 
       
  1399 
       
  1400 
       
  1401 
       
  1402 
       
  1403 
       
  1404 
       
  1405 
       
  1406 
       
  1407 
       
  1408 
       
  1409 
       
  1410 
       
  1411 
       
  1412 
       
  1413 
       
  1414 
       
  1415 
       
  1416 
       
  1417 
       
  1418 
       
  1419 
       
  1420 
       
  1421 
       
  1422 
       
  1423 
       
  1424 
       
  1425 
       
  1426 
       
  1427 
       
  1428 
       
  1429 
       
  1430 
       
  1431 
       
  1432 
       
  1433 
       
  1434 
       
  1435 
       
  1436 
       
  1437 
       
  1438 
       
  1439 
       
  1440 
       
  1441 
       
  1442 
       
  1443 
       
  1444 
       
  1445 
       
  1446 
       
  1447 
       
  1448 
       
  1449 
       
  1450 
       
  1451 
       
  1452 
       
  1453 
       
  1454 
       
  1455 
       
  1456 
       
  1457 
       
  1458 
       
  1459 
       
  1460 
       
  1461 
       
  1462 
       
  1463 
       
  1464 
       
  1465 
       
  1466 
       
  1467 
       
  1468 
       
  1469 
       
  1470 
       
  1471 
       
  1472 
       
  1473 
       
  1474 
       
  1475 
       
  1476 
       
  1477 
       
  1478 
       
  1479 
       
  1480 
       
  1481 
       
  1482 
       
  1483 
       
  1484 
       
  1485 
       
  1486 
       
  1487 
       
  1488 
       
  1489 
       
  1490 
       
  1491 
       
  1492 
       
  1493 
       
  1494 
       
  1495 
       
  1496 
       
  1497 
       
  1498 
       
  1499 
       
  1500 
       
  1501 
       
  1502 
       
  1503 
       
  1504 
       
  1505 
       
  1506 
       
  1507 
       
  1508 
       
  1509 
       
  1510 
       
  1511 
       
  1512 
       
  1513 
       
  1514 
       
  1515 
       
  1516 
       
  1517 
       
  1518 
       
  1519 
       
  1520 
       
  1521 
       
  1522 
       
  1523 
       
  1524 
       
  1525 
       
  1526 
       
  1527         //---------------------------------------------------------------------
       
  1528         // %t
       
  1529         //
       
  1530         // Date/Time conversions applicable to Calendar, Date, and long.
       
  1531         //---------------------------------------------------------------------
       
  1532         test("%tA", "null", (Object)null);
       
  1533         test("%TA", "NULL", (Object)null);
       
  1534 
       
  1535         //---------------------------------------------------------------------
       
  1536         // %t - errors
       
  1537         //---------------------------------------------------------------------
       
  1538         tryCatch("%t", UnknownFormatConversionException.class);
       
  1539         tryCatch("%T", UnknownFormatConversionException.class);
       
  1540         tryCatch("%tP", UnknownFormatConversionException.class);
       
  1541         tryCatch("%TP", UnknownFormatConversionException.class);
       
  1542         tryCatch("%.5tB", IllegalFormatPrecisionException.class);
       
  1543         tryCatch("%#tB", FormatFlagsConversionMismatchException.class);
       
  1544         tryCatch("%-tB", MissingFormatWidthException.class);
       
  1545 
       
  1546 
       
  1547 
       
  1548 
       
  1549 
       
  1550 
       
  1551 
       
  1552 
       
  1553 
       
  1554 
       
  1555 
       
  1556 
       
  1557 
       
  1558 
       
  1559 
       
  1560 
       
  1561 
       
  1562 
       
  1563 
       
  1564 
       
  1565 
       
  1566 
       
  1567 
       
  1568 
       
  1569 
       
  1570 
       
  1571 
       
  1572 
       
  1573 
       
  1574 
       
  1575 
       
  1576 
       
  1577 
       
  1578 
       
  1579 
       
  1580 
       
  1581 
       
  1582 
       
  1583 
       
  1584 
       
  1585 
       
  1586 
       
  1587 
       
  1588 
       
  1589 
       
  1590 
       
  1591 
       
  1592 
       
  1593 
       
  1594 
       
  1595 
       
  1596 
       
  1597 
       
  1598 
       
  1599 
       
  1600 
       
  1601 
       
  1602 
       
  1603 
       
  1604 
       
  1605 
       
  1606 
       
  1607 
       
  1608 
       
  1609 
       
  1610 
       
  1611 
       
  1612 
       
  1613 
       
  1614 
       
  1615 
       
  1616 
       
  1617 
       
  1618 
       
  1619 
       
  1620 
       
  1621 
       
  1622 
       
  1623 
       
  1624 
       
  1625 
       
  1626 
       
  1627 
       
  1628 
       
  1629 
       
  1630 
       
  1631 
       
  1632 
       
  1633 
       
  1634 
       
  1635 
       
  1636 
       
  1637 
       
  1638 
       
  1639 
       
  1640         //---------------------------------------------------------------------
       
  1641         // %n
       
  1642         //---------------------------------------------------------------------
       
  1643         test("%n", System.getProperty("line.separator"), (Object)null);
       
  1644         test("%n", System.getProperty("line.separator"), "");
       
  1645 
       
  1646         tryCatch("%,n", IllegalFormatFlagsException.class);
       
  1647         tryCatch("%.n", UnknownFormatConversionException.class);
       
  1648         tryCatch("%5.n", UnknownFormatConversionException.class);
       
  1649         tryCatch("%5n", IllegalFormatWidthException.class);
       
  1650         tryCatch("%.7n", IllegalFormatPrecisionException.class);
       
  1651         tryCatch("%<n", IllegalFormatFlagsException.class);
       
  1652 
       
  1653         //---------------------------------------------------------------------
       
  1654         // %%
       
  1655         //---------------------------------------------------------------------
       
  1656         test("%%", "%", (Object)null);
       
  1657         test("%%", "%", "");
       
  1658         tryCatch("%%%", UnknownFormatConversionException.class);
       
  1659         // perhaps an IllegalFormatArgumentIndexException should be defined?
       
  1660         tryCatch("%<%", IllegalFormatFlagsException.class);
       
  1661     }
       
  1662 }