File indexing completed on 2024-04-21 04:41:07

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <../src/generator/indexeddatatable.cpp>
0008 
0009 #include <QTest>
0010 
0011 #define S(x) QStringLiteral(x)
0012 
0013 class IndexedDataTableTest : public QObject
0014 {
0015     Q_OBJECT
0016 private Q_SLOTS:
0017     void testSuffixCompression()
0018     {
0019         StringTable strTab;
0020 
0021         // suffix
0022         strTab.addString(S("M4"));
0023         strTab.addString(S("4"));
0024         QCOMPARE(strTab.stringOffset(S("M4")), 0);
0025         QCOMPARE(strTab.stringOffset(S("4")), 1);
0026 
0027         // prefix
0028         strTab.addString(S("S7"));
0029         QCOMPARE(strTab.stringOffset(S("S7")), 3);
0030         strTab.addString(S("S75"));
0031         QCOMPARE(strTab.stringOffset(S("S7")), 3);
0032         QCOMPARE(strTab.stringOffset(S("S75")), 6);
0033 
0034         // suffix upgrade
0035         strTab.addString(S("XS75"));
0036         QCOMPARE(strTab.stringOffset(S("XS75")), 6);
0037         QCOMPARE(strTab.stringOffset(S("S75")), 7);
0038 
0039         // empty entry
0040         strTab.addString(QString()); // should not add
0041         QCOMPARE(strTab.stringOffset(QString()), 2); // first teriminator element
0042     }
0043 };
0044 
0045 QTEST_GUILESS_MAIN(IndexedDataTableTest)
0046 
0047 #include "indexeddatatabletest.moc"