# *******************************************************************************
# * Copyright (C) 2000, International Business Machines
# * Corporation and others.  All Rights Reserved.
# *******************************************************************************
#
# test4.ucm
#
# Test file for MBCS conversion with three-byte codepage data.

<code_set_name>     "test4"
<mb_cur_max>        4
<mb_cur_min>        1
<uconv_class>       "MBCS"
<subchar>	        \xff
<icu:state>	        0, 1:1, 5-9
<icu:state>	        2:2
<icu:state>	        3:3
<icu:state>	        a-f.p

CHARMAP

# fromUnicode result is zero byte from other than U+0000
<U20ac>     \x00 |0

# nothing special
<U0005>     \x05 |0

# toUnicode result is fallback direct
<U0006>     \x06 |3

# toUnicode result is direct non-BMP code point
<U101234>   \x07 |0
<Ufebcd>    \x08 |3

#unassigned \x09

# toUnicode result is surrogate pair: test real pair, single unit, unassigned
<U23456>    \x01\x02\x03\x0a |0
<U000b>     \x01\x02\x03\x0b |0
#unassigned \x01\x02\x03\x0c
<U34567>    \x01\x02\x03\x0d |3
<U000e>     \x01\x02\x03\x0e |3
#unassigned \x01\x02\x03\x0f

END CHARMAP
