Пример #1
0
 public void TestToCodePoint()
 {
     char[] pairs = { (char)(UChar.MinHighSurrogate + 0),
                      (char)(UChar.MinLowSurrogate + 0),
                      (char)(UChar.MinHighSurrogate + 1),
                      (char)(UChar.MinLowSurrogate + 1),
                      (char)(UChar.MinHighSurrogate + 2),
                      (char)(UChar.MinLowSurrogate + 2),
                      (char)(UChar.MaxHighSurrogate - 2),
                      (char)(UChar.MaxLowSurrogate - 2),
                      (char)(UChar.MaxHighSurrogate - 1),
                      (char)(UChar.MaxLowSurrogate - 1),
                      (char)(UChar.MaxHighSurrogate - 0),
                      (char)(UChar.MaxLowSurrogate - 0), };
     for (int i = 0; i < pairs.Length; i += 2)
     {
         int cp = UChar.ToCodePoint(pairs[i], pairs[i + 1]);
         if (pairs[i] != UTF16.GetLeadSurrogate(cp) ||
             pairs[i + 1] != UTF16.GetTrailSurrogate(cp))
         {
             Errln((pairs[i]).ToHexString() + ", " + pairs[i + 1]);
             break;
         }
     }
 }
Пример #2
0
        public void TestToChars()
        {
            char[] chars = new char[3];
            int    cp    = UChar.ToCodePoint(UChar.MinHighSurrogate,
                                             UChar.MinLowSurrogate);

            UChar.ToChars(cp, chars, 1);
            if (chars[1] != UChar.MinHighSurrogate ||
                chars[2] != UChar.MinLowSurrogate)
            {
                Errln("fail");
            }

            chars = UChar.ToChars(cp);
            if (chars[0] != UChar.MinHighSurrogate ||
                chars[1] != UChar.MinLowSurrogate)
            {
                Errln("fail");
            }
        }
Пример #3
0
        public void TestCodePointAtBefore()
        {
            String s = "" + UChar.MinHighSurrogate +                  // isolated high
                       UChar.MinHighSurrogate +                       // pair
                       UChar.MinLowSurrogate + UChar.MinLowSurrogate; // isolated

            // low
            char[] c       = s.ToCharArray();
            int[]  avalues =
            {
                UChar.MinHighSurrogate,
                UChar.ToCodePoint(UChar.MinHighSurrogate,
                                  UChar.MinLowSurrogate),
                UChar.MinLowSurrogate, UChar.MinLowSurrogate
            };
            int[] bvalues =
            {
                UChar.MinHighSurrogate,
                UChar.MinHighSurrogate,
                UChar.ToCodePoint(UChar.MinHighSurrogate,
                                  UChar.MinLowSurrogate),
                UChar.MinLowSurrogate,
            };
            StringBuffer b = new StringBuffer(s);

            for (int i = 0; i < avalues.Length; ++i)
            {
                if (UChar.CodePointAt(s, i) != avalues[i])
                {
                    Errln("string at: " + i);
                }
                if (UChar.CodePointAt(c, i) != avalues[i])
                {
                    Errln("chars at: " + i);
                }
                if (UChar.CodePointAt(b, i) != avalues[i])
                {
                    Errln("stringbuffer at: " + i);
                }

                if (UChar.CodePointBefore(s, i + 1) != bvalues[i])
                {
                    Errln("string before: " + i);
                }
                if (UChar.CodePointBefore(c, i + 1) != bvalues[i])
                {
                    Errln("chars before: " + i);
                }
                if (UChar.CodePointBefore(b, i + 1) != bvalues[i])
                {
                    Errln("stringbuffer before: " + i);
                }
            }

            //cover codePointAtBefore with limit
            Logln("Testing codePointAtBefore with limit ...");
            for (int i = 0; i < avalues.Length; ++i)
            {
                if (UChar.CodePointAt(c, i, 4) != avalues[i])
                {
                    Errln("chars at: " + i);
                }
                if (UChar.CodePointBefore(c, i + 1, 0) != bvalues[i])
                {
                    Errln("chars before: " + i);
                }
            }
        }