File indexing completed on 2024-05-12 05:17:32
0001 /* 0002 SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "asn1/uperdecoder.h" 0007 #include <asn1/uperdecoder.cpp> 0008 #include <asn1/bitvectorview.cpp> 0009 0010 #include <QDebug> 0011 #include <QObject> 0012 #include <QTest> 0013 0014 using namespace KItinerary; 0015 0016 class UPERDecoderTest : public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void testReadNumbers() 0021 { 0022 auto data = QByteArray::fromHex("723004D580D1845E168AEAE4C2D2D840845CAC5C500550E8"); 0023 UPERDecoder d(BitVectorView(std::string_view(data.constData(), data.size()))); 0024 QCOMPARE(d.readBoolean(), false); 0025 QCOMPARE(d.readBitset<4>(), std::bitset<4>(0b1110)); 0026 QCOMPARE(d.offset(), 5); 0027 QCOMPARE(d.readBoolean(), false); 0028 QCOMPARE(d.readBitset<14>(), std::bitset<14>(0b10001100000000)); 0029 QCOMPARE(d.offset(), 20); 0030 QCOMPARE(d.readConstrainedWholeNumber(1, 32000), 9901); 0031 QCOMPARE(d.offset(), 35); 0032 QCOMPARE(d.readConstrainedWholeNumber(2016, 2269), 2022); 0033 QCOMPARE(d.offset(), 43); 0034 QCOMPARE(d.readConstrainedWholeNumber(1, 366), 281); 0035 QCOMPARE(d.offset(), 52); 0036 QCOMPARE(d.readConstrainedWholeNumber(0, 1440), 559); 0037 QCOMPARE(d.offset(), 63); 0038 QCOMPARE(d.readUtf8String(), QLatin1StringView("Eurail B.V.")); 0039 QCOMPARE(d.offset(), 159); 0040 QCOMPARE(d.readBoolean(), false); 0041 QCOMPARE(d.readBoolean(), false); 0042 QCOMPARE(d.readBoolean(), true); 0043 QCOMPARE(d.offset(), 162); 0044 0045 data = QByteArray::fromHex("22FB162E1BC9"); 0046 d = UPERDecoder(BitVectorView(std::string_view(data.constData(), data.size()))); 0047 d.seek(13); 0048 QCOMPARE(d.readIA5String(4, 4), "1187"); 0049 } 0050 }; 0051 0052 QTEST_APPLESS_MAIN(UPERDecoderTest) 0053 0054 #include "uperdecodertest.moc"