Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

1519 lines (1181 sloc) 75.724 kb
use v6;
use Test;
=begin pod
This file was originally derived from the perl5 CPAN module Perl6::Rules,
version 0.3 (12 Apr 2004), file t/properties_slow_to_compile.t.
XXX needs more clarification on the case of the rules,
ie letter vs. Letter vs isLetter
=end pod
plan 670;
# InAlphabeticPresentationForms
ok(!( "\x[531A]" ~~ m/^<:InAlphabeticPresentationForms>$/ ), q{Don't match unrelated <InAlphabeticPresentationForms>} );
#?pugs todo
ok("\x[531A]" ~~ m/^<:!InAlphabeticPresentationForms>$/, q{Match unrelated negated <InAlphabeticPresentationForms>} );
#?pugs todo
ok("\x[531A]" ~~ m/^<-:InAlphabeticPresentationForms>$/, q{Match unrelated inverted <InAlphabeticPresentationForms>} );
# InArabic
#?pugs todo
ok("\c[ARABIC NUMBER SIGN]" ~~ m/^<:InArabic>$/, q{Match <:InArabic>} );
ok(!( "\c[ARABIC NUMBER SIGN]" ~~ m/^<:!InArabic>$/ ), q{Don't match negated <InArabic>} );
ok(!( "\c[ARABIC NUMBER SIGN]" ~~ m/^<-:InArabic>$/ ), q{Don't match inverted <InArabic>} );
ok(!( "\x[7315]" ~~ m/^<:InArabic>$/ ), q{Don't match unrelated <InArabic>} );
#?pugs todo
ok("\x[7315]" ~~ m/^<:!InArabic>$/, q{Match unrelated negated <InArabic>} );
#?pugs todo
ok("\x[7315]" ~~ m/^<-:InArabic>$/, q{Match unrelated inverted <InArabic>} );
#?pugs todo
ok("\x[7315]\c[ARABIC NUMBER SIGN]" ~~ m/<:InArabic>/, q{Match unanchored <InArabic>} );
# InArabicPresentationFormsA
ok(!( "\x[8340]" ~~ m/^<:InArabicPresentationFormsA>$/ ), q{Don't match unrelated <InArabicPresentationFormsA>} );
#?pugs todo
ok("\x[8340]" ~~ m/^<:!InArabicPresentationFormsA>$/, q{Match unrelated negated <InArabicPresentationFormsA>} );
#?pugs todo
ok("\x[8340]" ~~ m/^<-:InArabicPresentationFormsA>$/, q{Match unrelated inverted <InArabicPresentationFormsA>} );
# InArabicPresentationFormsB
ok(!( "\x[BEEC]" ~~ m/^<:InArabicPresentationFormsB>$/ ), q{Don't match unrelated <InArabicPresentationFormsB>} );
#?pugs todo
ok("\x[BEEC]" ~~ m/^<:!InArabicPresentationFormsB>$/, q{Match unrelated negated <InArabicPresentationFormsB>} );
#?pugs todo
ok("\x[BEEC]" ~~ m/^<-:InArabicPresentationFormsB>$/, q{Match unrelated inverted <InArabicPresentationFormsB>} );
# InArmenian
#?pugs todo
ok("\x[0530]" ~~ m/^<:InArmenian>$/, q{Match <:InArmenian>} );
ok(!( "\x[0530]" ~~ m/^<:!InArmenian>$/ ), q{Don't match negated <InArmenian>} );
ok(!( "\x[0530]" ~~ m/^<-:InArmenian>$/ ), q{Don't match inverted <InArmenian>} );
ok(!( "\x[3B0D]" ~~ m/^<:InArmenian>$/ ), q{Don't match unrelated <InArmenian>} );
#?pugs todo
ok("\x[3B0D]" ~~ m/^<:!InArmenian>$/, q{Match unrelated negated <InArmenian>} );
#?pugs todo
ok("\x[3B0D]" ~~ m/^<-:InArmenian>$/, q{Match unrelated inverted <InArmenian>} );
#?pugs todo
ok("\x[3B0D]\x[0530]" ~~ m/<:InArmenian>/, q{Match unanchored <InArmenian>} );
# InArrows
#?pugs todo
ok("\c[LEFTWARDS ARROW]" ~~ m/^<:InArrows>$/, q{Match <:InArrows>} );
ok(!( "\c[LEFTWARDS ARROW]" ~~ m/^<:!InArrows>$/ ), q{Don't match negated <InArrows>} );
ok(!( "\c[LEFTWARDS ARROW]" ~~ m/^<-:InArrows>$/ ), q{Don't match inverted <InArrows>} );
ok(!( "\x[C401]" ~~ m/^<:InArrows>$/ ), q{Don't match unrelated <InArrows>} );
#?pugs todo
ok("\x[C401]" ~~ m/^<:!InArrows>$/, q{Match unrelated negated <InArrows>} );
#?pugs todo
ok("\x[C401]" ~~ m/^<-:InArrows>$/, q{Match unrelated inverted <InArrows>} );
#?pugs todo
ok("\x[C401]\c[LEFTWARDS ARROW]" ~~ m/<:InArrows>/, q{Match unanchored <InArrows>} );
# InBasicLatin
#?pugs todo
ok("\c[NULL]" ~~ m/^<:InBasicLatin>$/, q{Match <:InBasicLatin>} );
ok(!( "\c[NULL]" ~~ m/^<:!InBasicLatin>$/ ), q{Don't match negated <InBasicLatin>} );
ok(!( "\c[NULL]" ~~ m/^<-:InBasicLatin>$/ ), q{Don't match inverted <InBasicLatin>} );
ok(!( "\x[46EA]" ~~ m/^<:InBasicLatin>$/ ), q{Don't match unrelated <InBasicLatin>} );
#?pugs todo
ok("\x[46EA]" ~~ m/^<:!InBasicLatin>$/, q{Match unrelated negated <InBasicLatin>} );
#?pugs todo
ok("\x[46EA]" ~~ m/^<-:InBasicLatin>$/, q{Match unrelated inverted <InBasicLatin>} );
#?pugs todo
ok("\x[46EA]\c[NULL]" ~~ m/<:InBasicLatin>/, q{Match unanchored <InBasicLatin>} );
# InBengali
#?pugs todo
ok("\x[0980]" ~~ m/^<:InBengali>$/, q{Match <:InBengali>} );
ok(!( "\x[0980]" ~~ m/^<:!InBengali>$/ ), q{Don't match negated <InBengali>} );
ok(!( "\x[0980]" ~~ m/^<-:InBengali>$/ ), q{Don't match inverted <InBengali>} );
ok(!( "\c[YI SYLLABLE HMY]" ~~ m/^<:InBengali>$/ ), q{Don't match unrelated <InBengali>} );
#?pugs todo
ok("\c[YI SYLLABLE HMY]" ~~ m/^<:!InBengali>$/, q{Match unrelated negated <InBengali>} );
#?pugs todo
ok("\c[YI SYLLABLE HMY]" ~~ m/^<-:InBengali>$/, q{Match unrelated inverted <InBengali>} );
#?pugs todo
ok("\c[YI SYLLABLE HMY]\x[0980]" ~~ m/<:InBengali>/, q{Match unanchored <InBengali>} );
# InBlockElements
#?pugs todo
ok("\c[UPPER HALF BLOCK]" ~~ m/^<:InBlockElements>$/, q{Match <:InBlockElements>} );
ok(!( "\c[UPPER HALF BLOCK]" ~~ m/^<:!InBlockElements>$/ ), q{Don't match negated <InBlockElements>} );
ok(!( "\c[UPPER HALF BLOCK]" ~~ m/^<-:InBlockElements>$/ ), q{Don't match inverted <InBlockElements>} );
ok(!( "\x[5F41]" ~~ m/^<:InBlockElements>$/ ), q{Don't match unrelated <InBlockElements>} );
#?pugs todo
ok("\x[5F41]" ~~ m/^<:!InBlockElements>$/, q{Match unrelated negated <InBlockElements>} );
#?pugs todo
ok("\x[5F41]" ~~ m/^<-:InBlockElements>$/, q{Match unrelated inverted <InBlockElements>} );
#?pugs todo
ok("\x[5F41]\c[UPPER HALF BLOCK]" ~~ m/<:InBlockElements>/, q{Match unanchored <InBlockElements>} );
# InBopomofo
#?pugs todo
ok("\x[3100]" ~~ m/^<:InBopomofo>$/, q{Match <:InBopomofo>} );
ok(!( "\x[3100]" ~~ m/^<:!InBopomofo>$/ ), q{Don't match negated <InBopomofo>} );
ok(!( "\x[3100]" ~~ m/^<-:InBopomofo>$/ ), q{Don't match inverted <InBopomofo>} );
ok(!( "\x[9F8E]" ~~ m/^<:InBopomofo>$/ ), q{Don't match unrelated <InBopomofo>} );
#?pugs todo
ok("\x[9F8E]" ~~ m/^<:!InBopomofo>$/, q{Match unrelated negated <InBopomofo>} );
#?pugs todo
ok("\x[9F8E]" ~~ m/^<-:InBopomofo>$/, q{Match unrelated inverted <InBopomofo>} );
#?pugs todo
ok("\x[9F8E]\x[3100]" ~~ m/<:InBopomofo>/, q{Match unanchored <InBopomofo>} );
# InBopomofoExtended
#?pugs todo
ok("\c[BOPOMOFO LETTER BU]" ~~ m/^<:InBopomofoExtended>$/, q{Match <:InBopomofoExtended>} );
ok(!( "\c[BOPOMOFO LETTER BU]" ~~ m/^<:!InBopomofoExtended>$/ ), q{Don't match negated <InBopomofoExtended>} );
ok(!( "\c[BOPOMOFO LETTER BU]" ~~ m/^<-:InBopomofoExtended>$/ ), q{Don't match inverted <InBopomofoExtended>} );
ok(!( "\x[43A6]" ~~ m/^<:InBopomofoExtended>$/ ), q{Don't match unrelated <InBopomofoExtended>} );
#?pugs todo
ok("\x[43A6]" ~~ m/^<:!InBopomofoExtended>$/, q{Match unrelated negated <InBopomofoExtended>} );
#?pugs todo
ok("\x[43A6]" ~~ m/^<-:InBopomofoExtended>$/, q{Match unrelated inverted <InBopomofoExtended>} );
#?pugs todo
ok("\x[43A6]\c[BOPOMOFO LETTER BU]" ~~ m/<:InBopomofoExtended>/, q{Match unanchored <InBopomofoExtended>} );
# InBoxDrawing
#?pugs todo
ok("\c[BOX DRAWINGS LIGHT HORIZONTAL]" ~~ m/^<:InBoxDrawing>$/, q{Match <:InBoxDrawing>} );
ok(!( "\c[BOX DRAWINGS LIGHT HORIZONTAL]" ~~ m/^<:!InBoxDrawing>$/ ), q{Don't match negated <InBoxDrawing>} );
ok(!( "\c[BOX DRAWINGS LIGHT HORIZONTAL]" ~~ m/^<-:InBoxDrawing>$/ ), q{Don't match inverted <InBoxDrawing>} );
ok(!( "\x[7865]" ~~ m/^<:InBoxDrawing>$/ ), q{Don't match unrelated <InBoxDrawing>} );
#?pugs todo
ok("\x[7865]" ~~ m/^<:!InBoxDrawing>$/, q{Match unrelated negated <InBoxDrawing>} );
#?pugs todo
ok("\x[7865]" ~~ m/^<-:InBoxDrawing>$/, q{Match unrelated inverted <InBoxDrawing>} );
#?pugs todo
ok("\x[7865]\c[BOX DRAWINGS LIGHT HORIZONTAL]" ~~ m/<:InBoxDrawing>/, q{Match unanchored <InBoxDrawing>} );
# InBraillePatterns
#?pugs todo
ok("\c[BRAILLE PATTERN BLANK]" ~~ m/^<:InBraillePatterns>$/, q{Match <:InBraillePatterns>} );
ok(!( "\c[BRAILLE PATTERN BLANK]" ~~ m/^<:!InBraillePatterns>$/ ), q{Don't match negated <InBraillePatterns>} );
ok(!( "\c[BRAILLE PATTERN BLANK]" ~~ m/^<-:InBraillePatterns>$/ ), q{Don't match inverted <InBraillePatterns>} );
ok(!( "\c[THAI CHARACTER KHO KHAI]" ~~ m/^<:InBraillePatterns>$/ ), q{Don't match unrelated <InBraillePatterns>} );
#?pugs todo
ok("\c[THAI CHARACTER KHO KHAI]" ~~ m/^<:!InBraillePatterns>$/, q{Match unrelated negated <InBraillePatterns>} );
#?pugs todo
ok("\c[THAI CHARACTER KHO KHAI]" ~~ m/^<-:InBraillePatterns>$/, q{Match unrelated inverted <InBraillePatterns>} );
#?pugs todo
ok("\c[THAI CHARACTER KHO KHAI]\c[BRAILLE PATTERN BLANK]" ~~ m/<:InBraillePatterns>/, q{Match unanchored <InBraillePatterns>} );
# InBuhid
#?pugs todo
ok("\c[BUHID LETTER A]" ~~ m/^<:InBuhid>$/, q{Match <:InBuhid>} );
ok(!( "\c[BUHID LETTER A]" ~~ m/^<:!InBuhid>$/ ), q{Don't match negated <InBuhid>} );
ok(!( "\c[BUHID LETTER A]" ~~ m/^<-:InBuhid>$/ ), q{Don't match inverted <InBuhid>} );
ok(!( "\x[D208]" ~~ m/^<:InBuhid>$/ ), q{Don't match unrelated <InBuhid>} );
#?pugs todo
ok("\x[D208]" ~~ m/^<:!InBuhid>$/, q{Match unrelated negated <InBuhid>} );
#?pugs todo
ok("\x[D208]" ~~ m/^<-:InBuhid>$/, q{Match unrelated inverted <InBuhid>} );
#?pugs todo
ok("\x[D208]\c[BUHID LETTER A]" ~~ m/<:InBuhid>/, q{Match unanchored <InBuhid>} );
# InByzantineMusicalSymbols
ok(!( "\x[9B1D]" ~~ m/^<:InByzantineMusicalSymbols>$/ ), q{Don't match unrelated <InByzantineMusicalSymbols>} );
#?pugs todo
ok("\x[9B1D]" ~~ m/^<:!InByzantineMusicalSymbols>$/, q{Match unrelated negated <InByzantineMusicalSymbols>} );
#?pugs todo
ok("\x[9B1D]" ~~ m/^<-:InByzantineMusicalSymbols>$/, q{Match unrelated inverted <InByzantineMusicalSymbols>} );
# InCJKCompatibility
#?pugs todo
ok("\c[SQUARE APAATO]" ~~ m/^<:InCJKCompatibility>$/, q{Match <:InCJKCompatibility>} );
ok(!( "\c[SQUARE APAATO]" ~~ m/^<:!InCJKCompatibility>$/ ), q{Don't match negated <InCJKCompatibility>} );
ok(!( "\c[SQUARE APAATO]" ~~ m/^<-:InCJKCompatibility>$/ ), q{Don't match inverted <InCJKCompatibility>} );
ok(!( "\x[B8A5]" ~~ m/^<:InCJKCompatibility>$/ ), q{Don't match unrelated <InCJKCompatibility>} );
#?pugs todo
ok("\x[B8A5]" ~~ m/^<:!InCJKCompatibility>$/, q{Match unrelated negated <InCJKCompatibility>} );
#?pugs todo
ok("\x[B8A5]" ~~ m/^<-:InCJKCompatibility>$/, q{Match unrelated inverted <InCJKCompatibility>} );
#?pugs todo
ok("\x[B8A5]\c[SQUARE APAATO]" ~~ m/<:InCJKCompatibility>/, q{Match unanchored <InCJKCompatibility>} );
# InCJKCompatibilityForms
ok(!( "\x[3528]" ~~ m/^<:InCJKCompatibilityForms>$/ ), q{Don't match unrelated <InCJKCompatibilityForms>} );
#?pugs todo
ok("\x[3528]" ~~ m/^<:!InCJKCompatibilityForms>$/, q{Match unrelated negated <InCJKCompatibilityForms>} );
#?pugs todo
ok("\x[3528]" ~~ m/^<-:InCJKCompatibilityForms>$/, q{Match unrelated inverted <InCJKCompatibilityForms>} );
# InCJKCompatibilityIdeographs
ok(!( "\x[69F7]" ~~ m/^<:InCJKCompatibilityIdeographs>$/ ), q{Don't match unrelated <InCJKCompatibilityIdeographs>} );
#?pugs todo
ok("\x[69F7]" ~~ m/^<:!InCJKCompatibilityIdeographs>$/, q{Match unrelated negated <InCJKCompatibilityIdeographs>} );
#?pugs todo
ok("\x[69F7]" ~~ m/^<-:InCJKCompatibilityIdeographs>$/, q{Match unrelated inverted <InCJKCompatibilityIdeographs>} );
# InCJKCompatibilityIdeographsSupplement
ok(!( "\c[CANADIAN SYLLABICS NUNAVIK HO]" ~~ m/^<:InCJKCompatibilityIdeographsSupplement>$/ ), q{Don't match unrelated <InCJKCompatibilityIdeographsSupplement>} );
#?pugs todo
ok("\c[CANADIAN SYLLABICS NUNAVIK HO]" ~~ m/^<:!InCJKCompatibilityIdeographsSupplement>$/, q{Match unrelated negated <InCJKCompatibilityIdeographsSupplement>} );
#?pugs todo
ok("\c[CANADIAN SYLLABICS NUNAVIK HO]" ~~ m/^<-:InCJKCompatibilityIdeographsSupplement>$/, q{Match unrelated inverted <InCJKCompatibilityIdeographsSupplement>} );
# InCJKRadicalsSupplement
#?pugs todo
ok("\c[CJK RADICAL REPEAT]" ~~ m/^<:InCJKRadicalsSupplement>$/, q{Match <:InCJKRadicalsSupplement>} );
ok(!( "\c[CJK RADICAL REPEAT]" ~~ m/^<:!InCJKRadicalsSupplement>$/ ), q{Don't match negated <InCJKRadicalsSupplement>} );
ok(!( "\c[CJK RADICAL REPEAT]" ~~ m/^<-:InCJKRadicalsSupplement>$/ ), q{Don't match inverted <InCJKRadicalsSupplement>} );
ok(!( "\x[37B4]" ~~ m/^<:InCJKRadicalsSupplement>$/ ), q{Don't match unrelated <InCJKRadicalsSupplement>} );
#?pugs todo
ok("\x[37B4]" ~~ m/^<:!InCJKRadicalsSupplement>$/, q{Match unrelated negated <InCJKRadicalsSupplement>} );
#?pugs todo
ok("\x[37B4]" ~~ m/^<-:InCJKRadicalsSupplement>$/, q{Match unrelated inverted <InCJKRadicalsSupplement>} );
#?pugs todo
ok("\x[37B4]\c[CJK RADICAL REPEAT]" ~~ m/<:InCJKRadicalsSupplement>/, q{Match unanchored <InCJKRadicalsSupplement>} );
# InCJKSymbolsAndPunctuation
#?pugs todo
ok("\c[IDEOGRAPHIC SPACE]" ~~ m/^<:InCJKSymbolsAndPunctuation>$/, q{Match <:InCJKSymbolsAndPunctuation>} );
ok(!( "\c[IDEOGRAPHIC SPACE]" ~~ m/^<:!InCJKSymbolsAndPunctuation>$/ ), q{Don't match negated <InCJKSymbolsAndPunctuation>} );
ok(!( "\c[IDEOGRAPHIC SPACE]" ~~ m/^<-:InCJKSymbolsAndPunctuation>$/ ), q{Don't match inverted <InCJKSymbolsAndPunctuation>} );
ok(!( "\x[80AA]" ~~ m/^<:InCJKSymbolsAndPunctuation>$/ ), q{Don't match unrelated <InCJKSymbolsAndPunctuation>} );
#?pugs todo
ok("\x[80AA]" ~~ m/^<:!InCJKSymbolsAndPunctuation>$/, q{Match unrelated negated <InCJKSymbolsAndPunctuation>} );
#?pugs todo
ok("\x[80AA]" ~~ m/^<-:InCJKSymbolsAndPunctuation>$/, q{Match unrelated inverted <InCJKSymbolsAndPunctuation>} );
#?pugs todo
ok("\x[80AA]\c[IDEOGRAPHIC SPACE]" ~~ m/<:InCJKSymbolsAndPunctuation>/, q{Match unanchored <InCJKSymbolsAndPunctuation>} );
# InCJKUnifiedIdeographs
#?pugs todo
ok("\x[4E00]" ~~ m/^<:InCJKUnifiedIdeographs>$/, q{Match <:InCJKUnifiedIdeographs>} );
ok(!( "\x[4E00]" ~~ m/^<:!InCJKUnifiedIdeographs>$/ ), q{Don't match negated <InCJKUnifiedIdeographs>} );
ok(!( "\x[4E00]" ~~ m/^<-:InCJKUnifiedIdeographs>$/ ), q{Don't match inverted <InCJKUnifiedIdeographs>} );
ok(!( "\x[3613]" ~~ m/^<:InCJKUnifiedIdeographs>$/ ), q{Don't match unrelated <InCJKUnifiedIdeographs>} );
#?pugs todo
ok("\x[3613]" ~~ m/^<:!InCJKUnifiedIdeographs>$/, q{Match unrelated negated <InCJKUnifiedIdeographs>} );
#?pugs todo
ok("\x[3613]" ~~ m/^<-:InCJKUnifiedIdeographs>$/, q{Match unrelated inverted <InCJKUnifiedIdeographs>} );
#?pugs todo
ok("\x[3613]\x[4E00]" ~~ m/<:InCJKUnifiedIdeographs>/, q{Match unanchored <InCJKUnifiedIdeographs>} );
# InCJKUnifiedIdeographsExtensionA
#?pugs todo
ok("\x[3400]" ~~ m/^<:InCJKUnifiedIdeographsExtensionA>$/, q{Match <:InCJKUnifiedIdeographsExtensionA>} );
ok(!( "\x[3400]" ~~ m/^<:!InCJKUnifiedIdeographsExtensionA>$/ ), q{Don't match negated <InCJKUnifiedIdeographsExtensionA>} );
ok(!( "\x[3400]" ~~ m/^<-:InCJKUnifiedIdeographsExtensionA>$/ ), q{Don't match inverted <InCJKUnifiedIdeographsExtensionA>} );
ok(!( "\c[SQUARE HOORU]" ~~ m/^<:InCJKUnifiedIdeographsExtensionA>$/ ), q{Don't match unrelated <InCJKUnifiedIdeographsExtensionA>} );
#?pugs todo
ok("\c[SQUARE HOORU]" ~~ m/^<:!InCJKUnifiedIdeographsExtensionA>$/, q{Match unrelated negated <InCJKUnifiedIdeographsExtensionA>} );
#?pugs todo
ok("\c[SQUARE HOORU]" ~~ m/^<-:InCJKUnifiedIdeographsExtensionA>$/, q{Match unrelated inverted <InCJKUnifiedIdeographsExtensionA>} );
#?pugs todo
ok("\c[SQUARE HOORU]\x[3400]" ~~ m/<:InCJKUnifiedIdeographsExtensionA>/, q{Match unanchored <InCJKUnifiedIdeographsExtensionA>} );
# InCJKUnifiedIdeographsExtensionB
ok(!( "\x[AC3B]" ~~ m/^<:InCJKUnifiedIdeographsExtensionB>$/ ), q{Don't match unrelated <InCJKUnifiedIdeographsExtensionB>} );
#?pugs todo
ok("\x[AC3B]" ~~ m/^<:!InCJKUnifiedIdeographsExtensionB>$/, q{Match unrelated negated <InCJKUnifiedIdeographsExtensionB>} );
#?pugs todo
ok("\x[AC3B]" ~~ m/^<-:InCJKUnifiedIdeographsExtensionB>$/, q{Match unrelated inverted <InCJKUnifiedIdeographsExtensionB>} );
# InCherokee
#?pugs todo
ok("\c[CHEROKEE LETTER A]" ~~ m/^<:InCherokee>$/, q{Match <:InCherokee>} );
ok(!( "\c[CHEROKEE LETTER A]" ~~ m/^<:!InCherokee>$/ ), q{Don't match negated <InCherokee>} );
ok(!( "\c[CHEROKEE LETTER A]" ~~ m/^<-:InCherokee>$/ ), q{Don't match inverted <InCherokee>} );
ok(!( "\x[985F]" ~~ m/^<:InCherokee>$/ ), q{Don't match unrelated <InCherokee>} );
#?pugs todo
ok("\x[985F]" ~~ m/^<:!InCherokee>$/, q{Match unrelated negated <InCherokee>} );
#?pugs todo
ok("\x[985F]" ~~ m/^<-:InCherokee>$/, q{Match unrelated inverted <InCherokee>} );
#?pugs todo
ok("\x[985F]\c[CHEROKEE LETTER A]" ~~ m/<:InCherokee>/, q{Match unanchored <InCherokee>} );
# InCombiningDiacriticalMarks
#?pugs todo
ok("\c[COMBINING GRAVE ACCENT]" ~~ m/^<:InCombiningDiacriticalMarks>$/, q{Match <:InCombiningDiacriticalMarks>} );
ok(!( "\c[COMBINING GRAVE ACCENT]" ~~ m/^<:!InCombiningDiacriticalMarks>$/ ), q{Don't match negated <InCombiningDiacriticalMarks>} );
ok(!( "\c[COMBINING GRAVE ACCENT]" ~~ m/^<-:InCombiningDiacriticalMarks>$/ ), q{Don't match inverted <InCombiningDiacriticalMarks>} );
ok(!( "\x[76DA]" ~~ m/^<:InCombiningDiacriticalMarks>$/ ), q{Don't match unrelated <InCombiningDiacriticalMarks>} );
#?pugs todo
ok("\x[76DA]" ~~ m/^<:!InCombiningDiacriticalMarks>$/, q{Match unrelated negated <InCombiningDiacriticalMarks>} );
#?pugs todo
ok("\x[76DA]" ~~ m/^<-:InCombiningDiacriticalMarks>$/, q{Match unrelated inverted <InCombiningDiacriticalMarks>} );
#?pugs todo
ok("\x[76DA]\c[COMBINING GRAVE ACCENT]" ~~ m/<:InCombiningDiacriticalMarks>/, q{Match unanchored <InCombiningDiacriticalMarks>} );
# InCombiningDiacriticalMarksforSymbols
#?pugs todo
ok("\c[COMBINING LEFT HARPOON ABOVE]" ~~ m/^<:InCombiningDiacriticalMarksforSymbols>$/, q{Match <:InCombiningDiacriticalMarksforSymbols>} );
ok(!( "\c[COMBINING LEFT HARPOON ABOVE]" ~~ m/^<:!InCombiningDiacriticalMarksforSymbols>$/ ), q{Don't match negated <InCombiningDiacriticalMarksforSymbols>} );
ok(!( "\c[COMBINING LEFT HARPOON ABOVE]" ~~ m/^<-:InCombiningDiacriticalMarksforSymbols>$/ ), q{Don't match inverted <InCombiningDiacriticalMarksforSymbols>} );
ok(!( "\x[7345]" ~~ m/^<:InCombiningDiacriticalMarksforSymbols>$/ ), q{Don't match unrelated <InCombiningDiacriticalMarksforSymbols>} );
#?pugs todo
ok("\x[7345]" ~~ m/^<:!InCombiningDiacriticalMarksforSymbols>$/, q{Match unrelated negated <InCombiningDiacriticalMarksforSymbols>} );
#?pugs todo
ok("\x[7345]" ~~ m/^<-:InCombiningDiacriticalMarksforSymbols>$/, q{Match unrelated inverted <InCombiningDiacriticalMarksforSymbols>} );
#?pugs todo
ok("\x[7345]\c[COMBINING LEFT HARPOON ABOVE]" ~~ m/<:InCombiningDiacriticalMarksforSymbols>/, q{Match unanchored <InCombiningDiacriticalMarksforSymbols>} );
# InCombiningHalfMarks
ok(!( "\x[6C2E]" ~~ m/^<:InCombiningHalfMarks>$/ ), q{Don't match unrelated <InCombiningHalfMarks>} );
#?pugs todo
ok("\x[6C2E]" ~~ m/^<:!InCombiningHalfMarks>$/, q{Match unrelated negated <InCombiningHalfMarks>} );
#?pugs todo
ok("\x[6C2E]" ~~ m/^<-:InCombiningHalfMarks>$/, q{Match unrelated inverted <InCombiningHalfMarks>} );
# InControlPictures
#?pugs todo
ok("\c[SYMBOL FOR NULL]" ~~ m/^<:InControlPictures>$/, q{Match <:InControlPictures>} );
ok(!( "\c[SYMBOL FOR NULL]" ~~ m/^<:!InControlPictures>$/ ), q{Don't match negated <InControlPictures>} );
ok(!( "\c[SYMBOL FOR NULL]" ~~ m/^<-:InControlPictures>$/ ), q{Don't match inverted <InControlPictures>} );
ok(!( "\x[BCE2]" ~~ m/^<:InControlPictures>$/ ), q{Don't match unrelated <InControlPictures>} );
#?pugs todo
ok("\x[BCE2]" ~~ m/^<:!InControlPictures>$/, q{Match unrelated negated <InControlPictures>} );
#?pugs todo
ok("\x[BCE2]" ~~ m/^<-:InControlPictures>$/, q{Match unrelated inverted <InControlPictures>} );
#?pugs todo
ok("\x[BCE2]\c[SYMBOL FOR NULL]" ~~ m/<:InControlPictures>/, q{Match unanchored <InControlPictures>} );
# InCurrencySymbols
#?pugs todo
ok("\c[EURO-CURRENCY SIGN]" ~~ m/^<:InCurrencySymbols>$/, q{Match <:InCurrencySymbols>} );
ok(!( "\c[EURO-CURRENCY SIGN]" ~~ m/^<:!InCurrencySymbols>$/ ), q{Don't match negated <InCurrencySymbols>} );
ok(!( "\c[EURO-CURRENCY SIGN]" ~~ m/^<-:InCurrencySymbols>$/ ), q{Don't match inverted <InCurrencySymbols>} );
ok(!( "\x[8596]" ~~ m/^<:InCurrencySymbols>$/ ), q{Don't match unrelated <InCurrencySymbols>} );
#?pugs todo
ok("\x[8596]" ~~ m/^<:!InCurrencySymbols>$/, q{Match unrelated negated <InCurrencySymbols>} );
#?pugs todo
ok("\x[8596]" ~~ m/^<-:InCurrencySymbols>$/, q{Match unrelated inverted <InCurrencySymbols>} );
#?pugs todo
ok("\x[8596]\c[EURO-CURRENCY SIGN]" ~~ m/<:InCurrencySymbols>/, q{Match unanchored <InCurrencySymbols>} );
# InCyrillic
#?pugs todo
ok("\c[CYRILLIC CAPITAL LETTER IE WITH GRAVE]" ~~ m/^<:InCyrillic>$/, q{Match <:InCyrillic>} );
ok(!( "\c[CYRILLIC CAPITAL LETTER IE WITH GRAVE]" ~~ m/^<:!InCyrillic>$/ ), q{Don't match negated <InCyrillic>} );
ok(!( "\c[CYRILLIC CAPITAL LETTER IE WITH GRAVE]" ~~ m/^<-:InCyrillic>$/ ), q{Don't match inverted <InCyrillic>} );
ok(!( "\x[51B2]" ~~ m/^<:InCyrillic>$/ ), q{Don't match unrelated <InCyrillic>} );
#?pugs todo
ok("\x[51B2]" ~~ m/^<:!InCyrillic>$/, q{Match unrelated negated <InCyrillic>} );
#?pugs todo
ok("\x[51B2]" ~~ m/^<-:InCyrillic>$/, q{Match unrelated inverted <InCyrillic>} );
#?pugs todo
ok("\x[51B2]\c[CYRILLIC CAPITAL LETTER IE WITH GRAVE]" ~~ m/<:InCyrillic>/, q{Match unanchored <InCyrillic>} );
# InCyrillicSupplementary
#?pugs todo
ok("\c[CYRILLIC CAPITAL LETTER KOMI DE]" ~~ m/^<:InCyrillicSupplementary>$/, q{Match <:InCyrillicSupplementary>} );
ok(!( "\c[CYRILLIC CAPITAL LETTER KOMI DE]" ~~ m/^<:!InCyrillicSupplementary>$/ ), q{Don't match negated <InCyrillicSupplementary>} );
ok(!( "\c[CYRILLIC CAPITAL LETTER KOMI DE]" ~~ m/^<-:InCyrillicSupplementary>$/ ), q{Don't match inverted <InCyrillicSupplementary>} );
ok(!( "\x[7BD9]" ~~ m/^<:InCyrillicSupplementary>$/ ), q{Don't match unrelated <InCyrillicSupplementary>} );
#?pugs todo
ok("\x[7BD9]" ~~ m/^<:!InCyrillicSupplementary>$/, q{Match unrelated negated <InCyrillicSupplementary>} );
#?pugs todo
ok("\x[7BD9]" ~~ m/^<-:InCyrillicSupplementary>$/, q{Match unrelated inverted <InCyrillicSupplementary>} );
#?pugs todo
ok("\x[7BD9]\c[CYRILLIC CAPITAL LETTER KOMI DE]" ~~ m/<:InCyrillicSupplementary>/, q{Match unanchored <InCyrillicSupplementary>} );
# InDeseret
ok(!( "\c[TAMIL DIGIT FOUR]" ~~ m/^<:InDeseret>$/ ), q{Don't match unrelated <InDeseret>} );
#?pugs todo
ok("\c[TAMIL DIGIT FOUR]" ~~ m/^<:!InDeseret>$/, q{Match unrelated negated <InDeseret>} );
#?pugs todo
ok("\c[TAMIL DIGIT FOUR]" ~~ m/^<-:InDeseret>$/, q{Match unrelated inverted <InDeseret>} );
# InDevanagari
#?pugs todo
ok("\x[0900]" ~~ m/^<:InDevanagari>$/, q{Match <:InDevanagari>} );
ok(!( "\x[0900]" ~~ m/^<:!InDevanagari>$/ ), q{Don't match negated <InDevanagari>} );
ok(!( "\x[0900]" ~~ m/^<-:InDevanagari>$/ ), q{Don't match inverted <InDevanagari>} );
ok(!( "\x[BB12]" ~~ m/^<:InDevanagari>$/ ), q{Don't match unrelated <InDevanagari>} );
#?pugs todo
ok("\x[BB12]" ~~ m/^<:!InDevanagari>$/, q{Match unrelated negated <InDevanagari>} );
#?pugs todo
ok("\x[BB12]" ~~ m/^<-:InDevanagari>$/, q{Match unrelated inverted <InDevanagari>} );
#?pugs todo
ok("\x[BB12]\x[0900]" ~~ m/<:InDevanagari>/, q{Match unanchored <InDevanagari>} );
# InDingbats
#?pugs todo
ok("\x[2700]" ~~ m/^<:InDingbats>$/, q{Match <:InDingbats>} );
ok(!( "\x[2700]" ~~ m/^<:!InDingbats>$/ ), q{Don't match negated <InDingbats>} );
ok(!( "\x[2700]" ~~ m/^<-:InDingbats>$/ ), q{Don't match inverted <InDingbats>} );
ok(!( "\x[D7A8]" ~~ m/^<:InDingbats>$/ ), q{Don't match unrelated <InDingbats>} );
#?pugs todo
ok("\x[D7A8]" ~~ m/^<:!InDingbats>$/, q{Match unrelated negated <InDingbats>} );
#?pugs todo
ok("\x[D7A8]" ~~ m/^<-:InDingbats>$/, q{Match unrelated inverted <InDingbats>} );
#?pugs todo
ok("\x[D7A8]\x[2700]" ~~ m/<:InDingbats>/, q{Match unanchored <InDingbats>} );
# InEnclosedAlphanumerics
#?pugs todo
ok("\c[CIRCLED DIGIT ONE]" ~~ m/^<:InEnclosedAlphanumerics>$/, q{Match <:InEnclosedAlphanumerics>} );
ok(!( "\c[CIRCLED DIGIT ONE]" ~~ m/^<:!InEnclosedAlphanumerics>$/ ), q{Don't match negated <InEnclosedAlphanumerics>} );
ok(!( "\c[CIRCLED DIGIT ONE]" ~~ m/^<-:InEnclosedAlphanumerics>$/ ), q{Don't match inverted <InEnclosedAlphanumerics>} );
ok(!( "\x[C3A2]" ~~ m/^<:InEnclosedAlphanumerics>$/ ), q{Don't match unrelated <InEnclosedAlphanumerics>} );
#?pugs todo
ok("\x[C3A2]" ~~ m/^<:!InEnclosedAlphanumerics>$/, q{Match unrelated negated <InEnclosedAlphanumerics>} );
#?pugs todo
ok("\x[C3A2]" ~~ m/^<-:InEnclosedAlphanumerics>$/, q{Match unrelated inverted <InEnclosedAlphanumerics>} );
#?pugs todo
ok("\x[C3A2]\c[CIRCLED DIGIT ONE]" ~~ m/<:InEnclosedAlphanumerics>/, q{Match unanchored <InEnclosedAlphanumerics>} );
# InEnclosedCJKLettersAndMonths
#?pugs todo
ok("\c[PARENTHESIZED HANGUL KIYEOK]" ~~ m/^<:InEnclosedCJKLettersAndMonths>$/, q{Match <:InEnclosedCJKLettersAndMonths>} );
ok(!( "\c[PARENTHESIZED HANGUL KIYEOK]" ~~ m/^<:!InEnclosedCJKLettersAndMonths>$/ ), q{Don't match negated <InEnclosedCJKLettersAndMonths>} );
ok(!( "\c[PARENTHESIZED HANGUL KIYEOK]" ~~ m/^<-:InEnclosedCJKLettersAndMonths>$/ ), q{Don't match inverted <InEnclosedCJKLettersAndMonths>} );
ok(!( "\x[5B44]" ~~ m/^<:InEnclosedCJKLettersAndMonths>$/ ), q{Don't match unrelated <InEnclosedCJKLettersAndMonths>} );
#?pugs todo
ok("\x[5B44]" ~~ m/^<:!InEnclosedCJKLettersAndMonths>$/, q{Match unrelated negated <InEnclosedCJKLettersAndMonths>} );
#?pugs todo
ok("\x[5B44]" ~~ m/^<-:InEnclosedCJKLettersAndMonths>$/, q{Match unrelated inverted <InEnclosedCJKLettersAndMonths>} );
#?pugs todo
ok("\x[5B44]\c[PARENTHESIZED HANGUL KIYEOK]" ~~ m/<:InEnclosedCJKLettersAndMonths>/, q{Match unanchored <InEnclosedCJKLettersAndMonths>} );
# InEthiopic
#?pugs todo
ok("\c[ETHIOPIC SYLLABLE HA]" ~~ m/^<:InEthiopic>$/, q{Match <:InEthiopic>} );
ok(!( "\c[ETHIOPIC SYLLABLE HA]" ~~ m/^<:!InEthiopic>$/ ), q{Don't match negated <InEthiopic>} );
ok(!( "\c[ETHIOPIC SYLLABLE HA]" ~~ m/^<-:InEthiopic>$/ ), q{Don't match inverted <InEthiopic>} );
ok(!( "\x[BBAE]" ~~ m/^<:InEthiopic>$/ ), q{Don't match unrelated <InEthiopic>} );
#?pugs todo
ok("\x[BBAE]" ~~ m/^<:!InEthiopic>$/, q{Match unrelated negated <InEthiopic>} );
#?pugs todo
ok("\x[BBAE]" ~~ m/^<-:InEthiopic>$/, q{Match unrelated inverted <InEthiopic>} );
#?pugs todo
ok("\x[BBAE]\c[ETHIOPIC SYLLABLE HA]" ~~ m/<:InEthiopic>/, q{Match unanchored <InEthiopic>} );
# InGeneralPunctuation
#?pugs todo
ok("\c[EN QUAD]" ~~ m/^<:InGeneralPunctuation>$/, q{Match <:InGeneralPunctuation>} );
ok(!( "\c[EN QUAD]" ~~ m/^<:!InGeneralPunctuation>$/ ), q{Don't match negated <InGeneralPunctuation>} );
ok(!( "\c[EN QUAD]" ~~ m/^<-:InGeneralPunctuation>$/ ), q{Don't match inverted <InGeneralPunctuation>} );
ok(!( "\c[MEDIUM RIGHT PARENTHESIS ORNAMENT]" ~~ m/^<:InGeneralPunctuation>$/ ), q{Don't match unrelated <InGeneralPunctuation>} );
#?pugs todo
ok("\c[MEDIUM RIGHT PARENTHESIS ORNAMENT]" ~~ m/^<:!InGeneralPunctuation>$/, q{Match unrelated negated <InGeneralPunctuation>} );
#?pugs todo
ok("\c[MEDIUM RIGHT PARENTHESIS ORNAMENT]" ~~ m/^<-:InGeneralPunctuation>$/, q{Match unrelated inverted <InGeneralPunctuation>} );
#?pugs todo
ok("\c[MEDIUM RIGHT PARENTHESIS ORNAMENT]\c[EN QUAD]" ~~ m/<:InGeneralPunctuation>/, q{Match unanchored <InGeneralPunctuation>} );
# InGeometricShapes
#?pugs todo
ok("\c[BLACK SQUARE]" ~~ m/^<:InGeometricShapes>$/, q{Match <:InGeometricShapes>} );
ok(!( "\c[BLACK SQUARE]" ~~ m/^<:!InGeometricShapes>$/ ), q{Don't match negated <InGeometricShapes>} );
ok(!( "\c[BLACK SQUARE]" ~~ m/^<-:InGeometricShapes>$/ ), q{Don't match inverted <InGeometricShapes>} );
ok(!( "\x[B700]" ~~ m/^<:InGeometricShapes>$/ ), q{Don't match unrelated <InGeometricShapes>} );
#?pugs todo
ok("\x[B700]" ~~ m/^<:!InGeometricShapes>$/, q{Match unrelated negated <InGeometricShapes>} );
#?pugs todo
ok("\x[B700]" ~~ m/^<-:InGeometricShapes>$/, q{Match unrelated inverted <InGeometricShapes>} );
#?pugs todo
ok("\x[B700]\c[BLACK SQUARE]" ~~ m/<:InGeometricShapes>/, q{Match unanchored <InGeometricShapes>} );
# InGeorgian
#?pugs todo
ok("\c[GEORGIAN CAPITAL LETTER AN]" ~~ m/^<:InGeorgian>$/, q{Match <:InGeorgian>} );
ok(!( "\c[GEORGIAN CAPITAL LETTER AN]" ~~ m/^<:!InGeorgian>$/ ), q{Don't match negated <InGeorgian>} );
ok(!( "\c[GEORGIAN CAPITAL LETTER AN]" ~~ m/^<-:InGeorgian>$/ ), q{Don't match inverted <InGeorgian>} );
ok(!( "\c[IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE]" ~~ m/^<:InGeorgian>$/ ), q{Don't match unrelated <InGeorgian>} );
#?pugs todo
ok("\c[IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE]" ~~ m/^<:!InGeorgian>$/, q{Match unrelated negated <InGeorgian>} );
#?pugs todo
ok("\c[IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE]" ~~ m/^<-:InGeorgian>$/, q{Match unrelated inverted <InGeorgian>} );
#?pugs todo
ok("\c[IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE]\c[GEORGIAN CAPITAL LETTER AN]" ~~ m/<:InGeorgian>/, q{Match unanchored <InGeorgian>} );
# InGothic
ok(!( "\x[4825]" ~~ m/^<:InGothic>$/ ), q{Don't match unrelated <InGothic>} );
#?pugs todo
ok("\x[4825]" ~~ m/^<:!InGothic>$/, q{Match unrelated negated <InGothic>} );
#?pugs todo
ok("\x[4825]" ~~ m/^<-:InGothic>$/, q{Match unrelated inverted <InGothic>} );
# InGreekExtended
#?pugs todo
ok("\c[GREEK SMALL LETTER ALPHA WITH PSILI]" ~~ m/^<:InGreekExtended>$/, q{Match <:InGreekExtended>} );
ok(!( "\c[GREEK SMALL LETTER ALPHA WITH PSILI]" ~~ m/^<:!InGreekExtended>$/ ), q{Don't match negated <InGreekExtended>} );
ok(!( "\c[GREEK SMALL LETTER ALPHA WITH PSILI]" ~~ m/^<-:InGreekExtended>$/ ), q{Don't match inverted <InGreekExtended>} );
ok(!( "\x[B9B7]" ~~ m/^<:InGreekExtended>$/ ), q{Don't match unrelated <InGreekExtended>} );
#?pugs todo
ok("\x[B9B7]" ~~ m/^<:!InGreekExtended>$/, q{Match unrelated negated <InGreekExtended>} );
#?pugs todo
ok("\x[B9B7]" ~~ m/^<-:InGreekExtended>$/, q{Match unrelated inverted <InGreekExtended>} );
#?pugs todo
ok("\x[B9B7]\c[GREEK SMALL LETTER ALPHA WITH PSILI]" ~~ m/<:InGreekExtended>/, q{Match unanchored <InGreekExtended>} );
# InGreekAndCoptic
#?pugs todo
ok("\x[0370]" ~~ m/^<:InGreekAndCoptic>$/, q{Match <:InGreekAndCoptic>} );
ok(!( "\x[0370]" ~~ m/^<:!InGreekAndCoptic>$/ ), q{Don't match negated <InGreekAndCoptic>} );
ok(!( "\x[0370]" ~~ m/^<-:InGreekAndCoptic>$/ ), q{Don't match inverted <InGreekAndCoptic>} );
ok(!( "\x[7197]" ~~ m/^<:InGreekAndCoptic>$/ ), q{Don't match unrelated <InGreekAndCoptic>} );
#?pugs todo
ok("\x[7197]" ~~ m/^<:!InGreekAndCoptic>$/, q{Match unrelated negated <InGreekAndCoptic>} );
#?pugs todo
ok("\x[7197]" ~~ m/^<-:InGreekAndCoptic>$/, q{Match unrelated inverted <InGreekAndCoptic>} );
#?pugs todo
ok("\x[7197]\x[0370]" ~~ m/<:InGreekAndCoptic>/, q{Match unanchored <InGreekAndCoptic>} );
# InGujarati
#?pugs todo
ok("\x[0A80]" ~~ m/^<:InGujarati>$/, q{Match <:InGujarati>} );
ok(!( "\x[0A80]" ~~ m/^<:!InGujarati>$/ ), q{Don't match negated <InGujarati>} );
ok(!( "\x[0A80]" ~~ m/^<-:InGujarati>$/ ), q{Don't match inverted <InGujarati>} );
ok(!( "\x[3B63]" ~~ m/^<:InGujarati>$/ ), q{Don't match unrelated <InGujarati>} );
#?pugs todo
ok("\x[3B63]" ~~ m/^<:!InGujarati>$/, q{Match unrelated negated <InGujarati>} );
#?pugs todo
ok("\x[3B63]" ~~ m/^<-:InGujarati>$/, q{Match unrelated inverted <InGujarati>} );
#?pugs todo
ok("\x[3B63]\x[0A80]" ~~ m/<:InGujarati>/, q{Match unanchored <InGujarati>} );
# InGurmukhi
#?pugs todo
ok("\x[0A00]" ~~ m/^<:InGurmukhi>$/, q{Match <:InGurmukhi>} );
ok(!( "\x[0A00]" ~~ m/^<:!InGurmukhi>$/ ), q{Don't match negated <InGurmukhi>} );
ok(!( "\x[0A00]" ~~ m/^<-:InGurmukhi>$/ ), q{Don't match inverted <InGurmukhi>} );
ok(!( "\x[10C8]" ~~ m/^<:InGurmukhi>$/ ), q{Don't match unrelated <InGurmukhi>} );
#?pugs todo
ok("\x[10C8]" ~~ m/^<:!InGurmukhi>$/, q{Match unrelated negated <InGurmukhi>} );
#?pugs todo
ok("\x[10C8]" ~~ m/^<-:InGurmukhi>$/, q{Match unrelated inverted <InGurmukhi>} );
#?pugs todo
ok("\x[10C8]\x[0A00]" ~~ m/<:InGurmukhi>/, q{Match unanchored <InGurmukhi>} );
# InHalfwidthAndFullwidthForms
ok(!( "\x[CA55]" ~~ m/^<:InHalfwidthAndFullwidthForms>$/ ), q{Don't match unrelated <InHalfwidthAndFullwidthForms>} );
#?pugs todo
ok("\x[CA55]" ~~ m/^<:!InHalfwidthAndFullwidthForms>$/, q{Match unrelated negated <InHalfwidthAndFullwidthForms>} );
#?pugs todo
ok("\x[CA55]" ~~ m/^<-:InHalfwidthAndFullwidthForms>$/, q{Match unrelated inverted <InHalfwidthAndFullwidthForms>} );
# InHangulCompatibilityJamo
#?pugs todo
ok("\x[3130]" ~~ m/^<:InHangulCompatibilityJamo>$/, q{Match <:InHangulCompatibilityJamo>} );
ok(!( "\x[3130]" ~~ m/^<:!InHangulCompatibilityJamo>$/ ), q{Don't match negated <InHangulCompatibilityJamo>} );
ok(!( "\x[3130]" ~~ m/^<-:InHangulCompatibilityJamo>$/ ), q{Don't match inverted <InHangulCompatibilityJamo>} );
ok(!( "\c[MEASURED BY]" ~~ m/^<:InHangulCompatibilityJamo>$/ ), q{Don't match unrelated <InHangulCompatibilityJamo>} );
#?pugs todo
ok("\c[MEASURED BY]" ~~ m/^<:!InHangulCompatibilityJamo>$/, q{Match unrelated negated <InHangulCompatibilityJamo>} );
#?pugs todo
ok("\c[MEASURED BY]" ~~ m/^<-:InHangulCompatibilityJamo>$/, q{Match unrelated inverted <InHangulCompatibilityJamo>} );
#?pugs todo
ok("\c[MEASURED BY]\x[3130]" ~~ m/<:InHangulCompatibilityJamo>/, q{Match unanchored <InHangulCompatibilityJamo>} );
# InHangulJamo
#?pugs todo
ok("\c[HANGUL CHOSEONG KIYEOK]" ~~ m/^<:InHangulJamo>$/, q{Match <:InHangulJamo>} );
ok(!( "\c[HANGUL CHOSEONG KIYEOK]" ~~ m/^<:!InHangulJamo>$/ ), q{Don't match negated <InHangulJamo>} );
ok(!( "\c[HANGUL CHOSEONG KIYEOK]" ~~ m/^<-:InHangulJamo>$/ ), q{Don't match inverted <InHangulJamo>} );
ok(!( "\x[3B72]" ~~ m/^<:InHangulJamo>$/ ), q{Don't match unrelated <InHangulJamo>} );
#?pugs todo
ok("\x[3B72]" ~~ m/^<:!InHangulJamo>$/, q{Match unrelated negated <InHangulJamo>} );
#?pugs todo
ok("\x[3B72]" ~~ m/^<-:InHangulJamo>$/, q{Match unrelated inverted <InHangulJamo>} );
#?pugs todo
ok("\x[3B72]\c[HANGUL CHOSEONG KIYEOK]" ~~ m/<:InHangulJamo>/, q{Match unanchored <InHangulJamo>} );
# InHangulSyllables
#?pugs todo
ok("\x[CD95]" ~~ m/^<:InHangulSyllables>$/, q{Match <:InHangulSyllables>} );
ok(!( "\x[CD95]" ~~ m/^<:!InHangulSyllables>$/ ), q{Don't match negated <InHangulSyllables>} );
ok(!( "\x[CD95]" ~~ m/^<-:InHangulSyllables>$/ ), q{Don't match inverted <InHangulSyllables>} );
ok(!( "\x[D7B0]" ~~ m/^<:InHangulSyllables>$/ ), q{Don't match unrelated <InHangulSyllables>} );
#?pugs todo
ok("\x[D7B0]" ~~ m/^<:!InHangulSyllables>$/, q{Match unrelated negated <InHangulSyllables>} );
#?pugs todo
ok("\x[D7B0]" ~~ m/^<-:InHangulSyllables>$/, q{Match unrelated inverted <InHangulSyllables>} );
#?pugs todo
ok("\x[D7B0]\x[CD95]" ~~ m/<:InHangulSyllables>/, q{Match unanchored <InHangulSyllables>} );
# InHanunoo
#?pugs todo
ok("\c[HANUNOO LETTER A]" ~~ m/^<:InHanunoo>$/, q{Match <:InHanunoo>} );
ok(!( "\c[HANUNOO LETTER A]" ~~ m/^<:!InHanunoo>$/ ), q{Don't match negated <InHanunoo>} );
ok(!( "\c[HANUNOO LETTER A]" ~~ m/^<-:InHanunoo>$/ ), q{Don't match inverted <InHanunoo>} );
ok(!( "\x[6F4F]" ~~ m/^<:InHanunoo>$/ ), q{Don't match unrelated <InHanunoo>} );
#?pugs todo
ok("\x[6F4F]" ~~ m/^<:!InHanunoo>$/, q{Match unrelated negated <InHanunoo>} );
#?pugs todo
ok("\x[6F4F]" ~~ m/^<-:InHanunoo>$/, q{Match unrelated inverted <InHanunoo>} );
#?pugs todo
ok("\x[6F4F]\c[HANUNOO LETTER A]" ~~ m/<:InHanunoo>/, q{Match unanchored <InHanunoo>} );
# InHebrew
#?pugs todo
ok("\x[0590]" ~~ m/^<:InHebrew>$/, q{Match <:InHebrew>} );
ok(!( "\x[0590]" ~~ m/^<:!InHebrew>$/ ), q{Don't match negated <InHebrew>} );
ok(!( "\x[0590]" ~~ m/^<-:InHebrew>$/ ), q{Don't match inverted <InHebrew>} );
ok(!( "\x[0777]" ~~ m/^<:InHebrew>$/ ), q{Don't match unrelated <InHebrew>} );
#?pugs todo
ok("\x[0777]" ~~ m/^<:!InHebrew>$/, q{Match unrelated negated <InHebrew>} );
#?pugs todo
ok("\x[0777]" ~~ m/^<-:InHebrew>$/, q{Match unrelated inverted <InHebrew>} );
#?pugs todo
ok("\x[0777]\x[0590]" ~~ m/<:InHebrew>/, q{Match unanchored <InHebrew>} );
# InHighPrivateUseSurrogates
ok(!( "\x[D04F]" ~~ m/^<:InHighPrivateUseSurrogates>$/ ), q{Don't match unrelated <InHighPrivateUseSurrogates>} );
#?pugs todo
ok("\x[D04F]" ~~ m/^<:!InHighPrivateUseSurrogates>$/, q{Match unrelated negated <InHighPrivateUseSurrogates>} );
#?pugs todo
ok("\x[D04F]" ~~ m/^<-:InHighPrivateUseSurrogates>$/, q{Match unrelated inverted <InHighPrivateUseSurrogates>} );
# InHighSurrogates
ok(!( "\x[D085]" ~~ m/^<:InHighSurrogates>$/ ), q{Don't match unrelated <InHighSurrogates>} );
#?pugs todo
ok("\x[D085]" ~~ m/^<:!InHighSurrogates>$/, q{Match unrelated negated <InHighSurrogates>} );
#?pugs todo
ok("\x[D085]" ~~ m/^<-:InHighSurrogates>$/, q{Match unrelated inverted <InHighSurrogates>} );
# InHiragana
#?pugs todo
ok("\x[3040]" ~~ m/^<:InHiragana>$/, q{Match <:InHiragana>} );
ok(!( "\x[3040]" ~~ m/^<:!InHiragana>$/ ), q{Don't match negated <InHiragana>} );
ok(!( "\x[3040]" ~~ m/^<-:InHiragana>$/ ), q{Don't match inverted <InHiragana>} );
ok(!( "\x[AC7C]" ~~ m/^<:InHiragana>$/ ), q{Don't match unrelated <InHiragana>} );
#?pugs todo
ok("\x[AC7C]" ~~ m/^<:!InHiragana>$/, q{Match unrelated negated <InHiragana>} );
#?pugs todo
ok("\x[AC7C]" ~~ m/^<-:InHiragana>$/, q{Match unrelated inverted <InHiragana>} );
#?pugs todo
ok("\x[AC7C]\x[3040]" ~~ m/<:InHiragana>/, q{Match unanchored <InHiragana>} );
# InIPAExtensions
#?pugs todo
ok("\c[LATIN SMALL LETTER TURNED A]" ~~ m/^<:InIPAExtensions>$/, q{Match <:InIPAExtensions>} );
ok(!( "\c[LATIN SMALL LETTER TURNED A]" ~~ m/^<:!InIPAExtensions>$/ ), q{Don't match negated <InIPAExtensions>} );
ok(!( "\c[LATIN SMALL LETTER TURNED A]" ~~ m/^<-:InIPAExtensions>$/ ), q{Don't match inverted <InIPAExtensions>} );
ok(!( "\c[HANGUL LETTER SSANGIEUNG]" ~~ m/^<:InIPAExtensions>$/ ), q{Don't match unrelated <InIPAExtensions>} );
#?pugs todo
ok("\c[HANGUL LETTER SSANGIEUNG]" ~~ m/^<:!InIPAExtensions>$/, q{Match unrelated negated <InIPAExtensions>} );
#?pugs todo
ok("\c[HANGUL LETTER SSANGIEUNG]" ~~ m/^<-:InIPAExtensions>$/, q{Match unrelated inverted <InIPAExtensions>} );
#?pugs todo
ok("\c[HANGUL LETTER SSANGIEUNG]\c[LATIN SMALL LETTER TURNED A]" ~~ m/<:InIPAExtensions>/, q{Match unanchored <InIPAExtensions>} );
# InIdeographicDescriptionCharacters
#?pugs todo
ok("\c[IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT]" ~~ m/^<:InIdeographicDescriptionCharacters>$/, q{Match <:InIdeographicDescriptionCharacters>} );
ok(!( "\c[IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT]" ~~ m/^<:!InIdeographicDescriptionCharacters>$/ ), q{Don't match negated <InIdeographicDescriptionCharacters>} );
ok(!( "\c[IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT]" ~~ m/^<-:InIdeographicDescriptionCharacters>$/ ), q{Don't match inverted <InIdeographicDescriptionCharacters>} );
ok(!( "\x[9160]" ~~ m/^<:InIdeographicDescriptionCharacters>$/ ), q{Don't match unrelated <InIdeographicDescriptionCharacters>} );
#?pugs todo
ok("\x[9160]" ~~ m/^<:!InIdeographicDescriptionCharacters>$/, q{Match unrelated negated <InIdeographicDescriptionCharacters>} );
#?pugs todo
ok("\x[9160]" ~~ m/^<-:InIdeographicDescriptionCharacters>$/, q{Match unrelated inverted <InIdeographicDescriptionCharacters>} );
#?pugs todo
ok("\x[9160]\c[IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT]" ~~ m/<:InIdeographicDescriptionCharacters>/, q{Match unanchored <InIdeographicDescriptionCharacters>} );
# InKanbun
#?pugs todo
ok("\c[IDEOGRAPHIC ANNOTATION LINKING MARK]" ~~ m/^<:InKanbun>$/, q{Match <:InKanbun>} );
ok(!( "\c[IDEOGRAPHIC ANNOTATION LINKING MARK]" ~~ m/^<:!InKanbun>$/ ), q{Don't match negated <InKanbun>} );
ok(!( "\c[IDEOGRAPHIC ANNOTATION LINKING MARK]" ~~ m/^<-:InKanbun>$/ ), q{Don't match inverted <InKanbun>} );
ok(!( "\x[A80C]" ~~ m/^<:InKanbun>$/ ), q{Don't match unrelated <InKanbun>} );
#?pugs todo
ok("\x[A80C]" ~~ m/^<:!InKanbun>$/, q{Match unrelated negated <InKanbun>} );
#?pugs todo
ok("\x[A80C]" ~~ m/^<-:InKanbun>$/, q{Match unrelated inverted <InKanbun>} );
#?pugs todo
ok("\x[A80C]\c[IDEOGRAPHIC ANNOTATION LINKING MARK]" ~~ m/<:InKanbun>/, q{Match unanchored <InKanbun>} );
# InKangxiRadicals
#?pugs todo
ok("\c[KANGXI RADICAL ONE]" ~~ m/^<:InKangxiRadicals>$/, q{Match <:InKangxiRadicals>} );
ok(!( "\c[KANGXI RADICAL ONE]" ~~ m/^<:!InKangxiRadicals>$/ ), q{Don't match negated <InKangxiRadicals>} );
ok(!( "\c[KANGXI RADICAL ONE]" ~~ m/^<-:InKangxiRadicals>$/ ), q{Don't match inverted <InKangxiRadicals>} );
ok(!( "\x[891A]" ~~ m/^<:InKangxiRadicals>$/ ), q{Don't match unrelated <InKangxiRadicals>} );
#?pugs todo
ok("\x[891A]" ~~ m/^<:!InKangxiRadicals>$/, q{Match unrelated negated <InKangxiRadicals>} );
#?pugs todo
ok("\x[891A]" ~~ m/^<-:InKangxiRadicals>$/, q{Match unrelated inverted <InKangxiRadicals>} );
#?pugs todo
ok("\x[891A]\c[KANGXI RADICAL ONE]" ~~ m/<:InKangxiRadicals>/, q{Match unanchored <InKangxiRadicals>} );
# InKannada
#?pugs todo
ok("\x[0C80]" ~~ m/^<:InKannada>$/, q{Match <:InKannada>} );
ok(!( "\x[0C80]" ~~ m/^<:!InKannada>$/ ), q{Don't match negated <InKannada>} );
ok(!( "\x[0C80]" ~~ m/^<-:InKannada>$/ ), q{Don't match inverted <InKannada>} );
ok(!( "\x[B614]" ~~ m/^<:InKannada>$/ ), q{Don't match unrelated <InKannada>} );
#?pugs todo
ok("\x[B614]" ~~ m/^<:!InKannada>$/, q{Match unrelated negated <InKannada>} );
#?pugs todo
ok("\x[B614]" ~~ m/^<-:InKannada>$/, q{Match unrelated inverted <InKannada>} );
#?pugs todo
ok("\x[B614]\x[0C80]" ~~ m/<:InKannada>/, q{Match unanchored <InKannada>} );
# InKatakana
#?pugs todo
ok("\c[KATAKANA-HIRAGANA DOUBLE HYPHEN]" ~~ m/^<:InKatakana>$/, q{Match <:InKatakana>} );
ok(!( "\c[KATAKANA-HIRAGANA DOUBLE HYPHEN]" ~~ m/^<:!InKatakana>$/ ), q{Don't match negated <InKatakana>} );
ok(!( "\c[KATAKANA-HIRAGANA DOUBLE HYPHEN]" ~~ m/^<-:InKatakana>$/ ), q{Don't match inverted <InKatakana>} );
ok(!( "\x[7EB8]" ~~ m/^<:InKatakana>$/ ), q{Don't match unrelated <InKatakana>} );
#?pugs todo
ok("\x[7EB8]" ~~ m/^<:!InKatakana>$/, q{Match unrelated negated <InKatakana>} );
#?pugs todo
ok("\x[7EB8]" ~~ m/^<-:InKatakana>$/, q{Match unrelated inverted <InKatakana>} );
#?pugs todo
ok("\x[7EB8]\c[KATAKANA-HIRAGANA DOUBLE HYPHEN]" ~~ m/<:InKatakana>/, q{Match unanchored <InKatakana>} );
# InKatakanaPhoneticExtensions
#?pugs todo
ok("\c[KATAKANA LETTER SMALL KU]" ~~ m/^<:InKatakanaPhoneticExtensions>$/, q{Match <:InKatakanaPhoneticExtensions>} );
ok(!( "\c[KATAKANA LETTER SMALL KU]" ~~ m/^<:!InKatakanaPhoneticExtensions>$/ ), q{Don't match negated <InKatakanaPhoneticExtensions>} );
ok(!( "\c[KATAKANA LETTER SMALL KU]" ~~ m/^<-:InKatakanaPhoneticExtensions>$/ ), q{Don't match inverted <InKatakanaPhoneticExtensions>} );
ok(!( "\x[97C2]" ~~ m/^<:InKatakanaPhoneticExtensions>$/ ), q{Don't match unrelated <InKatakanaPhoneticExtensions>} );
#?pugs todo
ok("\x[97C2]" ~~ m/^<:!InKatakanaPhoneticExtensions>$/, q{Match unrelated negated <InKatakanaPhoneticExtensions>} );
#?pugs todo
ok("\x[97C2]" ~~ m/^<-:InKatakanaPhoneticExtensions>$/, q{Match unrelated inverted <InKatakanaPhoneticExtensions>} );
#?pugs todo
ok("\x[97C2]\c[KATAKANA LETTER SMALL KU]" ~~ m/<:InKatakanaPhoneticExtensions>/, q{Match unanchored <InKatakanaPhoneticExtensions>} );
# InKhmer
#?pugs todo
ok("\c[KHMER LETTER KA]" ~~ m/^<:InKhmer>$/, q{Match <:InKhmer>} );
ok(!( "\c[KHMER LETTER KA]" ~~ m/^<:!InKhmer>$/ ), q{Don't match negated <InKhmer>} );
ok(!( "\c[KHMER LETTER KA]" ~~ m/^<-:InKhmer>$/ ), q{Don't match inverted <InKhmer>} );
ok(!( "\x[CAFA]" ~~ m/^<:InKhmer>$/ ), q{Don't match unrelated <InKhmer>} );
#?pugs todo
ok("\x[CAFA]" ~~ m/^<:!InKhmer>$/, q{Match unrelated negated <InKhmer>} );
#?pugs todo
ok("\x[CAFA]" ~~ m/^<-:InKhmer>$/, q{Match unrelated inverted <InKhmer>} );
#?pugs todo
ok("\x[CAFA]\c[KHMER LETTER KA]" ~~ m/<:InKhmer>/, q{Match unanchored <InKhmer>} );
# InLao
#?pugs todo
ok("\x[0E80]" ~~ m/^<:InLao>$/, q{Match <:InLao>} );
ok(!( "\x[0E80]" ~~ m/^<:!InLao>$/ ), q{Don't match negated <InLao>} );
ok(!( "\x[0E80]" ~~ m/^<-:InLao>$/ ), q{Don't match inverted <InLao>} );
ok(!( "\x[07BF]" ~~ m/^<:InLao>$/ ), q{Don't match unrelated <InLao>} );
#?pugs todo
ok("\x[07BF]" ~~ m/^<:!InLao>$/, q{Match unrelated negated <InLao>} );
#?pugs todo
ok("\x[07BF]" ~~ m/^<-:InLao>$/, q{Match unrelated inverted <InLao>} );
#?pugs todo
ok("\x[07BF]\x[0E80]" ~~ m/<:InLao>/, q{Match unanchored <InLao>} );
# InLatin1Supplement
#?pugs todo
ok("\x[0080]" ~~ m/^<:InLatin1Supplement>$/, q{Match <:InLatin1Supplement>} );
ok(!( "\x[0080]" ~~ m/^<:!InLatin1Supplement>$/ ), q{Don't match negated <InLatin1Supplement>} );
ok(!( "\x[0080]" ~~ m/^<-:InLatin1Supplement>$/ ), q{Don't match inverted <InLatin1Supplement>} );
ok(!( "\x[D062]" ~~ m/^<:InLatin1Supplement>$/ ), q{Don't match unrelated <InLatin1Supplement>} );
#?pugs todo
ok("\x[D062]" ~~ m/^<:!InLatin1Supplement>$/, q{Match unrelated negated <InLatin1Supplement>} );
#?pugs todo
ok("\x[D062]" ~~ m/^<-:InLatin1Supplement>$/, q{Match unrelated inverted <InLatin1Supplement>} );
#?rakudo skip "Malformed UTF-8 string"
#?pugs todo
ok("\x[D062]\x[0080]" ~~ m/<:InLatin1Supplement>/, q{Match unanchored <InLatin1Supplement>} );
# InLatinExtendedA
#?pugs todo
ok("\c[LATIN CAPITAL LETTER A WITH MACRON]" ~~ m/^<:InLatinExtendedA>$/, q{Match <:InLatinExtendedA>} );
ok(!( "\c[LATIN CAPITAL LETTER A WITH MACRON]" ~~ m/^<:!InLatinExtendedA>$/ ), q{Don't match negated <InLatinExtendedA>} );
ok(!( "\c[LATIN CAPITAL LETTER A WITH MACRON]" ~~ m/^<-:InLatinExtendedA>$/ ), q{Don't match inverted <InLatinExtendedA>} );
ok(!( "\c[IDEOGRAPHIC ANNOTATION EARTH MARK]" ~~ m/^<:InLatinExtendedA>$/ ), q{Don't match unrelated <InLatinExtendedA>} );
#?pugs todo
ok("\c[IDEOGRAPHIC ANNOTATION EARTH MARK]" ~~ m/^<:!InLatinExtendedA>$/, q{Match unrelated negated <InLatinExtendedA>} );
#?pugs todo
ok("\c[IDEOGRAPHIC ANNOTATION EARTH MARK]" ~~ m/^<-:InLatinExtendedA>$/, q{Match unrelated inverted <InLatinExtendedA>} );
#?pugs todo
ok("\c[IDEOGRAPHIC ANNOTATION EARTH MARK]\c[LATIN CAPITAL LETTER A WITH MACRON]" ~~ m/<:InLatinExtendedA>/, q{Match unanchored <InLatinExtendedA>} );
# InLatinExtendedAdditional
#?pugs todo
ok("\c[LATIN CAPITAL LETTER A WITH RING BELOW]" ~~ m/^<:InLatinExtendedAdditional>$/, q{Match <:InLatinExtendedAdditional>} );
ok(!( "\c[LATIN CAPITAL LETTER A WITH RING BELOW]" ~~ m/^<:!InLatinExtendedAdditional>$/ ), q{Don't match negated <InLatinExtendedAdditional>} );
ok(!( "\c[LATIN CAPITAL LETTER A WITH RING BELOW]" ~~ m/^<-:InLatinExtendedAdditional>$/ ), q{Don't match inverted <InLatinExtendedAdditional>} );
ok(!( "\x[9A44]" ~~ m/^<:InLatinExtendedAdditional>$/ ), q{Don't match unrelated <InLatinExtendedAdditional>} );
#?pugs todo
ok("\x[9A44]" ~~ m/^<:!InLatinExtendedAdditional>$/, q{Match unrelated negated <InLatinExtendedAdditional>} );
#?pugs todo
ok("\x[9A44]" ~~ m/^<-:InLatinExtendedAdditional>$/, q{Match unrelated inverted <InLatinExtendedAdditional>} );
#?pugs todo
ok("\x[9A44]\c[LATIN CAPITAL LETTER A WITH RING BELOW]" ~~ m/<:InLatinExtendedAdditional>/, q{Match unanchored <InLatinExtendedAdditional>} );
# InLatinExtendedB
#?pugs todo
ok("\c[LATIN SMALL LETTER B WITH STROKE]" ~~ m/^<:InLatinExtendedB>$/, q{Match <:InLatinExtendedB>} );
ok(!( "\c[LATIN SMALL LETTER B WITH STROKE]" ~~ m/^<:!InLatinExtendedB>$/ ), q{Don't match negated <InLatinExtendedB>} );
ok(!( "\c[LATIN SMALL LETTER B WITH STROKE]" ~~ m/^<-:InLatinExtendedB>$/ ), q{Don't match inverted <InLatinExtendedB>} );
ok(!( "\x[7544]" ~~ m/^<:InLatinExtendedB>$/ ), q{Don't match unrelated <InLatinExtendedB>} );
#?pugs todo
ok("\x[7544]" ~~ m/^<:!InLatinExtendedB>$/, q{Match unrelated negated <InLatinExtendedB>} );
#?pugs todo
ok("\x[7544]" ~~ m/^<-:InLatinExtendedB>$/, q{Match unrelated inverted <InLatinExtendedB>} );
#?pugs todo
ok("\x[7544]\c[LATIN SMALL LETTER B WITH STROKE]" ~~ m/<:InLatinExtendedB>/, q{Match unanchored <InLatinExtendedB>} );
# InLetterlikeSymbols
#?pugs todo
ok("\c[ACCOUNT OF]" ~~ m/^<:InLetterlikeSymbols>$/, q{Match <:InLetterlikeSymbols>} );
ok(!( "\c[ACCOUNT OF]" ~~ m/^<:!InLetterlikeSymbols>$/ ), q{Don't match negated <InLetterlikeSymbols>} );
ok(!( "\c[ACCOUNT OF]" ~~ m/^<-:InLetterlikeSymbols>$/ ), q{Don't match inverted <InLetterlikeSymbols>} );
ok(!( "\c[LATIN CAPITAL LETTER X WITH DOT ABOVE]" ~~ m/^<:InLetterlikeSymbols>$/ ), q{Don't match unrelated <InLetterlikeSymbols>} );
#?pugs todo
ok("\c[LATIN CAPITAL LETTER X WITH DOT ABOVE]" ~~ m/^<:!InLetterlikeSymbols>$/, q{Match unrelated negated <InLetterlikeSymbols>} );
#?pugs todo
ok("\c[LATIN CAPITAL LETTER X WITH DOT ABOVE]" ~~ m/^<-:InLetterlikeSymbols>$/, q{Match unrelated inverted <InLetterlikeSymbols>} );
#?pugs todo
ok("\c[LATIN CAPITAL LETTER X WITH DOT ABOVE]\c[ACCOUNT OF]" ~~ m/<:InLetterlikeSymbols>/, q{Match unanchored <InLetterlikeSymbols>} );
# InLowSurrogates
ok(!( "\x[5ECC]" ~~ m/^<:InLowSurrogates>$/ ), q{Don't match unrelated <InLowSurrogates>} );
#?pugs todo
ok("\x[5ECC]" ~~ m/^<:!InLowSurrogates>$/, q{Match unrelated negated <InLowSurrogates>} );
#?pugs todo
ok("\x[5ECC]" ~~ m/^<-:InLowSurrogates>$/, q{Match unrelated inverted <InLowSurrogates>} );
# InMalayalam
#?pugs todo
ok("\x[0D00]" ~~ m/^<:InMalayalam>$/, q{Match <:InMalayalam>} );
ok(!( "\x[0D00]" ~~ m/^<:!InMalayalam>$/ ), q{Don't match negated <InMalayalam>} );
ok(!( "\x[0D00]" ~~ m/^<-:InMalayalam>$/ ), q{Don't match inverted <InMalayalam>} );
ok(!( "\x[3457]" ~~ m/^<:InMalayalam>$/ ), q{Don't match unrelated <InMalayalam>} );
#?pugs todo
ok("\x[3457]" ~~ m/^<:!InMalayalam>$/, q{Match unrelated negated <InMalayalam>} );
#?pugs todo
ok("\x[3457]" ~~ m/^<-:InMalayalam>$/, q{Match unrelated inverted <InMalayalam>} );
#?pugs todo
ok("\x[3457]\x[0D00]" ~~ m/<:InMalayalam>/, q{Match unanchored <InMalayalam>} );
# InMathematicalAlphanumericSymbols
ok(!( "\x[6B79]" ~~ m/^<:InMathematicalAlphanumericSymbols>$/ ), q{Don't match unrelated <InMathematicalAlphanumericSymbols>} );
#?pugs todo
ok("\x[6B79]" ~~ m/^<:!InMathematicalAlphanumericSymbols>$/, q{Match unrelated negated <InMathematicalAlphanumericSymbols>} );
#?pugs todo
ok("\x[6B79]" ~~ m/^<-:InMathematicalAlphanumericSymbols>$/, q{Match unrelated inverted <InMathematicalAlphanumericSymbols>} );
# InMathematicalOperators
#?pugs todo
ok("\c[FOR ALL]" ~~ m/^<:InMathematicalOperators>$/, q{Match <:InMathematicalOperators>} );
ok(!( "\c[FOR ALL]" ~~ m/^<:!InMathematicalOperators>$/ ), q{Don't match negated <InMathematicalOperators>} );
ok(!( "\c[FOR ALL]" ~~ m/^<-:InMathematicalOperators>$/ ), q{Don't match inverted <InMathematicalOperators>} );
ok(!( "\x[BBC6]" ~~ m/^<:InMathematicalOperators>$/ ), q{Don't match unrelated <InMathematicalOperators>} );
#?pugs todo
ok("\x[BBC6]" ~~ m/^<:!InMathematicalOperators>$/, q{Match unrelated negated <InMathematicalOperators>} );
#?pugs todo
ok("\x[BBC6]" ~~ m/^<-:InMathematicalOperators>$/, q{Match unrelated inverted <InMathematicalOperators>} );
#?pugs todo
ok("\x[BBC6]\c[FOR ALL]" ~~ m/<:InMathematicalOperators>/, q{Match unanchored <InMathematicalOperators>} );
# InMiscellaneousMathematicalSymbolsA
#?pugs todo
ok("\x[27C0]" ~~ m/^<:InMiscellaneousMathematicalSymbolsA>$/, q{Match <:InMiscellaneousMathematicalSymbolsA>} );
ok(!( "\x[27C0]" ~~ m/^<:!InMiscellaneousMathematicalSymbolsA>$/ ), q{Don't match negated <InMiscellaneousMathematicalSymbolsA>} );
ok(!( "\x[27C0]" ~~ m/^<-:InMiscellaneousMathematicalSymbolsA>$/ ), q{Don't match inverted <InMiscellaneousMathematicalSymbolsA>} );
ok(!( "\x[065D]" ~~ m/^<:InMiscellaneousMathematicalSymbolsA>$/ ), q{Don't match unrelated <InMiscellaneousMathematicalSymbolsA>} );
#?pugs todo
ok("\x[065D]" ~~ m/^<:!InMiscellaneousMathematicalSymbolsA>$/, q{Match unrelated negated <InMiscellaneousMathematicalSymbolsA>} );
#?pugs todo
ok("\x[065D]" ~~ m/^<-:InMiscellaneousMathematicalSymbolsA>$/, q{Match unrelated inverted <InMiscellaneousMathematicalSymbolsA>} );
#?pugs todo
ok("\x[065D]\x[27C0]" ~~ m/<:InMiscellaneousMathematicalSymbolsA>/, q{Match unanchored <InMiscellaneousMathematicalSymbolsA>} );
# InMiscellaneousMathematicalSymbolsB
#?pugs todo
ok("\c[TRIPLE VERTICAL BAR DELIMITER]" ~~ m/^<:InMiscellaneousMathematicalSymbolsB>$/, q{Match <:InMiscellaneousMathematicalSymbolsB>} );
ok(!( "\c[TRIPLE VERTICAL BAR DELIMITER]" ~~ m/^<:!InMiscellaneousMathematicalSymbolsB>$/ ), q{Don't match negated <InMiscellaneousMathematicalSymbolsB>} );
ok(!( "\c[TRIPLE VERTICAL BAR DELIMITER]" ~~ m/^<-:InMiscellaneousMathematicalSymbolsB>$/ ), q{Don't match inverted <InMiscellaneousMathematicalSymbolsB>} );
ok(!( "\x[56A6]" ~~ m/^<:InMiscellaneousMathematicalSymbolsB>$/ ), q{Don't match unrelated <InMiscellaneousMathematicalSymbolsB>} );
#?pugs todo
ok("\x[56A6]" ~~ m/^<:!InMiscellaneousMathematicalSymbolsB>$/, q{Match unrelated negated <InMiscellaneousMathematicalSymbolsB>} );
#?pugs todo
ok("\x[56A6]" ~~ m/^<-:InMiscellaneousMathematicalSymbolsB>$/, q{Match unrelated inverted <InMiscellaneousMathematicalSymbolsB>} );
#?pugs todo
ok("\x[56A6]\c[TRIPLE VERTICAL BAR DELIMITER]" ~~ m/<:InMiscellaneousMathematicalSymbolsB>/, q{Match unanchored <InMiscellaneousMathematicalSymbolsB>} );
# InMiscellaneousSymbols
#?pugs todo
ok("\c[BLACK SUN WITH RAYS]" ~~ m/^<:InMiscellaneousSymbols>$/, q{Match <:InMiscellaneousSymbols>} );
ok(!( "\c[BLACK SUN WITH RAYS]" ~~ m/^<:!InMiscellaneousSymbols>$/ ), q{Don't match negated <InMiscellaneousSymbols>} );
ok(!( "\c[BLACK SUN WITH RAYS]" ~~ m/^<-:InMiscellaneousSymbols>$/ ), q{Don't match inverted <InMiscellaneousSymbols>} );
ok(!( "\x[3EE7]" ~~ m/^<:InMiscellaneousSymbols>$/ ), q{Don't match unrelated <InMiscellaneousSymbols>} );
#?pugs todo
ok("\x[3EE7]" ~~ m/^<:!InMiscellaneousSymbols>$/, q{Match unrelated negated <InMiscellaneousSymbols>} );
#?pugs todo
ok("\x[3EE7]" ~~ m/^<-:InMiscellaneousSymbols>$/, q{Match unrelated inverted <InMiscellaneousSymbols>} );
#?pugs todo
ok("\x[3EE7]\c[BLACK SUN WITH RAYS]" ~~ m/<:InMiscellaneousSymbols>/, q{Match unanchored <InMiscellaneousSymbols>} );
# InMiscellaneousTechnical
#?pugs todo
ok("\c[DIAMETER SIGN]" ~~ m/^<:InMiscellaneousTechnical>$/, q{Match <:InMiscellaneousTechnical>} );
ok(!( "\c[DIAMETER SIGN]" ~~ m/^<:!InMiscellaneousTechnical>$/ ), q{Don't match negated <InMiscellaneousTechnical>} );
ok(!( "\c[DIAMETER SIGN]" ~~ m/^<-:InMiscellaneousTechnical>$/ ), q{Don't match inverted <InMiscellaneousTechnical>} );
ok(!( "\x[2EFC]" ~~ m/^<:InMiscellaneousTechnical>$/ ), q{Don't match unrelated <InMiscellaneousTechnical>} );
#?pugs todo
ok("\x[2EFC]" ~~ m/^<:!InMiscellaneousTechnical>$/, q{Match unrelated negated <InMiscellaneousTechnical>} );
#?pugs todo
ok("\x[2EFC]" ~~ m/^<-:InMiscellaneousTechnical>$/, q{Match unrelated inverted <InMiscellaneousTechnical>} );
#?pugs todo
ok("\x[2EFC]\c[DIAMETER SIGN]" ~~ m/<:InMiscellaneousTechnical>/, q{Match unanchored <InMiscellaneousTechnical>} );
# InMongolian
#?pugs todo
ok("\c[MONGOLIAN BIRGA]" ~~ m/^<:InMongolian>$/, q{Match <:InMongolian>} );
ok(!( "\c[MONGOLIAN BIRGA]" ~~ m/^<:!InMongolian>$/ ), q{Don't match negated <InMongolian>} );
ok(!( "\c[MONGOLIAN BIRGA]" ~~ m/^<-:InMongolian>$/ ), q{Don't match inverted <InMongolian>} );
ok(!( "\x[AFB4]" ~~ m/^<:InMongolian>$/ ), q{Don't match unrelated <InMongolian>} );
#?pugs todo
ok("\x[AFB4]" ~~ m/^<:!InMongolian>$/, q{Match unrelated negated <InMongolian>} );
#?pugs todo
ok("\x[AFB4]" ~~ m/^<-:InMongolian>$/, q{Match unrelated inverted <InMongolian>} );
#?pugs todo
ok("\x[AFB4]\c[MONGOLIAN BIRGA]" ~~ m/<:InMongolian>/, q{Match unanchored <InMongolian>} );
# InMusicalSymbols
ok(!( "\x[0CE4]" ~~ m/^<:InMusicalSymbols>$/ ), q{Don't match unrelated <InMusicalSymbols>} );
#?pugs todo
ok("\x[0CE4]" ~~ m/^<:!InMusicalSymbols>$/, q{Match unrelated negated <InMusicalSymbols>} );
#?pugs todo
ok("\x[0CE4]" ~~ m/^<-:InMusicalSymbols>$/, q{Match unrelated inverted <InMusicalSymbols>} );
# InMyanmar
#?pugs todo
ok("\c[MYANMAR LETTER KA]" ~~ m/^<:InMyanmar>$/, q{Match <:InMyanmar>} );
ok(!( "\c[MYANMAR LETTER KA]" ~~ m/^<:!InMyanmar>$/ ), q{Don't match negated <InMyanmar>} );
ok(!( "\c[MYANMAR LETTER KA]" ~~ m/^<-:InMyanmar>$/ ), q{Don't match inverted <InMyanmar>} );
ok(!( "\x[1DDB]" ~~ m/^<:InMyanmar>$/ ), q{Don't match unrelated <InMyanmar>} );
#?pugs todo
ok("\x[1DDB]" ~~ m/^<:!InMyanmar>$/, q{Match unrelated negated <InMyanmar>} );
#?pugs todo
ok("\x[1DDB]" ~~ m/^<-:InMyanmar>$/, q{Match unrelated inverted <InMyanmar>} );
#?pugs todo
ok("\x[1DDB]\c[MYANMAR LETTER KA]" ~~ m/<:InMyanmar>/, q{Match unanchored <InMyanmar>} );
# InNumberForms
#?pugs todo
ok("\x[2150]" ~~ m/^<:InNumberForms>$/, q{Match <:InNumberForms>} );
ok(!( "\x[2150]" ~~ m/^<:!InNumberForms>$/ ), q{Don't match negated <InNumberForms>} );
ok(!( "\x[2150]" ~~ m/^<-:InNumberForms>$/ ), q{Don't match inverted <InNumberForms>} );
ok(!( "\c[BLACK RIGHT-POINTING SMALL TRIANGLE]" ~~ m/^<:InNumberForms>$/ ), q{Don't match unrelated <InNumberForms>} );
#?pugs todo
ok("\c[BLACK RIGHT-POINTING SMALL TRIANGLE]" ~~ m/^<:!InNumberForms>$/, q{Match unrelated negated <InNumberForms>} );
#?pugs todo
ok("\c[BLACK RIGHT-POINTING SMALL TRIANGLE]" ~~ m/^<-:InNumberForms>$/, q{Match unrelated inverted <InNumberForms>} );
#?pugs todo
ok("\c[BLACK RIGHT-POINTING SMALL TRIANGLE]\x[2150]" ~~ m/<:InNumberForms>/, q{Match unanchored <InNumberForms>} );
# InOgham
#?pugs todo
ok("\c[OGHAM SPACE MARK]" ~~ m/^<:InOgham>$/, q{Match <:InOgham>} );
ok(!( "\c[OGHAM SPACE MARK]" ~~ m/^<:!InOgham>$/ ), q{Don't match negated <InOgham>} );
ok(!( "\c[OGHAM SPACE MARK]" ~~ m/^<-:InOgham>$/ ), q{Don't match inverted <InOgham>} );
ok(!( "\x[768C]" ~~ m/^<:InOgham>$/ ), q{Don't match unrelated <InOgham>} );
#?pugs todo
ok("\x[768C]" ~~ m/^<:!InOgham>$/, q{Match unrelated negated <InOgham>} );
#?pugs todo
ok("\x[768C]" ~~ m/^<-:InOgham>$/, q{Match unrelated inverted <InOgham>} );
#?pugs todo
ok("\x[768C]\c[OGHAM SPACE MARK]" ~~ m/<:InOgham>/, q{Match unanchored <InOgham>} );
# InOldItalic
ok(!( "\x[C597]" ~~ m/^<:InOldItalic>$/ ), q{Don't match unrelated <InOldItalic>} );
#?pugs todo
ok("\x[C597]" ~~ m/^<:!InOldItalic>$/, q{Match unrelated negated <InOldItalic>} );
#?pugs todo
ok("\x[C597]" ~~ m/^<-:InOldItalic>$/, q{Match unrelated inverted <InOldItalic>} );
# InOpticalCharacterRecognition
#?pugs todo
ok("\c[OCR HOOK]" ~~ m/^<:InOpticalCharacterRecognition>$/, q{Match <:InOpticalCharacterRecognition>} );
ok(!( "\c[OCR HOOK]" ~~ m/^<:!InOpticalCharacterRecognition>$/ ), q{Don't match negated <InOpticalCharacterRecognition>} );
ok(!( "\c[OCR HOOK]" ~~ m/^<-:InOpticalCharacterRecognition>$/ ), q{Don't match inverted <InOpticalCharacterRecognition>} );
ok(!( "\x[BE80]" ~~ m/^<:InOpticalCharacterRecognition>$/ ), q{Don't match unrelated <InOpticalCharacterRecognition>} );
#?pugs todo
ok("\x[BE80]" ~~ m/^<:!InOpticalCharacterRecognition>$/, q{Match unrelated negated <InOpticalCharacterRecognition>} );
#?pugs todo
ok("\x[BE80]" ~~ m/^<-:InOpticalCharacterRecognition>$/, q{Match unrelated inverted <InOpticalCharacterRecognition>} );
#?pugs todo
ok("\x[BE80]\c[OCR HOOK]" ~~ m/<:InOpticalCharacterRecognition>/, q{Match unanchored <InOpticalCharacterRecognition>} );
# InOriya
#?pugs todo
ok("\x[0B00]" ~~ m/^<:InOriya>$/, q{Match <:InOriya>} );
ok(!( "\x[0B00]" ~~ m/^<:!InOriya>$/ ), q{Don't match negated <InOriya>} );
ok(!( "\x[0B00]" ~~ m/^<-:InOriya>$/ ), q{Don't match inverted <InOriya>} );
ok(!( "\c[YI SYLLABLE GGEX]" ~~ m/^<:InOriya>$/ ), q{Don't match unrelated <InOriya>} );
#?pugs todo
ok("\c[YI SYLLABLE GGEX]" ~~ m/^<:!InOriya>$/, q{Match unrelated negated <InOriya>} );
#?pugs todo
ok("\c[YI SYLLABLE GGEX]" ~~ m/^<-:InOriya>$/, q{Match unrelated inverted <InOriya>} );
#?pugs todo
ok("\c[YI SYLLABLE GGEX]\x[0B00]" ~~ m/<:InOriya>/, q{Match unanchored <InOriya>} );
# InPrivateUseArea
ok(!( "\x[B6B1]" ~~ m/^<:InPrivateUseArea>$/ ), q{Don't match unrelated <InPrivateUseArea>} );
#?pugs todo
ok("\x[B6B1]" ~~ m/^<:!InPrivateUseArea>$/, q{Match unrelated negated <InPrivateUseArea>} );
#?pugs todo
ok("\x[B6B1]" ~~ m/^<-:InPrivateUseArea>$/, q{Match unrelated inverted <InPrivateUseArea>} );
# InRunic
#?pugs todo
ok("\c[RUNIC LETTER FEHU FEOH FE F]" ~~ m/^<:InRunic>$/, q{Match <:InRunic>} );
ok(!( "\c[RUNIC LETTER FEHU FEOH FE F]" ~~ m/^<:!InRunic>$/ ), q{Don't match negated <InRunic>} );
ok(!( "\c[RUNIC LETTER FEHU FEOH FE F]" ~~ m/^<-:InRunic>$/ ), q{Don't match inverted <InRunic>} );
ok(!( "\c[SINHALA LETTER MAHAAPRAANA KAYANNA]" ~~ m/^<:InRunic>$/ ), q{Don't match unrelated <InRunic>} );
#?pugs todo
ok("\c[SINHALA LETTER MAHAAPRAANA KAYANNA]" ~~ m/^<:!InRunic>$/, q{Match unrelated negated <InRunic>} );
#?pugs todo
ok("\c[SINHALA LETTER MAHAAPRAANA KAYANNA]" ~~ m/^<-:InRunic>$/, q{Match unrelated inverted <InRunic>} );
#?pugs todo
ok("\c[SINHALA LETTER MAHAAPRAANA KAYANNA]\c[RUNIC LETTER FEHU FEOH FE F]" ~~ m/<:InRunic>/, q{Match unanchored <InRunic>} );
# InSinhala
#?pugs todo
ok("\x[0D80]" ~~ m/^<:InSinhala>$/, q{Match <:InSinhala>} );
ok(!( "\x[0D80]" ~~ m/^<:!InSinhala>$/ ), q{Don't match negated <InSinhala>} );
ok(!( "\x[0D80]" ~~ m/^<-:InSinhala>$/ ), q{Don't match inverted <InSinhala>} );
ok(!( "\x[1060]" ~~ m/^<:InSinhala>$/ ), q{Don't match unrelated <InSinhala>} );
#?pugs todo
ok("\x[1060]" ~~ m/^<:!InSinhala>$/, q{Match unrelated negated <InSinhala>} );
#?pugs todo
ok("\x[1060]" ~~ m/^<-:InSinhala>$/, q{Match unrelated inverted <InSinhala>} );
#?pugs todo
ok("\x[1060]\x[0D80]" ~~ m/<:InSinhala>/, q{Match unanchored <InSinhala>} );
# InSmallFormVariants
ok(!( "\x[5285]" ~~ m/^<:InSmallFormVariants>$/ ), q{Don't match unrelated <InSmallFormVariants>} );
#?pugs todo
ok("\x[5285]" ~~ m/^<:!InSmallFormVariants>$/, q{Match unrelated negated <InSmallFormVariants>} );
#?pugs todo
ok("\x[5285]" ~~ m/^<-:InSmallFormVariants>$/, q{Match unrelated inverted <InSmallFormVariants>} );
# InSpacingModifierLetters
#?pugs todo
ok("\c[MODIFIER LETTER SMALL H]" ~~ m/^<:InSpacingModifierLetters>$/, q{Match <:InSpacingModifierLetters>} );
ok(!( "\c[MODIFIER LETTER SMALL H]" ~~ m/^<:!InSpacingModifierLetters>$/ ), q{Don't match negated <InSpacingModifierLetters>} );
ok(!( "\c[MODIFIER LETTER SMALL H]" ~~ m/^<-:InSpacingModifierLetters>$/ ), q{Don't match inverted <InSpacingModifierLetters>} );
ok(!( "\x[5326]" ~~ m/^<:InSpacingModifierLetters>$/ ), q{Don't match unrelated <InSpacingModifierLetters>} );
#?pugs todo
ok("\x[5326]" ~~ m/^<:!InSpacingModifierLetters>$/, q{Match unrelated negated <InSpacingModifierLetters>} );
#?pugs todo
ok("\x[5326]" ~~ m/^<-:InSpacingModifierLetters>$/, q{Match unrelated inverted <InSpacingModifierLetters>} );
#?pugs todo
ok("\x[5326]\c[MODIFIER LETTER SMALL H]" ~~ m/<:InSpacingModifierLetters>/, q{Match unanchored <InSpacingModifierLetters>} );
# InSpecials
ok(!( "\x[3DF1]" ~~ m/^<:InSpecials>$/ ), q{Don't match unrelated <InSpecials>} );
#?pugs todo
ok("\x[3DF1]" ~~ m/^<:!InSpecials>$/, q{Match unrelated negated <InSpecials>} );
#?pugs todo
ok("\x[3DF1]" ~~ m/^<-:InSpecials>$/, q{Match unrelated inverted <InSpecials>} );
# InSuperscriptsAndSubscripts
#?pugs todo
ok("\c[SUPERSCRIPT ZERO]" ~~ m/^<:InSuperscriptsAndSubscripts>$/, q{Match <:InSuperscriptsAndSubscripts>} );
ok(!( "\c[SUPERSCRIPT ZERO]" ~~ m/^<:!InSuperscriptsAndSubscripts>$/ ), q{Don't match negated <InSuperscriptsAndSubscripts>} );
ok(!( "\c[SUPERSCRIPT ZERO]" ~~ m/^<-:InSuperscriptsAndSubscripts>$/ ), q{Don't match inverted <InSuperscriptsAndSubscripts>} );
ok(!( "\x[3E71]" ~~ m/^<:InSuperscriptsAndSubscripts>$/ ), q{Don't match unrelated <InSuperscriptsAndSubscripts>} );
#?pugs todo
ok("\x[3E71]" ~~ m/^<:!InSuperscriptsAndSubscripts>$/, q{Match unrelated negated <InSuperscriptsAndSubscripts>} );
#?pugs todo
ok("\x[3E71]" ~~ m/^<-:InSuperscriptsAndSubscripts>$/, q{Match unrelated inverted <InSuperscriptsAndSubscripts>} );
#?pugs todo
ok("\x[3E71]\c[SUPERSCRIPT ZERO]" ~~ m/<:InSuperscriptsAndSubscripts>/, q{Match unanchored <InSuperscriptsAndSubscripts>} );
# InSupplementalArrowsA
#?pugs todo
ok("\c[UPWARDS QUADRUPLE ARROW]" ~~ m/^<:InSupplementalArrowsA>$/, q{Match <:InSupplementalArrowsA>} );
ok(!( "\c[UPWARDS QUADRUPLE ARROW]" ~~ m/^<:!InSupplementalArrowsA>$/ ), q{Don't match negated <InSupplementalArrowsA>} );
ok(!( "\c[UPWARDS QUADRUPLE ARROW]" ~~ m/^<-:InSupplementalArrowsA>$/ ), q{Don't match inverted <InSupplementalArrowsA>} );
ok(!( "\c[GREEK SMALL LETTER OMICRON WITH TONOS]" ~~ m/^<:InSupplementalArrowsA>$/ ), q{Don't match unrelated <InSupplementalArrowsA>} );
#?pugs todo
ok("\c[GREEK SMALL LETTER OMICRON WITH TONOS]" ~~ m/^<:!InSupplementalArrowsA>$/, q{Match unrelated negated <InSupplementalArrowsA>} );
#?pugs todo
ok("\c[GREEK SMALL LETTER OMICRON WITH TONOS]" ~~ m/^<-:InSupplementalArrowsA>$/, q{Match unrelated inverted <InSupplementalArrowsA>} );
#?pugs todo
ok("\c[GREEK SMALL LETTER OMICRON WITH TONOS]\c[UPWARDS QUADRUPLE ARROW]" ~~ m/<:InSupplementalArrowsA>/, q{Match unanchored <InSupplementalArrowsA>} );
# InSupplementalArrowsB
#?pugs todo
ok("\c[RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE]" ~~ m/^<:InSupplementalArrowsB>$/, q{Match <:InSupplementalArrowsB>} );
ok(!( "\c[RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE]" ~~ m/^<:!InSupplementalArrowsB>$/ ), q{Don't match negated <InSupplementalArrowsB>} );
ok(!( "\c[RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE]" ~~ m/^<-:InSupplementalArrowsB>$/ ), q{Don't match inverted <InSupplementalArrowsB>} );
ok(!( "\x[C1A9]" ~~ m/^<:InSupplementalArrowsB>$/ ), q{Don't match unrelated <InSupplementalArrowsB>} );
#?pugs todo
ok("\x[C1A9]" ~~ m/^<:!InSupplementalArrowsB>$/, q{Match unrelated negated <InSupplementalArrowsB>} );
#?pugs todo
ok("\x[C1A9]" ~~ m/^<-:InSupplementalArrowsB>$/, q{Match unrelated inverted <InSupplementalArrowsB>} );
#?pugs todo
ok("\x[C1A9]\c[RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE]" ~~ m/<:InSupplementalArrowsB>/, q{Match unanchored <InSupplementalArrowsB>} );
# InSupplementalMathematicalOperators
#?pugs todo
ok("\c[N-ARY CIRCLED DOT OPERATOR]" ~~ m/^<:InSupplementalMathematicalOperators>$/, q{Match <:InSupplementalMathematicalOperators>} );
ok(!( "\c[N-ARY CIRCLED DOT OPERATOR]" ~~ m/^<:!InSupplementalMathematicalOperators>$/ ), q{Don't match negated <InSupplementalMathematicalOperators>} );
ok(!( "\c[N-ARY CIRCLED DOT OPERATOR]" ~~ m/^<-:InSupplementalMathematicalOperators>$/ ), q{Don't match inverted <InSupplementalMathematicalOperators>} );
ok(!( "\x[9EBD]" ~~ m/^<:InSupplementalMathematicalOperators>$/ ), q{Don't match unrelated <InSupplementalMathematicalOperators>} );
#?pugs todo
ok("\x[9EBD]" ~~ m/^<:!InSupplementalMathematicalOperators>$/, q{Match unrelated negated <InSupplementalMathematicalOperators>} );
#?pugs todo
ok("\x[9EBD]" ~~ m/^<-:InSupplementalMathematicalOperators>$/, q{Match unrelated inverted <InSupplementalMathematicalOperators>} );
#?pugs todo
ok("\x[9EBD]\c[N-ARY CIRCLED DOT OPERATOR]" ~~ m/<:InSupplementalMathematicalOperators>/, q{Match unanchored <InSupplementalMathematicalOperators>} );
# InSupplementaryPrivateUseAreaA
ok(!( "\x[07E3]" ~~ m/^<:InSupplementaryPrivateUseAreaA>$/ ), q{Don't match unrelated <InSupplementaryPrivateUseAreaA>} );
#?pugs todo
ok("\x[07E3]" ~~ m/^<:!InSupplementaryPrivateUseAreaA>$/, q{Match unrelated negated <InSupplementaryPrivateUseAreaA>} );
#?pugs todo
ok("\x[07E3]" ~~ m/^<-:InSupplementaryPrivateUseAreaA>$/, q{Match unrelated inverted <InSupplementaryPrivateUseAreaA>} );
# InSupplementaryPrivateUseAreaB
ok(!( "\x[4C48]" ~~ m/^<:InSupplementaryPrivateUseAreaB>$/ ), q{Don't match unrelated <InSupplementaryPrivateUseAreaB>} );
#?pugs todo
ok("\x[4C48]" ~~ m/^<:!InSupplementaryPrivateUseAreaB>$/, q{Match unrelated negated <InSupplementaryPrivateUseAreaB>} );
#?pugs todo
ok("\x[4C48]" ~~ m/^<-:InSupplementaryPrivateUseAreaB>$/, q{Match unrelated inverted <InSupplementaryPrivateUseAreaB>} );
# InSyriac
#?pugs todo
ok("\c[SYRIAC END OF PARAGRAPH]" ~~ m/^<:InSyriac>$/, q{Match <:InSyriac>} );
ok(!( "\c[SYRIAC END OF PARAGRAPH]" ~~ m/^<:!InSyriac>$/ ), q{Don't match negated <InSyriac>} );
ok(!( "\c[SYRIAC END OF PARAGRAPH]" ~~ m/^<-:InSyriac>$/ ), q{Don't match inverted <InSyriac>} );
ok(!( "\c[YI SYLLABLE NZIEP]" ~~ m/^<:InSyriac>$/ ), q{Don't match unrelated <InSyriac>} );
#?pugs todo
ok("\c[YI SYLLABLE NZIEP]" ~~ m/^<:!InSyriac>$/, q{Match unrelated negated <InSyriac>} );
#?pugs todo
ok("\c[YI SYLLABLE NZIEP]" ~~ m/^<-:InSyriac>$/, q{Match unrelated inverted <InSyriac>} );
#?pugs todo
ok("\c[YI SYLLABLE NZIEP]\c[SYRIAC END OF PARAGRAPH]" ~~ m/<:InSyriac>/, q{Match unanchored <InSyriac>} );
# InTagalog
#?pugs todo
ok("\c[TAGALOG LETTER A]" ~~ m/^<:InTagalog>$/, q{Match <:InTagalog>} );
ok(!( "\c[TAGALOG LETTER A]" ~~ m/^<:!InTagalog>$/ ), q{Don't match negated <InTagalog>} );
ok(!( "\c[TAGALOG LETTER A]" ~~ m/^<-:InTagalog>$/ ), q{Don't match inverted <InTagalog>} );
ok(!( "\c[GEORGIAN LETTER BAN]" ~~ m/^<:InTagalog>$/ ), q{Don't match unrelated <InTagalog>} );
#?pugs todo
ok("\c[GEORGIAN LETTER BAN]" ~~ m/^<:!InTagalog>$/, q{Match unrelated negated <InTagalog>} );
#?pugs todo
ok("\c[GEORGIAN LETTER BAN]" ~~ m/^<-:InTagalog>$/, q{Match unrelated inverted <InTagalog>} );
#?pugs todo
ok("\c[GEORGIAN LETTER BAN]\c[TAGALOG LETTER A]" ~~ m/<:InTagalog>/, q{Match unanchored <InTagalog>} );
# InTagbanwa
#?pugs todo
ok("\c[TAGBANWA LETTER A]" ~~ m/^<:InTagbanwa>$/, q{Match <:InTagbanwa>} );
ok(!( "\c[TAGBANWA LETTER A]" ~~ m/^<:!InTagbanwa>$/ ), q{Don't match negated <InTagbanwa>} );
ok(!( "\c[TAGBANWA LETTER A]" ~~ m/^<-:InTagbanwa>$/ ), q{Don't match inverted <InTagbanwa>} );
ok(!( "\x[5776]" ~~ m/^<:InTagbanwa>$/ ), q{Don't match unrelated <InTagbanwa>} );
#?pugs todo
ok("\x[5776]" ~~ m/^<:!InTagbanwa>$/, q{Match unrelated negated <InTagbanwa>} );
#?pugs todo
ok("\x[5776]" ~~ m/^<-:InTagbanwa>$/, q{Match unrelated inverted <InTagbanwa>} );
#?pugs todo
ok("\x[5776]\c[TAGBANWA LETTER A]" ~~ m/<:InTagbanwa>/, q{Match unanchored <InTagbanwa>} );
# InTags
ok(!( "\x[3674]" ~~ m/^<:InTags>$/ ), q{Don't match unrelated <InTags>} );
#?pugs todo
ok("\x[3674]" ~~ m/^<:!InTags>$/, q{Match unrelated negated <InTags>} );
#?pugs todo
ok("\x[3674]" ~~ m/^<-:InTags>$/, q{Match unrelated inverted <InTags>} );
# InTamil
#?pugs todo
ok("\x[0B80]" ~~ m/^<:InTamil>$/, q{Match <:InTamil>} );
ok(!( "\x[0B80]" ~~ m/^<:!InTamil>$/ ), q{Don't match negated <InTamil>} );
ok(!( "\x[0B80]" ~~ m/^<-:InTamil>$/ ), q{Don't match inverted <InTamil>} );
ok(!( "\x[B58F]" ~~ m/^<:InTamil>$/ ), q{Don't match unrelated <InTamil>} );
#?pugs todo
ok("\x[B58F]" ~~ m/^<:!InTamil>$/, q{Match unrelated negated <InTamil>} );
#?pugs todo
ok("\x[B58F]" ~~ m/^<-:InTamil>$/, q{Match unrelated inverted <InTamil>} );
#?pugs todo
ok("\x[B58F]\x[0B80]" ~~ m/<:InTamil>/, q{Match unanchored <InTamil>} );
# InTelugu
#?pugs todo
ok("\x[0C00]" ~~ m/^<:InTelugu>$/, q{Match <:InTelugu>} );
ok(!( "\x[0C00]" ~~ m/^<:!InTelugu>$/ ), q{Don't match negated <InTelugu>} );
ok(!( "\x[0C00]" ~~ m/^<-:InTelugu>$/ ), q{Don't match inverted <InTelugu>} );
ok(!( "\x[8AC5]" ~~ m/^<:InTelugu>$/ ), q{Don't match unrelated <InTelugu>} );
#?pugs todo
ok("\x[8AC5]" ~~ m/^<:!InTelugu>$/, q{Match unrelated negated <InTelugu>} );
#?pugs todo
ok("\x[8AC5]" ~~ m/^<-:InTelugu>$/, q{Match unrelated inverted <InTelugu>} );
#?pugs todo
ok("\x[8AC5]\x[0C00]" ~~ m/<:InTelugu>/, q{Match unanchored <InTelugu>} );
# InThaana
#?pugs todo
ok("\c[THAANA LETTER HAA]" ~~ m/^<:InThaana>$/, q{Match <:InThaana>} );
ok(!( "\c[THAANA LETTER HAA]" ~~ m/^<:!InThaana>$/ ), q{Don't match negated <InThaana>} );
ok(!( "\c[THAANA LETTER HAA]" ~~ m/^<-:InThaana>$/ ), q{Don't match inverted <InThaana>} );
ok(!( "\x[BB8F]" ~~ m/^<:InThaana>$/ ), q{Don't match unrelated <InThaana>} );
#?pugs todo
ok("\x[BB8F]" ~~ m/^<:!InThaana>$/, q{Match unrelated negated <InThaana>} );
#?pugs todo
ok("\x[BB8F]" ~~ m/^<-:InThaana>$/, q{Match unrelated inverted <InThaana>} );
#?pugs todo
ok("\x[BB8F]\c[THAANA LETTER HAA]" ~~ m/<:InThaana>/, q{Match unanchored <InThaana>} );
# InThai
#?pugs todo
ok("\x[0E00]" ~~ m/^<:InThai>$/, q{Match <:InThai>} );
ok(!( "\x[0E00]" ~~ m/^<:!InThai>$/ ), q{Don't match negated <InThai>} );
ok(!( "\x[0E00]" ~~ m/^<-:InThai>$/ ), q{Don't match inverted <InThai>} );
ok(!( "\x[9395]" ~~ m/^<:InThai>$/ ), q{Don't match unrelated <InThai>} );
#?pugs todo
ok("\x[9395]" ~~ m/^<:!InThai>$/, q{Match unrelated negated <InThai>} );
#?pugs todo
ok("\x[9395]" ~~ m/^<-:InThai>$/, q{Match unrelated inverted <InThai>} );
#?pugs todo
ok("\x[9395]\x[0E00]" ~~ m/<:InThai>/, q{Match unanchored <InThai>} );
# InTibetan
#?pugs todo
ok("\c[TIBETAN SYLLABLE OM]" ~~ m/^<:InTibetan>$/, q{Match <:InTibetan>} );
ok(!( "\c[TIBETAN SYLLABLE OM]" ~~ m/^<:!InTibetan>$/ ), q{Don't match negated <InTibetan>} );
ok(!( "\c[TIBETAN SYLLABLE OM]" ~~ m/^<-:InTibetan>$/ ), q{Don't match inverted <InTibetan>} );
ok(!( "\x[957A]" ~~ m/^<:InTibetan>$/ ), q{Don't match unrelated <InTibetan>} );
#?pugs todo
ok("\x[957A]" ~~ m/^<:!InTibetan>$/, q{Match unrelated negated <InTibetan>} );
#?pugs todo
ok("\x[957A]" ~~ m/^<-:InTibetan>$/, q{Match unrelated inverted <InTibetan>} );
#?pugs todo
ok("\x[957A]\c[TIBETAN SYLLABLE OM]" ~~ m/<:InTibetan>/, q{Match unanchored <InTibetan>} );
# InUnifiedCanadianAboriginalSyllabics
#?pugs todo
ok("\x[1400]" ~~ m/^<:InUnifiedCanadianAboriginalSyllabics>$/, q{Match <:InUnifiedCanadianAboriginalSyllabics>} );
ok(!( "\x[1400]" ~~ m/^<:!InUnifiedCanadianAboriginalSyllabics>$/ ), q{Don't match negated <InUnifiedCanadianAboriginalSyllabics>} );
ok(!( "\x[1400]" ~~ m/^<-:InUnifiedCanadianAboriginalSyllabics>$/ ), q{Don't match inverted <InUnifiedCanadianAboriginalSyllabics>} );
ok(!( "\x[9470]" ~~ m/^<:InUnifiedCanadianAboriginalSyllabics>$/ ), q{Don't match unrelated <InUnifiedCanadianAboriginalSyllabics>} );
#?pugs todo
ok("\x[9470]" ~~ m/^<:!InUnifiedCanadianAboriginalSyllabics>$/, q{Match unrelated negated <InUnifiedCanadianAboriginalSyllabics>} );
#?pugs todo
ok("\x[9470]" ~~ m/^<-:InUnifiedCanadianAboriginalSyllabics>$/, q{Match unrelated inverted <InUnifiedCanadianAboriginalSyllabics>} );
#?pugs todo
ok("\x[9470]\x[1400]" ~~ m/<:InUnifiedCanadianAboriginalSyllabics>/, q{Match unanchored <InUnifiedCanadianAboriginalSyllabics>} );
# InVariationSelectors
ok(!( "\x[764D]" ~~ m/^<:InVariationSelectors>$/ ), q{Don't match unrelated <InVariationSelectors>} );
#?pugs todo
ok("\x[764D]" ~~ m/^<:!InVariationSelectors>$/, q{Match unrelated negated <InVariationSelectors>} );
#?pugs todo
ok("\x[764D]" ~~ m/^<-:InVariationSelectors>$/, q{Match unrelated inverted <InVariationSelectors>} );
# InYiRadicals
#?pugs todo
ok("\c[YI RADICAL QOT]" ~~ m/^<:InYiRadicals>$/, q{Match <:InYiRadicals>} );
ok(!( "\c[YI RADICAL QOT]" ~~ m/^<:!InYiRadicals>$/ ), q{Don't match negated <InYiRadicals>} );
ok(!( "\c[YI RADICAL QOT]" ~~ m/^<-:InYiRadicals>$/ ), q{Don't match inverted <InYiRadicals>} );
ok(!( "\x[3A4E]" ~~ m/^<:InYiRadicals>$/ ), q{Don't match unrelated <InYiRadicals>} );
#?pugs todo
ok("\x[3A4E]" ~~ m/^<:!InYiRadicals>$/, q{Match unrelated negated <InYiRadicals>} );
#?pugs todo
ok("\x[3A4E]" ~~ m/^<-:InYiRadicals>$/, q{Match unrelated inverted <InYiRadicals>} );
#?pugs todo
ok("\x[3A4E]\c[YI RADICAL QOT]" ~~ m/<:InYiRadicals>/, q{Match unanchored <InYiRadicals>} );
# InYiSyllables
#?pugs todo
ok("\c[YI SYLLABLE IT]" ~~ m/^<:InYiSyllables>$/, q{Match <:InYiSyllables>} );
ok(!( "\c[YI SYLLABLE IT]" ~~ m/^<:!InYiSyllables>$/ ), q{Don't match negated <InYiSyllables>} );
ok(!( "\c[YI SYLLABLE IT]" ~~ m/^<-:InYiSyllables>$/ ), q{Don't match inverted <InYiSyllables>} );
ok(!( "\c[PARALLEL WITH HORIZONTAL STROKE]" ~~ m/^<:InYiSyllables>$/ ), q{Don't match unrelated <InYiSyllables>} );
#?pugs todo
ok("\c[PARALLEL WITH HORIZONTAL STROKE]" ~~ m/^<:!InYiSyllables>$/, q{Match unrelated negated <InYiSyllables>} );
#?pugs todo
ok("\c[PARALLEL WITH HORIZONTAL STROKE]" ~~ m/^<-:InYiSyllables>$/, q{Match unrelated inverted <InYiSyllables>} );
#?pugs todo
ok("\c[PARALLEL WITH HORIZONTAL STROKE]\c[YI SYLLABLE IT]" ~~ m/<:InYiSyllables>/, q{Match unanchored <InYiSyllables>} );
# vim: ft=perl6
Jump to Line
Something went wrong with that request. Please try again.