File indexing completed on 2024-05-12 05:17:29
0001 /* 0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "knowledgedb/airportnametokenizer_p.h" 0008 0009 #include <QObject> 0010 #include <QTest> 0011 0012 using namespace KItinerary; 0013 0014 #define s(x) QStringLiteral(x) 0015 0016 class AirportNameTokenizerTest : public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void testTokenize_data() 0021 { 0022 QTest::addColumn<QString>("text"); 0023 QTest::addColumn<QStringList>("tokens"); 0024 0025 QTest::newRow("empty") << QString() << QStringList(); 0026 QTest::newRow("no token") << s("1a0") << QStringList(); 0027 QTest::newRow("single token") << s("ABC") << QStringList({s("ABC")}); 0028 QTest::newRow("space") << s("abc def") << QStringList({s("abc"), s("def")}); 0029 QTest::newRow("linebreak") << s("abc\ndef") << QStringList({s("abc"), s("def")}); 0030 QTest::newRow("leading space") << s(" abc def ") << QStringList({s("abc"), s("def")}); 0031 QTest::newRow("quotes") << s("„abc\" \'def\'") << QStringList({s("abc"), s("def")}); 0032 QTest::newRow("dashes") << s("abc-def–ghi") << QStringList({s("abc"), s("def"), s("ghi")}); 0033 QTest::newRow("short") << s("ab def gh") << QStringList({s("def")}); 0034 QTest::newRow("parenthesis") << s("abc(def)") << QStringList({s("abc"), s("def")}); 0035 QTest::newRow("numbers") << s("01 abc 02 def") << QStringList({s("abc"), s("def")}); 0036 QTest::newRow("ampersand") << s("abc&def") << QStringList({s("abc"), s("def")}); 0037 QTest::newRow("comma") << s("abc, def.") << QStringList({s("abc"), s("def")}); 0038 0039 QTest::newRow("SFO") << s("SFO/SAN FRANCISCO INTERNATIONAL") << QStringList({s("SFO"), s("SAN"), s("FRANCISCO"), s("INTERNATIONAL")}); 0040 } 0041 0042 void testTokenize() 0043 { 0044 QFETCH(QString, text); 0045 QFETCH(QStringList, tokens); 0046 0047 AirportNameTokenizer tokenizer(text); 0048 const auto out = tokenizer.toStringList(); 0049 QCOMPARE(out, tokens); 0050 } 0051 }; 0052 0053 QTEST_APPLESS_MAIN(AirportNameTokenizerTest) 0054 0055 #include "airportnametokenizertest.moc"