;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-UNICODE-TEST; Base: 10 -*-
;;; $Header: /usr/local/cvsrep/cl-unicode/test/simple,v 1.15 2012-05-04 21:17:48 edi Exp $

;;; some simple tests for CL-UNICODE - entered manually and to be read
;;; in the CL-UNICODE-TEST package; all forms are expected to return a
;;; true value on success when EVALuated

;; Ctrl-A
;; we test a lot of variations for this character while the tests
;; below are more brief
(string= (unicode1-name 1) "START OF HEADING")
(string= (unicode1-name (code-char 1)) "START OF HEADING")
(eql (unicode-name 1) nil)
(eql (unicode-name (code-char 1)) nil)
(= 1 (char-code (character-named "START OF HEADING")))
(= 1 (character-named "START OF HEADING" :want-code-point-p t))
(null (character-named "START OF HEADING" :try-unicode1-names-p nil :try-lisp-names-p nil))
(string= "Cc" (general-category 1))
(string= "Cc" (general-category (code-char 1)))
(has-property 1 "Cc")
(has-property 1 "Control")
(has-property 1 "control")
(has-property 1 "IsControl")
(has-property 1 "IsCc")
(has-property (code-char 1) "Cc")
(has-property (code-char 1) "Control")
(has-property (code-char 1) "control")
(has-property (code-char 1) "IsControl")
(has-property (code-char 1) "IsCc")
(has-property 1 "C")
(has-property 1 "Other")
(has-property 1 "other")
(has-property 1 "IsOther")
(has-property 1 "IsC")
(has-property (code-char 1) "C")
(has-property (code-char 1) "Other")
(has-property (code-char 1) "other")
(has-property (code-char 1) "IsOther")
(has-property (code-char 1) "IsC")
(string= "Common" (script 1))
(string= "Common" (script (code-char 1)))
(has-property 1 "Common")
(has-property 1 "common")
(has-property 1 "IsCommon")
(has-property 1 "Script:Common")
(has-property (code-char 1) "Common")
(has-property (code-char 1) "common")
(has-property (code-char 1) "IsCommon")
(has-property (code-char 1) "Script:Common")
(not (has-property 1 "Khmer"))
(not (has-property 1 "khmer"))
(not (has-property 1 "IsKhmer"))
(not (has-property 1 "Script:Khmer"))
(not (has-property (code-char 1) "Khmer"))
(not (has-property (code-char 1) "khmer"))
(not (has-property (code-char 1) "IsKhmer"))
(not (has-property (code-char 1) "Script:Khmer"))
(string= "Basic Latin" (code-block 1))
(string= "Basic Latin" (code-block (code-char 1)))
(has-property 1 "Basic Latin")
(has-property 1 "basic latin")
(has-property 1 "BasicLatin")
(has-property 1 "InBasicLatin")
(has-property 1 "Block:BasicLatin")
(has-property (code-char 1) "Basic Latin")
(has-property (code-char 1) "basic latin")
(has-property (code-char 1) "BasicLatin")
(has-property (code-char 1) "InBasicLatin")
(has-property (code-char 1) "Block:BasicLatin")
(not (has-property 1 "Arrows"))
(not (has-property 1 "InArrows"))
(not (has-property 1 "Block:Arrows"))
(not (has-property (code-char 1) "Arrows"))
(not (has-property (code-char 1) "InArrows"))
(not (has-property (code-char 1) "Block:Arrows"))
(equal '(1 1) (age 1))
(equal '(1 1) (age (code-char 1)))
(string= "BN" (bidi-class 1))
(string= "BN" (bidi-class (code-char 1)))
(has-property 1 "BidiClass:BN")
(has-property 1 "BN")
(has-property 1 "BidiClass:BoundaryNeutral")
(has-property 1 "BoundaryNeutral")
(has-property (code-char 1) "BidiClass:BN")
(has-property (code-char 1) "BN")
(has-property (code-char 1) "BidiClass:BoundaryNeutral")
(has-property (code-char 1) "BoundaryNeutral")
(null (numeric-type 1))
(null (numeric-type (code-char 1)))
(null (numeric-value 1))
(null (numeric-value (code-char 1)))
(char= (code-char 1) (lowercase-mapping 1))
(char= (code-char 1) (uppercase-mapping 1))
(char= (code-char 1) (titlecase-mapping 1))
(char= (code-char 1) (lowercase-mapping (code-char 1)))
(char= (code-char 1) (uppercase-mapping (code-char 1)))
(char= (code-char 1) (titlecase-mapping (code-char 1)))
(loop for property in (binary-properties)
      never (or (has-binary-property 1 property)
                (has-binary-property (code-char 1) property)))
(has-property 1 "Any")
(has-property 1 "any")
(has-property 1 "IsAny")
(has-property 1 "Assigned")
(has-property 1 "assigned")
(has-property 1 "IsAssigned")
(has-property 1 "ASCII")
(has-property 1 "IsASCII")
(not (has-property 1 "Cn"))
(not (has-property 1 "Unassigned"))
(not (has-property 1 "IsUnassigned"))
(not (has-property 1 "Z"))
(not (has-property 1 "Separator"))
(not (has-property 1 "IsSeparator"))
(not (has-property 1 "Zs"))
(not (has-property 1 "SpaceSeparator"))
(not (has-property 1 "IsSpaceSeparator"))
(not (has-property 1 "L"))
(not (has-property 1 "Letter"))
(not (has-property 1 "IsLetter"))
(not (has-property 1 "LC"))
(not (has-property 1 "CasedLetter"))
(not (has-property 1 "IsCasedLetter"))
(not (has-property 1 "S"))
(not (has-property 1 "Symbol"))
(not (has-property 1 "IsSymbol"))
(not (has-property 1 "Sm"))
(not (has-property 1 "MathSymbol"))
(not (has-property 1 "IsMathSymbol"))
(not (has-property 1 "P"))
(not (has-property 1 "Punctuation"))
(not (has-property 1 "IsPunctuation"))
(not (has-property 1 "Pd"))
(not (has-property 1 "DashPunctuation"))
(not (has-property 1 "IsDashPunctuation"))
(not (has-property 1 "BidiClass:AL"))
(not (has-property 1 "AL"))
(not (has-property 1 "BidiClass:RightToLeftArabic"))
(not (has-property 1 "RightToLeftArabic"))
(not (has-property 1 "IDStart"))
(not (has-property 1 "IsIDStart"))
(not (has-property 1 "XIDStart"))
(not (has-property 1 "IsXIDStart"))
(= 0 (combining-class 1))
(= 0 (combining-class (code-char 1)))

;; W
(string= (unicode-name 87) "LATIN CAPITAL LETTER W")
(eql (unicode1-name 87) nil)
(= 87 (char-code (character-named "LATIN CAPITAL LETTER W")))
(= 87 (char-code (character-named "LATIN CAPITAL LETTER W" :try-unicode1-names-p nil)))
(string= "Lu" (general-category 87))
(has-property 87 "Lu")
(has-property 87 "UppercaseLetter")
(has-property 87 "L")
(has-property 87 "Letter")
(has-property 87 "LC")
(has-property 87 "CasedLetter")
(string= "Latin" (script 87))
(has-property 87 "Latin")
(not (has-property 87 "Balinese"))
(string= "Basic Latin" (code-block 87))
(has-property 87 "Basic Latin")
(not (has-property 87 "Bengali"))
(equal '(1 1) (age 87))
(string= "L" (bidi-class 87))
(has-property 87 "BidiClass:L")
(has-property 87 "BidiClass:LeftToRight")
(has-property 87 "LeftToRight")
(null (numeric-type 87))
(null (numeric-value 87))
(char= #\w (lowercase-mapping #\W))
(char= #\W (uppercase-mapping #\W))
(char= #\W (titlecase-mapping #\W))
(loop for property in (binary-properties)
      never (or (has-binary-property 87 property)
                (has-binary-property (code-char 87) property)))
(has-property 87 "Any")
(has-property 87 "Assigned")
(has-property 87 "ASCII")
(not (has-property 87 "Cn"))
(not (has-property 87 "Z"))
(not (has-property 87 "Zl"))
(not (has-property 87 "C"))
(not (has-property 87 "S"))
(not (has-property 87 "Sk"))
(not (has-property 87 "P"))
(not (has-property 87 "Ps"))
(not (has-property 87 "BidiClass:NSM"))
(not (has-property 87 "BidiClass:NonSpacingMark"))
(has-property 87 "IDStart")
(has-property 87 "XIDStart")
(= 0 (combining-class 87))

;; Hebrew Aleph
(string= (unicode-name #x5d0) "HEBREW LETTER ALEF")
(eql (unicode1-name #x5d0) nil)
(= #x5d0 (char-code (character-named "HEBREW LETTER ALEF")))
(= #x5d0 (char-code (character-named "HEBREW LETTER ALEF" :try-unicode1-names-p nil)))
(string= "Lo" (general-category #x5d0))
(has-property #x5d0 "Lo")
(has-property #x5d0 "OtherLetter")
(has-property #x5d0 "L")
(has-property #x5d0 "Letter")
(not (has-property #x5d0 "LC"))
(not (has-property #x5d0 "CasedLetter"))
(string= "Hebrew" (script #x5d0))
(has-property #x5d0 "Hebrew")
(not (has-property #x5d0 "Latin"))
(string= "Hebrew" (code-block #x5d0))
(has-property #x5d0 "Hebrew")
(not (has-property #x5d0 "Mongolian"))
(equal '(1 1) (age #x5d0))
(string= "R" (bidi-class #x5d0))
(has-property #x5d0 "BidiClass:R")
(has-property #x5d0 "R")
(has-property #x5d0 "BidiClass:RightToLeft")
(has-property #x5d0 "RightToLeft")
(null (numeric-type #x5d0))
(null (numeric-value #x5d0))
(char= (code-char #x5d0) (lowercase-mapping #x5d0))
(char= (code-char #x5d0) (uppercase-mapping #x5d0))
(char= (code-char #x5d0) (titlecase-mapping #x5d0))
(loop for property in (binary-properties)
      never (or (has-binary-property #x5d0 property)
                (has-binary-property (code-char #x5d0) property)))
(has-property #x5d0 "Any")
(has-property #x5d0 "Assigned")
(not (has-property #x5d0 "ASCII"))
(not (has-property #x5d0 "Cn"))
(not (has-property #x5d0 "Z"))
(not (has-property #x5d0 "Zl"))
(not (has-property #x5d0 "C"))
(not (has-property #x5d0 "S"))
(not (has-property #x5d0 "Sk"))
(not (has-property #x5d0 "P"))
(not (has-property #x5d0 "Ps"))
(not (has-property #x5d0 "BidiClass:L"))
(has-property #x5d0 "IDStart")
(has-property #x5d0 "XIDStart")
(= 0 (combining-class #x5d0))

;; 7
(string= (unicode-name 55) "DIGIT SEVEN")
(eql (unicode1-name 55) nil)
(= 55 (char-code (character-named "DIGIT SEVEN")))
(= 55 (char-code (character-named "DIGIT SEVEN" :try-unicode1-names-p nil)))
(string= "Nd" (general-category 55))
(has-property 55 "Nd")
(has-property 55 "DecimalNumber")
(has-property 55 "N")
(has-property 55 "Number")
(string= "Common" (script 55))
(has-property 55 "Common")
(not (has-property 55 "Tibetan"))
(string= "Basic Latin" (code-block 55))
(has-property 55 "Basic Latin")
(not (has-property 55 "Tamil"))
(equal '(1 1) (age 55))
(string= "EN" (bidi-class 55))
(has-property 55 "BidiClass:EN")
(has-property 55 "EN")
(has-property 55 "BidiClass:EuropeanNumber")
(has-property 55 "EuropeanNumber")
(string= "Decimal" (numeric-type 55))
(= 7 (numeric-value 55))
(has-binary-property #\7 "ASCIIHexDigit")
(has-binary-property #\7 "HexDigit")
(has-property #\7 "ASCIIHexDigit")
(has-property #\7 "HexDigit")
(= 0 (combining-class #\7))

;; 3/4
(string= (unicode-name #xbe) "VULGAR FRACTION THREE QUARTERS")
(string= (unicode1-name #xbe) "FRACTION THREE QUARTERS")
(= #xbe (char-code (character-named "VULGAR FRACTION THREE QUARTERS")))
(= #xbe (char-code (character-named "FRACTION THREE QUARTERS")))
(string= "No" (general-category #xbe))
(has-property #xbe "No")
(has-property #xbe "OtherNumber")
(has-property #xbe "N")
(has-property #xbe "Number")
(string= "Common" (script #xbe))
(has-property #xbe "Common")
(not (has-property #xbe "Arabic"))
(string= "Latin-1 Supplement" (code-block #xbe))
(has-property #xbe "Latin-1 Supplement")
(not (has-property #xbe "Georgian"))
(equal '(1 1) (age #xbe))
(string= "ON" (bidi-class #xbe))
(has-property #xbe "BidiClass:ON")
(has-property #xbe "ON")
(has-property #xbe "BidiClass:OtherNeutral")
(has-property #xbe "OtherNeutral")
(string= "Numeric" (numeric-type #xbe))
(= 3/4 (numeric-value #xbe))

;; Ethiopic digit four
(string= "Digit" (numeric-type (character-named "ETHIOPIC DIGIT FOUR" :want-code-point-p t)))
(= 4 (numeric-value (character-named "ETHIOPIC DIGIT FOUR" :want-code-point-p t)))

;; Hangul syllable names
(string= (unicode-name #xd4db) "HANGUL SYLLABLE PWILH")
(= #xd4db (character-named "HANGUL SYLLABLE PWILH" :want-code-point-p t))
(= #xd4db (character-named "HANGUL syllable Pwilh" :want-code-point-p t))
(null (character-named "HANGUL SYLLABLE FOO"))

;; CJK ideograph names
(string-equal (unicode-name #x340f) "CJK UNIFIED IDEOGRAPH-340F")
(= #x340f (character-named "CJK UNIFIED IDEOGRAPH-340F" :want-code-point-p t))
(= #x340f (character-named "CJK unified ideograph 340F" :want-code-point-p t))
(null (character-named "CJK UNIFIED IDEOGRAPH-33fe"))

;; different ages
(equal '(2 0) (age (character-named "HANGUL SYLLABLE PWILH" :want-code-point-p t)))
(equal '(3 0) (age (character-named "GREEK SMALL LETTER STIGMA" :want-code-point-p t)))
(equal '(3 0) (age (character-named "CJK UNIFIED IDEOGRAPH-340F" :want-code-point-p t)))
(equal '(3 1) (age (character-named "MATHEMATICAL SCRIPT CAPITAL G" :want-code-point-p t)))
(equal '(5 1) (age (character-named "LYDIAN TRIANGULAR MARK" :want-code-point-p t)))

;; combining classes
(= 1 (combining-class (character-named "COMBINING TILDE OVERLAY" :want-code-point-p t)))
(= 1 (combining-class (character-named "NON-SPACING TILDE OVERLAY" :want-code-point-p t)))
(= 230 (combining-class (character-named "COMBINING DOUBLE OVERLINE" :want-code-point-p t)))
(= 230 (combining-class (character-named "NON-SPACING DOUBLE OVERSCORE" :want-code-point-p t)))

;; derived properties (see also the file "derived-properties") in this directory
(has-property (character-named "FUNCTION APPLICATION" :want-code-point-p t) "Math")
(has-property (character-named "FEMININE ORDINAL INDICATOR" :want-code-point-p t) "Alphabetic")
(has-property (character-named "CJK UNIFIED IDEOGRAPH-20000" :want-code-point-p t) "Alphabetic")
(has-property (character-named "HANGUL SYLLABLE GA" :want-code-point-p t) "Alphabetic")
(has-property (character-named "MODIFIER LETTER CYRILLIC EN" :want-code-point-p t) "Lowercase")
(has-property (character-named "MATHEMATICAL BOLD CAPITAL A" :want-code-point-p t) "Uppercase")
(has-property (character-named "MICRO SIGN" :want-code-point-p t) "ID_Start")
(has-property (character-named "LAO VOWEL SIGN AM" :want-code-point-p t) "ID_Start")
(has-property (character-named "MICRO SIGN" :want-code-point-p t) "XID_Start")
(not (has-property (character-named "LAO VOWEL SIGN AM" :want-code-point-p t) "XID_Start"))
(has-property (character-named "SYRIAC LETTER ALAPH" :want-code-point-p t) "ID_Continue")
(has-property (character-named "SYRIAC LETTER ALAPH" :want-code-point-p t) "XID_Continue")
(has-property (character-named "GREEK YPOGEGRAMMENI" :want-code-point-p t) "ID_Continue")
(not (has-property (character-named "GREEK YPOGEGRAMMENI" :want-code-point-p t) "XID_Continue"))
(has-property (character-named "KHMER SIGN NIKAHIT" :want-code-point-p t) "Grapheme_Extend")
(has-property (character-named "MACRON" :want-code-point-p t) "Grapheme_Base")
(has-property (character-named "REJANG VIRAMA" :want-code-point-p t) "Grapheme_Link")

;; binary properties
(has-binary-property (character-named "MEDIUM MATHEMATICAL SPACE" :want-code-point-p t) "White_Space")
(has-binary-property (character-named "LEFT-TO-RIGHT EMBEDDING" :want-code-point-p t) "Bidi_Control")
(has-binary-property (character-named "ZERO WIDTH NON-JOINER" :want-code-point-p t) "Join_Control")
(has-binary-property #\- "Dash")
(has-binary-property #\- "Hyphen")
(has-binary-property (character-named "KATAKANA-HIRAGANA DOUBLE HYPHEN" :want-code-point-p t) "Dash")
(not (has-binary-property (character-named "KATAKANA-HIRAGANA DOUBLE HYPHEN" :want-code-point-p t) "Hyphen"))
(has-binary-property (character-named "MONGOLIAN TODO SOFT HYPHEN" :want-code-point-p t) "Dash")
(has-binary-property (character-named "MONGOLIAN TODO SOFT HYPHEN" :want-code-point-p t) "Hyphen")
(has-binary-property #\' "Quotation_Mark")
(has-binary-property #\" "Quotation_Mark")
(has-binary-property (character-named "PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET" :want-code-point-p t) "Quotation_Mark")
(has-binary-property (character-named "CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER" :want-code-point-p t) "Terminal_Punctuation")
(has-binary-property (character-named "WHITE TRAPEZIUM" :want-code-point-p t) "Other_Math")
(has-binary-property #\0 "Hex_Digit")
(has-binary-property (character-named "FULLWIDTH DIGIT ZERO" :want-code-point-p t) "Hex_Digit")
(has-binary-property #\0 "ASCII_Hex_Digit")
(not (has-binary-property (character-named "FULLWIDTH DIGIT ZERO" :want-code-point-p t) "ASCII_Hex_Digit"))
(has-binary-property (character-named "SYLOTI NAGRI VOWEL SIGN OO" :want-code-point-p t) "Other_Alphabetic")
(has-binary-property (character-named "IDEOGRAPHIC CLOSING MARK" :want-code-point-p t) "Ideographic")
(has-binary-property (character-named "CJK UNIFIED IDEOGRAPH-2A6D6" :want-code-point-p t) "Ideographic")
(has-binary-property (character-named "NKO COMBINING SHORT HIGH TONE" :want-code-point-p t) "Diacritic")
(has-binary-property (character-named "LEPCHA SIGN RAN" :want-code-point-p t) "Extender")
(has-binary-property (character-named "LATIN SUBSCRIPT SMALL LETTER SCHWA" :want-code-point-p t) "Other_Lowercase")
(has-binary-property (character-named "ROMAN NUMERAL FIFTY" :want-code-point-p t) "Other_Uppercase")
;; note that this is not treated as a binary property in CL-UNICODE
(has-property #xdfffe "Noncharacter_Code_Point")
(has-binary-property (character-named "MUSICAL SYMBOL COMBINING STEM" :want-code-point-p t) "Other_Grapheme_Extend")
(has-binary-property (character-named "IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND" :want-code-point-p t) "IDS_Binary_Operator")
(has-binary-property (character-named "IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW" :want-code-point-p t) "IDS_Trinary_Operator")
(has-binary-property (character-named "CJK RADICAL C-SIMPLIFIED TURTLE" :want-code-point-p t) "Radical")
(has-binary-property (character-named "CJK COMPATIBILITY IDEOGRAPH-FA1F" :want-code-point-p t) "Unified_Ideograph")
(has-binary-property (character-named "CJK UNIFIED IDEOGRAPH-2A6C4" :want-code-point-p t) "Unified_Ideograph")
(has-binary-property (character-named "HALFWIDTH HANGUL FILLER" :want-code-point-p t) "Other_Default_Ignorable_Code_Point")
(has-binary-property (character-named "INHIBIT SYMMETRIC SWAPPING" :want-code-point-p t) "Deprecated")
(has-binary-property (character-named "MATHEMATICAL BOLD FRAKTUR SMALL I" :want-code-point-p t) "Soft_Dotted")
(has-binary-property (character-named "LAO VOWEL SIGN EI" :want-code-point-p t) "Logical_Order_Exception")
(has-binary-property (character-named "ESTIMATED SYMBOL" :want-code-point-p t) "Other_ID_Start")
(has-binary-property (character-named "ETHIOPIC DIGIT THREE" :want-code-point-p t) "Other_ID_Continue")
(has-binary-property (character-named "CHAM PUNCTUATION DOUBLE DANDA" :want-code-point-p t) "STerm")
(has-binary-property (character-named "MONGOLIAN FREE VARIATION SELECTOR TWO" :want-code-point-p t) "Variation_Selector")
(has-binary-property (character-named "LINE SEPARATOR" :want-code-point-p t) "Pattern_White_Space")
(has-binary-property (character-named "REVERSE SOLIDUS" :want-code-point-p t) "Pattern_Syntax")

;; ambiguous names (see NORMALIZE-NAME)
(= #xf68 (character-named "TIBETAN LETTER A" :want-code-point-p t))
(= #xf68 (character-named "Tibetan_Letter_A" :want-code-point-p t))
(= #xf68 (character-named "TIBETANLETTERA" :want-code-point-p t))
(= #xf60 (character-named "TIBETAN LETTER -A" :want-code-point-p t))
(= #xf60 (character-named "Tibetan_Letter_-A" :want-code-point-p t))
(= #xfb8 (character-named "TIBETAN SUBJOINED LETTER A" :want-code-point-p t))
(= #xfb8 (character-named "TIBETANSUBJOINEDLETTERA" :want-code-point-p t))
(= #xfb0 (character-named "TIBETAN SUBJOINED LETTER -A" :want-code-point-p t))
(= #x116c (character-named "HANGUL JUNGSEONG OE" :want-code-point-p t))
(= #x116c (character-named "HANGULJUNGSEONGOE" :want-code-point-p t))

;; mirroring
(char= #\[ (bidi-mirroring-glyph #\]))
(char= #\] (bidi-mirroring-glyph #\[))
(char= #\< (bidi-mirroring-glyph #\>))
(char= #\> (bidi-mirroring-glyph #\<))
(= (character-named "ELEMENT OF" :want-code-point-p t) (bidi-mirroring-glyph (character-named "CONTAINS AS MEMBER" :want-code-point-p t) :want-code-point-p t))

;; character names
(= #x10420 (character-named "Deseret:Zhee" :try-abbreviations-p t :want-code-point-p t))
(= #x10448 (character-named "Deseret:zhee" :try-abbreviations-p t :want-code-point-p t))
(= #x10420 (character-named "Zhee" :try-abbreviations-p t :scripts-to-try "Deseret" :want-code-point-p t))
(= #x10448 (character-named "zhee" :try-abbreviations-p t :scripts-to-try "Deseret" :want-code-point-p t))
(= #x10420 (character-named "Zhee" :try-abbreviations-p t :scripts-to-try '("Deseret") :want-code-point-p t))
(= #x10448 (character-named "zhee" :try-abbreviations-p t :scripts-to-try '("Deseret") :want-code-point-p t))
(= #x1031e (character-named "Old Italic:UU" :try-abbreviations-p t :want-code-point-p t))
(= #x1031e (character-named "UU" :try-abbreviations-p t :scripts-to-try "Old Italic" :want-code-point-p t))
(char= #\A (character-named "A" :try-lisp-names-p t))
(char= #\a (character-named "a" :try-lisp-names-p t))
(char= #\Newline (character-named "NEWLINE" :try-lisp-names-p t))
(= #x10 (character-named "U+0010" :try-hex-notation-p t :want-code-point-p t))
(null (character-named "U+10" :try-hex-notation-p t :try-lisp-names-p nil))
(= #xffef (character-named "U+ffef" :try-hex-notation-p t :want-code-point-p t))
(= #x10ffff (character-named "U+10ffff" :try-hex-notation-p t :want-code-point-p t))
(null (character-named "U+110000" :try-hex-notation-p t  :try-lisp-names-p nil :want-code-point-p t))

;; alternative character syntax - see the settings of the
;; corresponding special variables in CL-UNICODE-TEST::SIMPLE-TESTS
(char= #\A #\Latin_Capital_Letter_A)
(char/= #\A #\Latin_Small_Letter_A)
(char= #\A #\Latin:A)
(char= #\a #\Latin:a)
(char= #\A #\U+0041)
;; implementations with a very low CHAR-CODE-LIMIT will choke here,
;; but OTOH some Lisps (like ClozureCL) choke on expressions like
;; #+#.(cl:if (cl:<= cl:char-code-limit #x5d0) '(cl:or) '(cl:and))
(= #x5d0 (char-code #\Hebrew_Letter_Alef))
(= #x5d0 (char-code #\Hebrew-Letter-Alef))
(= #x5d0 (char-code #\HebrewLetterAlef))
(= #x5d0 (char-code #\Hebrew:Alef))
(= #x5d0 (char-code #\Alef))
