//*****************************************************************************
//
//  Copyright (C) 2004, International Business Machines
//  Corporation and others.  All Rights Reserved.
//
//  file name:  icuio.txt
//  encoding:   US-ASCII
//  tab size:   4 (not used)
//  indentation:4
//
//  created on: 2004Apr06
//  created by: George Rhoten
//
//  ICU resource bundle source file with test data for data-driven ICU I/O tests.
//
//*****************************************************************************

icuio {
    Info {
        Description { "Test data for ICU I/O" }
        LongDescription {
            "Test data for data-driven conversion tests in icu/source/test/iotest/iotest.cpp\n"
            "Run iotest printf\n"

            "argumentType:\n"
            "\td: double\n"
            "\t1: int8_t (hexadecimal)\n"
            "\t2: int16_t (hexadecimal)\n"
            "\t4: int32_t (hexadecimal)\n"
            "\t8: int64_t (hexadecimal)\n"
            "\ts: char * string\n"
            "\tS: UChar * string\n"
        }
    }
    TestData {
        printf {
            Headers { "format", "result", "argumentType", "argument" }
            Cases {
                {
                    "%e", "1.200000e+000", "d", "1.2"
                }
                {
                    "%e", "1.234568e+006", "d", "1234567.89"
                }
                {
                    "%E", "1.234568E+006", "d", "1234567.89"
                }
                {
                    "%10e", "1.234568e+000", "d", "1.23456789"
                }
                {
                    "%10.4e", "1.2346e+000", "d", "1.23456789"
                }
                {
                    "%-10e", "1.234568e+000", "d", "1.23456789"
                }
                {
                    "%10e", "1.234568e+002", "d", "123.456789"
                }
                {
                    "%-10e", "1.234568e+002", "d", "123.456789"
                }
                {
                    "%-+12.1e", "+1.2e+000   ", "d", "1.234"
                }
                {
                    "%-+12.1e", "-1.2e+000   ", "d", "-1.234"
                }
                {
                    "%- 12.10e", " 1.2340000000e+000", "d", "1.234"
                }
                {
                    "%- 12.1e", "-1.2e+000   ", "d", "-1.234"
                }
                {
                    "%+12.1e", "   +1.2e+000", "d", "1.234"
                }
                {
                    "%+12.1e", "   -1.2e+000", "d", "-1.234"
                }
                {
                    "% 12.1e", "    1.2e+000", "d", "1.234"
                }
                {
                    "% 12.1e", "   -1.2e+000", "d", "-1.234"
                }
                {
                    "%12.1e", "    1.2e+000", "d", "1.234"
                }
                {
                    "%12.1e", "   -1.2e+000", "d", "-1.234"
                }
                {
                    "%.2e", "1.23e+000", "d", "1.234"
                }
                {
                    "%.2e", "-1.23e+000", "d", "-1.234"
                }
                {
                    "%3e", "1.234000e+000", "d", "1.234"
                }
                {
                    "%3e", "-1.234000e+000", "d", "-1.234"
                }
                {
                    "%g", "12345.7", "d", "12345.6789"
                }
                {
                    "%g", "123457", "d", "123456.789"
                }
                {
                    "%g", "1.23457e+006", "d", "1234567.89"
                }
                {
                    "%G", "12345.7", "d", "12345.6789"
                }
                {
                    "%G", "123457", "d", "123456.789"
                }
                {
                    "%G", "1.23457E+006", "d", "1234567.89"
                }
                {
                    "%.0f", "-12", "d", "-12.34"
                }
                {
                    "%.0e", "-1e+001", "d", "-12.34"
                }
                {
                    "%.0g", "-1e+001", "d", "-12.34"
                }
                {
                    "%hd", "-30002", "2", "8ace"
                }
                {
                    "%ho", "105316", "2", "8ace"
                }
                {
                    "%hx", "8ace", "2", "8ace"
                }
                {
                    "%lx", "8ace1234", "4", "8ace1234"
                }
                {
                    "%llx", "123456789abcdef0", "8", "123456789abcdef0"
                }
                {
                    "%lu", "2328760884", "4", "8ace1234"
                }
                // %llu doesn't work yet.
                {
                    "%ld", "-1966206412", "4", "8ace1234"
                }
                {
                    "%lld", "1311768467463790320", "8", "123456789abcdef0"
                }
                {// Ignore the + sign argument
                    "%+u", "2328760884", "4", "8ace1234"
                }
            }
        }
        printfPrecision {
            Headers { "format", "result", "argumentType", "argument", "precision" }
            Cases {
                {
                    "%+1.*e", "+1.2346e+000", "d", "1.2345678", :int{4}
                }
                {
                    "%+2.*e", "+1.234568e+000", "d", "1.2345678", :int{6}
                }
                {
                    "%*d", "12345678", "4", "BC614E", :int{7}
                }
                {
                    "%*d", "12345678", "4", "BC614E", :int{8}
                }
                {
                    "%*d", " 12345678", "4", "BC614E", :int{9}
                }
            }
        }
        scanf {
            Headers { "format", "argument", "argumentType", "result" }
            Cases {
                {
                    "%e", "1.200000e+000", "d", "1.2"
                }
                {
                    "%*e%e", "1.200000e+000 4.825000e+000", "d", "4.825"
                }
                {
                    "%C", "1234", "2", "31"
                }
                {
                    "%*C%C", "1234", "2", "32"
                }
                {
                    "%S", "1234 5678", "S", "1234"
                }
                {
                    "%*S%S", "1234 5678", "S", "5678"
                }
                {
                    "%hd", "1234 5678", "2", "4D2"
                }
                {
                    "%*hd%hd", "1234 5678", "2", "162E"
                }
                {
                    "%d", "1234 5678", "4", "4D2"
                }
                {
                    "%ld", "1234 5678", "4", "4D2"
                }
                {
                    "%lld", "1311768467463790320", "8", "123456789abcdef0"
                }
                {
                    "%3d", "1234 5678", "4", "7B"
                }
                {
                    "%4d", "123", "4", "7B"
                }
                {
                    "%40d", "123", "4", "7B"
                }
                {
                    "%*d%d", "1234 5678", "4", "162E"
                }
                {
                    "%x", "abcd ef01", "4", "abcd"
                }
                {
                    "%3x", "abcd ef01", "4", "abc"
                }
                {
                    "%*hx%hx", "abcd ef01", "2", "ef01"
                }
                {// Extra 9 on the end
                    "%ho", "1046539", "2", "89AB"
                }
                {// Don't read the 0 at the end
                    "%3ho", "7700", "2", "1F8"
                }
                {
                    "%llo", "1777777777777777777777", "8", "FFFFFFFFFFFFFFFF"
                }
                {
                    "%lx", "abcdef01", "4", "abcdef01"
                }
                {
                    "%x", "0x7abcdef0", "4", "7abcdef0"
                }
                {
                    "%llx", "123456789abcdef0", "8", "123456789abcdef0"
                }
                {
                    "%S", "a\U00010000b", "S", "a\U00010000b"
                }
                {
                    "%[abce]", "abcd ef01", "S", "abc"
                }
                {
                    "%*[abce]%[de\\ ]", "abcd ef01", "S", "d e"
                }
                {
                    "%[a\U00010000]", "a\U00010000\U00010001b", "S", "a\U00010000"
                }
                {
                    "%[a-f]", "abccdefg", "S", "abccdef"
                }
                {
                    "%[a-c]", "abccdefg", "S", "abcc"
                }
                {
                    "%[^e-f]", "abccdefg", "S", "abccd"
                }
                {
                    "%3[^e-f]", "abccdefg", "S", "abc"
                }
                {
                    "%*3[abc]%[cde]", "abccdefg", "S", "cde"
                }
                {
                    "%*3S%S", "a bc efg", "S", "bc"
                }
                {
                    "%*3S%S", "abcd efg", "S", "d"
                }
                {
                    "%*3s%s", "abcd efg", "s", "d"
                }
                {
                    "%*3d%d", "1234", "4", "4"
                }
            }
        }
    }
}
