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