Skip to content

Commit d4744ad

Browse files
committed
Additional UTS18 tests
1 parent 8e3d9ac commit d4744ad

File tree

1 file changed

+121
-3
lines changed

1 file changed

+121
-3
lines changed

Tests/RegexTests/UTS18Tests.swift

Lines changed: 121 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
//===----------------------------------------------------------------------===//
1111

1212
import XCTest
13-
@testable import _StringProcessing
13+
@testable // for internal `matches(of:)`
14+
import _StringProcessing
1415

1516
class UTS18Tests: XCTestCase {
1617
var input: String {
1718
"ABCdefghîøü\u{FFF0} -–—[]123"
1819
// 012345678901 234567890
1920
}
20-
2121
}
2222

2323
fileprivate extension String {
@@ -361,6 +361,8 @@ extension UTS18Tests {
361361
XCTAssertTrue("\u{FEFF}".contains(#/\N{ZERO WIDTH NO-BREAK SPACE}/#))
362362
XCTAssertTrue("".contains(#/\N{HANGUL SYLLABLE GANG}/#))
363363
XCTAssertTrue("\u{1F514}".contains(#/\N{BELL}/#))
364+
XCTAssertTrue("🐯".contains(#/\N{TIGER FACE}/#))
365+
XCTAssertFalse("🐯".contains(#/\N{TIEGR FACE}/#))
364366
}
365367

366368
func testIndividuallyNamedCharacters_XFail() {
@@ -399,6 +401,122 @@ extension UTS18Tests {
399401
// Standard (or Unicode Technical Standard, respectively), with values that
400402
// match the Unicode definitions for that version.
401403
func testFullProperties() {
402-
XCTExpectFailure { XCTFail("Implement tests") }
404+
// MARK: General
405+
// Name (Name_Alias)
406+
// Block
407+
// Age
408+
// General_Category
409+
// Script (Script_Extensions)
410+
// White_Space
411+
// Alphabetic
412+
// Hangul_Syllable_Type
413+
// Noncharacter_Code_Point
414+
// Default_Ignorable_Code_Point
415+
// Deprecated
416+
// Logical_Order_Exception
417+
// Variation_Selector
418+
419+
// MARK: Numeric
420+
// Numeric_Value
421+
// Numeric_Type
422+
// Hex_Digit
423+
// ASCII_Hex_Digit
424+
425+
// MARK: Identifiers
426+
// ID_Continue
427+
// ID_Start
428+
// XID_Continue
429+
// XID_Start
430+
// Pattern_Syntax
431+
// Pattern_White_Space
432+
// Identifier_Status
433+
// Identifier_Type
434+
435+
// MARK: CJK
436+
// Ideographic
437+
// Unified_Ideograph
438+
// Radical
439+
// IDS_Binary_Operator
440+
// IDS_Trinary_Operator
441+
// Equivalent_Unified_Ideograph
442+
XCTExpectFailure()
443+
XCTFail("Unsupported: \(#/^\p{Equivalent_Unified_Ideograph=⼚}+$/#)")
444+
// XCTAssertTrue("⼚⺁厂".contains(#/^\p{Equivalent_Unified_Ideograph=⼚}+$/#))
445+
446+
// MARK: Case
447+
// Uppercase
448+
// Lowercase
449+
// Simple_Lowercase_Mapping
450+
// Simple_Titlecase_Mapping
451+
// Simple_Uppercase_Mapping
452+
// Simple_Case_Folding
453+
// Soft_Dotted
454+
// Cased
455+
// Case_Ignorable
456+
// Changes_When_Lowercased
457+
// Changes_When_Uppercased
458+
XCTAssertTrue("a".contains(#/\p{Changes_When_Uppercased}/#))
459+
XCTAssertTrue("a".contains(#/\p{Changes_When_Uppercased=true}/#))
460+
XCTAssertFalse("A".contains(#/\p{Changes_When_Uppercased}/#))
461+
// Changes_When_Titlecased
462+
// Changes_When_Casefolded
463+
// Changes_When_Casemapped
464+
465+
// MARK: Normalization
466+
// Canonical_Combining_Class
467+
// Decomposition_Type
468+
// NFC_Quick_Check
469+
// NFKC_Quick_Check
470+
// NFD_Quick_Check
471+
// NFKD_Quick_Check
472+
// NFKC_Casefold
473+
// Changes_When_NFKC_Casefolded
474+
475+
// MARK: Emoji
476+
// Emoji
477+
// Emoji_Presentation
478+
// Emoji_Modifier
479+
// Emoji_Modifier_Base
480+
// Emoji_Component
481+
// Extended_Pictographic
482+
// Basic_Emoji*
483+
// Emoji_Keycap_Sequence*
484+
// RGI_Emoji_Modifier_Sequence*
485+
// RGI_Emoji_Flag_Sequence*
486+
// RGI_Emoji_Tag_Sequence*
487+
// RGI_Emoji_ZWJ_Sequence*
488+
// RGI_Emoji*
489+
490+
// MARK: Shaping and Rendering
491+
// Join_Control
492+
// Joining_Group
493+
// Joining_Type
494+
// Vertical_Orientation
495+
// Line_Break
496+
// Grapheme_Cluster_Break
497+
// Sentence_Break
498+
// Word_Break
499+
// East_Asian_Width
500+
// Prepended_Concatenation_Mark
501+
502+
// MARK: Bidirectional
503+
// Bidi_Class
504+
// Bidi_Control
505+
// Bidi_Mirrored
506+
// Bidi_Mirroring_Glyph
507+
// Bidi_Paired_Bracket
508+
// Bidi_Paired_Bracket_Type
509+
510+
// MARK: Miscellaneous
511+
// Math
512+
// Quotation_Mark
513+
// Dash
514+
// Sentence_Terminal
515+
// Terminal_Punctuation
516+
// Diacritic
517+
// Extender
518+
// Grapheme_Base
519+
// Grapheme_Extend
520+
// Regional_Indicator
403521
}
404522
}

0 commit comments

Comments
 (0)