UnicodeScalarProperties.swift (swift-swift-5.8-RELEASE) | : | UnicodeScalarProperties.swift (swift-swift-5.8.1-RELEASE) | ||
---|---|---|---|---|
// RUN: %target-run-simple-swift %S/../../utils/gen-unicode-data/Data/ | // RUN: %target-run-simple-swift %S/../../utils/gen-unicode-data/Data/15/ | |||
// REQUIRES: executable_test | // REQUIRES: executable_test | |||
// REQUIRES: long_test | // REQUIRES: long_test | |||
// REQUIRES: optimized_stdlib | // REQUIRES: optimized_stdlib | |||
// REQUIRES: objc_interop | // REQUIRES: objc_interop | |||
// This test requires access to Unicode data files in the source tree, so | // This test requires access to Unicode data files in the source tree, so | |||
// it doesn't currently support testing on a remote device. (rdar://98993795) | // it doesn't currently support testing on a remote device. (rdar://98993795) | |||
// UNSUPPORTED: remote_run | // UNSUPPORTED: remote_run | |||
// UNSUPPORTED: device_run | // UNSUPPORTED: device_run | |||
skipping to change at line 24 | skipping to change at line 24 | |||
import StdlibUnittest | import StdlibUnittest | |||
import StdlibUnicodeUnittest | import StdlibUnicodeUnittest | |||
var UnicodeScalarPropertiesTest = TestSuite("UnicodeScalarProperties") | var UnicodeScalarPropertiesTest = TestSuite("UnicodeScalarProperties") | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Binary Properties | // Binary Properties | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Binary Properties") { | UnicodeScalarPropertiesTest.test("Binary Properties") { | |||
// First, check that we correctly parsed the unicode data tables to be able | // First, check that we correctly parsed the unicode data tables to be able | |||
// to test against. | // to test against. | |||
// We have 48 properties, but some properties have 'Other_' properties which | // We have 48 properties, but some properties have 'Other_' properties which | |||
// are included in them, so count those as well. | // are included in them, so count those as well. | |||
expectEqual(56, binaryProperties.keys.count) | expectEqual(56, binaryProperties.keys.count) | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
skipping to change at line 100 | skipping to change at line 100 | |||
expectEqual(props.isXIDContinue, check("XID_Continue")) | expectEqual(props.isXIDContinue, check("XID_Continue")) | |||
expectEqual(props.isXIDStart, check("XID_Start")) | expectEqual(props.isXIDStart, check("XID_Start")) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Numeric Properties | // Numeric Properties | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Numeric Properties") { | UnicodeScalarPropertiesTest.test("Numeric Properties") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
expectEqual(scalar.properties.numericType, numericTypes[scalar]) | expectEqual(scalar.properties.numericType, numericTypes[scalar]) | |||
expectEqual(scalar.properties.numericValue, numericValues[scalar]) | expectEqual(scalar.properties.numericValue, numericValues[scalar]) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Scalar Mappings | // Scalar Mappings | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Mappings") { | UnicodeScalarPropertiesTest.test("Scalar Mappings") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
if let upper = mappings[scalar]?["upper"] { | if let upper = mappings[scalar]?["upper"] { | |||
expectEqual(scalar.properties.uppercaseMapping, upper) | expectEqual(scalar.properties.uppercaseMapping, upper) | |||
} | } | |||
skipping to change at line 143 | skipping to change at line 143 | |||
expectEqual(scalar.properties.titlecaseMapping, title) | expectEqual(scalar.properties.titlecaseMapping, title) | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Scalar Age | // Scalar Age | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Age") { | UnicodeScalarPropertiesTest.test("Scalar Age") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
expectEqual(scalar.properties.age?.major, ages[scalar]?.major) | expectEqual(scalar.properties.age?.major, ages[scalar]?.major) | |||
expectEqual(scalar.properties.age?.minor, ages[scalar]?.minor) | expectEqual(scalar.properties.age?.minor, ages[scalar]?.minor) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Scalar General Category | // Scalar General Category | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar General Category") { | UnicodeScalarPropertiesTest.test("Scalar General Category") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
expectEqual(scalar.properties.generalCategory, generalCategories[scalar]) | expectEqual(scalar.properties.generalCategory, generalCategories[scalar]) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Scalar Name Alias | // Scalar Name Alias | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Name Alias") { | UnicodeScalarPropertiesTest.test("Scalar Name Alias") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
expectEqual(scalar.properties.nameAlias, nameAliases[scalar]) | expectEqual(scalar.properties.nameAlias, nameAliases[scalar]) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Scalar Name | // Scalar Name | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.6, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Name") { | UnicodeScalarPropertiesTest.test("Scalar Name") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
expectEqual(scalar.properties.name, names[scalar]) | expectEqual(scalar.properties.name, names[scalar]) | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Case Folded | // Case Folded | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.7, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Case Folding") { | UnicodeScalarPropertiesTest.test("Scalar Case Folding") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
if let mapping = caseFolding[scalar] { | if let mapping = caseFolding[scalar] { | |||
expectEqual(scalar.properties._caseFolded, mapping) | expectEqual(scalar.properties._caseFolded, mapping) | |||
} else { | } else { | |||
expectEqual(scalar.properties._caseFolded, String(scalar)) | expectEqual(scalar.properties._caseFolded, String(scalar)) | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
// Script/Script Extensions | // Script/Script Extensions | |||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | |||
if #available(SwiftStdlib 5.7, *) { | if #available(SwiftStdlib 5.9, *) { | |||
UnicodeScalarPropertiesTest.test("Scalar Scripts") { | UnicodeScalarPropertiesTest.test("Scalar Scripts") { | |||
for i in 0x0 ... 0x10FFFF { | for i in 0x0 ... 0x10FFFF { | |||
guard let scalar = Unicode.Scalar(i) else { | guard let scalar = Unicode.Scalar(i) else { | |||
continue | continue | |||
} | } | |||
let script = unsafeBitCast( | let script = unsafeBitCast( | |||
scalar.properties._script, | scalar.properties._script, | |||
to: Unicode.Script.self | to: Unicode.Script.self | |||
) | ) | |||
End of changes. 10 change blocks. | ||||
10 lines changed or deleted | 10 lines changed or added |