public void TestGetScriptExtensions() { BitArray scripts = new BitArray(UScript.CodeLimit); /* invalid code points */ if (UScript.GetScriptExtensions(-1, scripts) != UScript.Unknown || scripts.Cardinality() != 1 || !scripts.Get(UScript.Unknown)) { Errln("UScript.getScriptExtensions(-1) is not {UNKNOWN}"); } if (UScript.GetScriptExtensions(0x110000, scripts) != UScript.Unknown || scripts.Cardinality() != 1 || !scripts.Get(UScript.Unknown)) { Errln("UScript.getScriptExtensions(0x110000) is not {UNKNOWN}"); } /* normal usage */ if (UScript.GetScriptExtensions(0x063f, scripts) != UScript.Arabic || scripts.Cardinality() != 1 || !scripts.Get(UScript.Arabic)) { Errln("UScript.getScriptExtensions(U+063F) is not {ARABIC}"); } if (UScript.GetScriptExtensions(0x0640, scripts) > -3 || scripts.Cardinality() < 3 || !scripts.Get(UScript.Arabic) || !scripts.Get(UScript.Syriac) || !scripts.Get(UScript.Mandaic) ) { Errln("UScript.getScriptExtensions(U+0640) failed"); } if (UScript.GetScriptExtensions(0xfdf2, scripts) != -2 || scripts.Cardinality() != 2 || !scripts.Get(UScript.Arabic) || !scripts.Get(UScript.Thaana)) { Errln("UScript.getScriptExtensions(U+FDF2) failed"); } if (UScript.GetScriptExtensions(0xff65, scripts) != -6 || scripts.Cardinality() != 6 || !scripts.Get(UScript.Bopomofo) || !scripts.Get(UScript.Yi)) { Errln("UScript.getScriptExtensions(U+FF65) failed"); } }