Skip to content

Commit c35095c

Browse files
committed
Enable more tests
1 parent f878d99 commit c35095c

File tree

5 files changed

+79
-5
lines changed

5 files changed

+79
-5
lines changed

Tests/GRDBTests/FTS3TableBuilderTests.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ class FTS3TableBuilderTests: GRDBTestCase {
8888

8989
#if GRDBCUSTOMSQLITE || SQLITE_HAS_CODEC
9090
func testUnicode61TokenizerDiacriticsRemove() throws {
91+
guard Database.sqliteLibVersionNumber >= 3027000 else {
92+
throw XCTSkip("remove_diacritics=2 is not available")
93+
}
9194
let dbQueue = try makeDatabaseQueue()
9295
try dbQueue.inDatabase { db in
9396
try db.create(virtualTable: "documents", using: FTS3()) { t in
@@ -99,7 +102,7 @@ class FTS3TableBuilderTests: GRDBTestCase {
99102
#else
100103
func testUnicode61TokenizerDiacriticsRemove() throws {
101104
guard #available(iOS 14, macOS 10.16, tvOS 14, *) else {
102-
throw XCTSkip()
105+
throw XCTSkip("remove_diacritics=2 is not available")
103106
}
104107
let dbQueue = try makeDatabaseQueue()
105108
try dbQueue.inDatabase { db in

Tests/GRDBTests/FTS3TokenizerTests.swift

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,35 @@ class FTS3TokenizerTests: GRDBTestCase {
9595
}
9696
}
9797

98-
#if GRDBCUSTOMSQLITE
98+
#if GRDBCUSTOMSQLITE || SQLITE_HAS_CODEC
9999
func testUnicode61TokenizerDiacriticsRemove() throws {
100+
guard Database.sqliteLibVersionNumber >= 3027000 else {
101+
throw XCTSkip("remove_diacritics=2 is not available")
102+
}
103+
let dbQueue = try makeDatabaseQueue()
104+
try dbQueue.inDatabase { db in
105+
try db.create(virtualTable: "documents", using: FTS3()) { t in
106+
t.tokenizer = .unicode61(diacritics: .remove)
107+
}
108+
109+
// simple match
110+
XCTAssertTrue(match(db, "abcDÉF", "abcDÉF"))
111+
112+
// English stemming
113+
XCTAssertFalse(match(db, "database", "databases"))
114+
115+
// diacritics in latin characters
116+
XCTAssertTrue(match(db, "eéÉ", "Èèe"))
117+
118+
// unicode case
119+
XCTAssertTrue(match(db, "jérôme", "JÉRÔME"))
120+
}
121+
}
122+
#else
123+
func testUnicode61TokenizerDiacriticsRemove() throws {
124+
guard #available(iOS 14, macOS 10.16, tvOS 14, *) else {
125+
throw XCTSkip("remove_diacritics=2 is not available")
126+
}
100127
let dbQueue = try makeDatabaseQueue()
101128
try dbQueue.inDatabase { db in
102129
try db.create(virtualTable: "documents", using: FTS3()) { t in

Tests/GRDBTests/FTS4TableBuilderTests.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,24 @@ class FTS4TableBuilderTests: GRDBTestCase {
8787
}
8888

8989
// TODO: why only custom SQLite build?
90-
#if GRDBCUSTOMSQLITE
90+
#if GRDBCUSTOMSQLITE || SQLITE_HAS_CODEC
9191
func testUnicode61TokenizerDiacriticsRemove() throws {
92+
guard Database.sqliteLibVersionNumber >= 3027000 else {
93+
throw XCTSkip("remove_diacritics=2 is not available")
94+
}
95+
let dbQueue = try makeDatabaseQueue()
96+
try dbQueue.inDatabase { db in
97+
try db.create(virtualTable: "documents", using: FTS4()) { t in
98+
t.tokenizer = .unicode61(diacritics: .remove)
99+
}
100+
assertDidExecute(sql: "CREATE VIRTUAL TABLE \"documents\" USING fts4(tokenize=unicode61 \"remove_diacritics=2\")")
101+
}
102+
}
103+
#else
104+
func testUnicode61TokenizerDiacriticsRemove() throws {
105+
guard #available(iOS 14, macOS 10.16, tvOS 14, *) else {
106+
throw XCTSkip("remove_diacritics=2 is not available")
107+
}
92108
let dbQueue = try makeDatabaseQueue()
93109
try dbQueue.inDatabase { db in
94110
try db.create(virtualTable: "documents", using: FTS4()) { t in

Tests/GRDBTests/FTS5TableBuilderTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class FTS5TableBuilderTests: GRDBTestCase {
160160
#else
161161
func testUnicode61TokenizerDiacriticsRemove() throws {
162162
guard #available(iOS 14, macOS 10.16, tvOS 14, *) else {
163-
throw XCTSkip()
163+
throw XCTSkip("remove_diacritics=2 is not available")
164164
}
165165

166166
let dbQueue = try makeDatabaseQueue()

Tests/GRDBTests/FTS5TokenizerTests.swift

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,36 @@ class FTS5TokenizerTests: GRDBTestCase {
173173
}
174174
}
175175

176-
#if GRDBCUSTOMSQLITE
176+
#if GRDBCUSTOMSQLITE || SQLITE_HAS_CODEC
177177
func testUnicode61TokenizerDiacriticsRemove() throws {
178+
guard Database.sqliteLibVersionNumber >= 3027000 else {
179+
throw XCTSkip("remove_diacritics=2 is not available")
180+
}
181+
let dbQueue = try makeDatabaseQueue()
182+
try dbQueue.inDatabase { db in
183+
try db.create(virtualTable: "documents", using: FTS5()) { t in
184+
t.tokenizer = .unicode61(diacritics: .remove)
185+
t.column("content")
186+
}
187+
188+
// simple match
189+
XCTAssertTrue(match(db, "abcDÉF", "abcDÉF"))
190+
191+
// English stemming
192+
XCTAssertFalse(match(db, "database", "databases"))
193+
194+
// diacritics in latin characters
195+
XCTAssertTrue(match(db, "eéÉ", "Èèe"))
196+
197+
// unicode case
198+
XCTAssertTrue(match(db, "jérôme", "JÉRÔME"))
199+
}
200+
}
201+
#else
202+
func testUnicode61TokenizerDiacriticsRemove() throws {
203+
guard #available(iOS 14, macOS 10.16, tvOS 14, *) else {
204+
throw XCTSkip("remove_diacritics=2 is not available")
205+
}
178206
let dbQueue = try makeDatabaseQueue()
179207
try dbQueue.inDatabase { db in
180208
try db.create(virtualTable: "documents", using: FTS5()) { t in

0 commit comments

Comments
 (0)