Home | History | Annotate | Download | only in testdata
      1 // Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 //*****************************************************************************
      4 //
      5 //  Copyright (C) 2004-2006, International Business Machines
      6 //  Corporation and others.  All Rights Reserved.
      7 //
      8 //  file name:  icuio.txt
      9 //  encoding:   US-ASCII
     10 //  tab size:   4 (not used)
     11 //  indentation:4
     12 //
     13 //  created on: 2004Apr06
     14 //  created by: George Rhoten
     15 //
     16 //  ICU resource bundle source file with test data for data-driven ICU I/O tests.
     17 //
     18 //*****************************************************************************
     19 
     20 icuio:table(nofallback) {
     21     Info {
     22         Description { "Test data for ICU I/O" }
     23         LongDescription {
     24             "Test data for data-driven conversion tests in icu/source/test/iotest/iotest.cpp\n"
     25             "Run iotest printf\n"
     26 
     27             "argumentType:\n"
     28             "\td: double\n"
     29             "\tf: float\n"
     30             "\t1: int8_t (hexadecimal)\n"
     31             "\t2: int16_t (hexadecimal)\n"
     32             "\t4: int32_t (hexadecimal)\n"
     33             "\t8: int64_t (hexadecimal)\n"
     34             "\ts: char * string\n"
     35             "\tS: UChar * string\n"
     36         }
     37     }
     38     TestData {
     39         printf {
     40             Headers { "format", "result", "argumentType", "argument" }
     41             Cases {
     42                 { "%5.3S", "  abc", "S", "abcde" }
     43                 { "%-5.3S", "abc  ", "S", "abcde" }
     44                 { "%5.3S", "  abc", "S", "abcdef" }
     45                 { "%-5.3S", "abc  ", "S", "abcdef" }
     46                 { "%5.3S", "    a", "S", "a" }
     47                 { "%-5.3S", "a    ", "S", "a" }
     48                 { "%5.3s", "  abc", "s", "abcde" }
     49                 { "%-5.3s", "abc  ", "s", "abcde" }
     50                 { "%5.3s", "  abc", "s", "abcdef" }
     51                 { "%-5.3s", "abc  ", "s", "abcdef" }
     52                 { "%5.3s", "    a", "s", "a" }
     53                 { "%-5.3s", "a    ", "s", "a" }
     54                 { "%5.3C", "    a", "2", "61" }
     55                 { "%-5.3C", "a    ", "2", "61" }
     56                 { "%-5.0C", "a    ", "2", "61" } // Make sure that the precision is ignored.
     57                 { "%.3P", "120.000%", "d", "1.2" }
     58                 { "%.0P", "120%", "d", "1.2" }
     59                 { "%.3P", "1.200%", "d", "0.012" }
     60                 { "%.0P", "1%", "d", "0.012" }
     61                 { "%04.0P", "001%", "d", "0.012" }
     62                 { "%+4.0P", " +1%", "d", "0.012" }
     63                 { "%e", "1.200000e+000", "d", "1.2" }
     64                 { "%e", "1.234568e+006", "d", "1234567.89" }
     65                 { "%E", "1.234568E+006", "d", "1234567.89" }
     66                 { "%10e", "1.234568e+000", "d", "1.23456789" }
     67                 { "%10.4e", "1.2346e+000", "d", "1.23456789" }
     68                 { "%-10e", "1.234568e+000", "d", "1.23456789" }
     69                 { "%10e", "1.234568e+002", "d", "123.456789" }
     70                 { "%-10e", "1.234568e+002", "d", "123.456789" }
     71                 { "%-+12.1e", "+1.2e+000   ", "d", "1.234" }
     72                 { "%-+12.1e", "-1.2e+000   ", "d", "-1.234" }
     73                 { "%- 12.10e", " 1.2340000000e+000", "d", "1.234" }
     74                 { "%- 12.1e", "-1.2e+000   ", "d", "-1.234" }
     75                 { "%+12.1e", "   +1.2e+000", "d", "1.234" }
     76                 { "%+12.1e", "   -1.2e+000", "d", "-1.234" }
     77                 { "% 12.1e", "    1.2e+000", "d", "1.234" }
     78                 { "% 12.1e", "   -1.2e+000", "d", "-1.234" }
     79                 { "%12.1e", "    1.2e+000", "d", "1.234" }
     80                 { "%12.1e", "   -1.2e+000", "d", "-1.234" }
     81                 { "%.2e", "1.23e+000", "d", "1.234" }
     82                 { "%.2e", "-1.23e+000", "d", "-1.234" }
     83                 { "%3e", "1.234000e+000", "d", "1.234" }
     84                 { "%3e", "-1.234000e+000", "d", "-1.234" }
     85                 { "%g", "12345.7", "d", "12345.6789" }
     86                 { "%g", "123457", "d", "123456.789" }
     87                 { "%g", "1.23457e+006", "d", "1234567.89" }
     88                 { "%G", "12345.7", "d", "12345.6789" }
     89                 { "%G", "123457", "d", "123456.789" }
     90                 { "%G", "1.23457E+006", "d", "1234567.89" }
     91                 { "%.14G", "1.7E+064", "d", "1.7E+64" }
     92                 { "%.0f", "-12", "d", "-12.34" }
     93                 { "%.0e", "-1e+001", "d", "-12.34" }
     94                 { "%.0g", "-1e+001", "d", "-12.34" }
     95                 { "%hd", "-30002", "2", "8ace" }
     96                 { "%hu", "35534", "2", "8ace" }
     97                 { "%ho", "105316", "2", "8ace" }
     98                 { "%hx", "8ace", "2", "8ace" }
     99                 { "%lx", "8ace1234", "4", "8ace1234" }
    100                 { "%llx", "123456789abcdef0", "8", "123456789abcdef0" }
    101                 { "%lu", "2328760884", "4", "8ace1234" }
    102                 // %llu doesn't work yet.
    103                 { "%ld", "-1966206412", "4", "8ace1234" }
    104                 { "%lld", "1311768467463790320", "8", "123456789abcdef0" }
    105                 { "%+u", "2328760884", "4", "8ace1234" } // Ignore the + sign argument
    106             }
    107         }
    108         printfPrecision {
    109             Headers { "format", "result", "argumentType", "argument", "precision" }
    110             Cases {
    111                 { "%+1.*e", "+1.2346e+000", "d", "1.2345678", :int{4} }
    112                 { "%+2.*e", "+1.234568e+000", "d", "1.2345678", :int{6} }
    113                 { "%*d", "12345678", "4", "BC614E", :int{7} }
    114                 { "%*d", "12345678", "4", "BC614E", :int{8} }
    115                 { "%*d", " 12345678", "4", "BC614E", :int{9} }
    116                 { "%*d", "12345678 ", "4", "BC614E", :int{-9} }
    117                 { "%*d", "1", "4", "1", :int{-1} }
    118                 { "%*d", "1 ", "4", "1", :int{-2} }
    119             }
    120         }
    121         scanf {
    122             Headers { "format", "argument", "argumentType", "result" }
    123             Cases {
    124                 { "%e", "1.200000e+000", "f", "1.2" }
    125                 { "%*e%e", "1.200000e+000 4.825000e+000", "f", "4.825" }
    126                 { "%C", "1234", "2", "31" }
    127                 { "%*C%C", "1234", "2", "32" }
    128                 { "%S", "1234 5678", "S", "1234" }
    129                 { "%*S%S", "1234 5678", "S", "5678" }
    130                 { "%hd", "1234 5678", "2", "4D2" }
    131                 { "%*hd%hd", "1234 5678", "2", "162E" }
    132                 { "%d", "1234 5678", "4", "4D2" }
    133                 { "%ld", "1234 5678", "4", "4D2" }
    134                 { "%lld", "1311768467463790320", "8", "123456789abcdef0" }
    135                 { "%3d", "1234 5678", "4", "7B" }
    136                 { "%4d", "123", "4", "7B" }
    137                 { "%2d", "123", "4", "C" }
    138                 { "%40d", "123", "4", "7B" }
    139                 { "%2e", "1.25", "f", "1" }
    140                 { "%2f", "1.25", "f", "1" }
    141                 { "%2g", "1.25", "f", "1" }
    142                 { "%2le", "1.25", "d", "1" }
    143                 { "%2lf", "1.25", "d", "1" }
    144                 { "%2lg", "1.25", "d", "1" }
    145                 { "%*2e%2e", "1.25", "f", "25" }
    146                 { "%*2f%2f", "1.25", "f", "25" }
    147                 { "%*2g%2g", "1.25", "f", "25" }
    148                 { "%*d%d", "1234 5678", "4", "162E" }
    149                 { "%x", "abcd ef01", "4", "abcd" }
    150                 { "%3x", "abcd ef01", "4", "abc" }
    151                 { "%*hx%hx", "abcd ef01", "2", "ef01" }
    152                 { "%ho", "1046539", "2", "89AB" } // Extra 9 on the end
    153                 { "%3ho", "7700", "2", "1F8" } // Don't read the 0 at the end
    154                 { "%llo", "1777777777777777777777", "8", "FFFFFFFFFFFFFFFF" }
    155                 { "%lx", "abcdef01", "4", "abcdef01" }
    156                 { "%x", "0x7abcdef0", "4", "7abcdef0" }
    157                 { "%llx", "123456789abcdef0", "8", "123456789abcdef0" }
    158                 { "%S", "a\U00010000b", "S", "a\U00010000b" }
    159                 { "%[abce]", "abcd ef01", "S", "abc" }
    160                 { "%*[abce]%[de\\ ]", "abcd ef01", "S", "d e" }
    161                 { "%[a\U00010000]", "a\U00010000\U00010001b", "S", "a\U00010000" }
    162                 { "%[a-f]", "abccdefg", "S", "abccdef" }
    163                 { "%[a-c]", "abccdefg", "S", "abcc" }
    164                 { "%[^e-f]", "abccdefg", "S", "abccd" }
    165                 { "%3[^e-f]", "abccdefg", "S", "abc" }
    166                 { "%*3[abc]%[cde]", "abccdefg", "S", "cde" }
    167                 { "%*3S%S", "a bc efg", "S", "bc" }
    168                 { "%*3S%S", "abcd efg", "S", "d" }
    169                 { "%*3s%s", "abcd efg", "s", "d" }
    170                 { "%*3d%d", "1234", "4", "4" }
    171                 { "%d", " 1234", "4", "4D2" }
    172                 { "%e", " 1234", "f", "1234" }
    173                 { "%f", " 1234", "f", "1234" }
    174                 { "%d", "+1234", "4", "4D2" }
    175                 { "%e", "+1234", "f", "1234" }
    176                 { "%f", "+1234", "f", "1234" }
    177             }
    178         }
    179     }
    180 }
    181