File indexing completed on 2024-05-12 05:17:29
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "../src/lib/jsapi/bitarray.h" 0008 0009 #include <QByteArray> 0010 #include <QObject> 0011 #include <QTest> 0012 0013 using namespace KItinerary::JsApi; 0014 0015 class BitArrayTest : public QObject 0016 { 0017 Q_OBJECT 0018 private Q_SLOTS: 0019 void testReadNumber() 0020 { 0021 BitArray b(QByteArray::fromBase64("IBTCCBAC80gAAAAAAAQH6+9YD9WQiYlJAAAAAAAAZYSaAXLGTgFAAAAAAApgAEigkABAC2UjGEDlwAPyHE5wAAAALw==")); 0022 0023 QCOMPARE(b.readNumberMSB(0, 8), 0x20); 0024 QCOMPARE(b.readNumberMSB(0, 16), 0x2014); 0025 QCOMPARE(b.readNumberMSB(0, 24), 0x2014C2); 0026 QCOMPARE(b.readNumberMSB(0, 32), 0x2014C208); 0027 0028 QCOMPARE(b.readNumberMSB(0, 4), 0x2); 0029 0030 QCOMPARE(b.readNumberMSB(14*8 + 4, 24), 8306421); 0031 QCOMPARE(b.readNumberMSB(18*8 + 3, 24), 8301700); 0032 QCOMPARE(b.readNumberMSB(22*8 + 2, 16), 9508); 0033 0034 QCOMPARE(b.readNumberMSB(31*8 + 2, 7), 9); 0035 QCOMPARE(b.readNumberMSB(32*8 + 3, 4), 0xD); 0036 0037 QCOMPARE(b.readNumberMSB(58*8 + 4, 32), 1059177703); 0038 QCOMPARE(b.readNumberMSB(58*8, 36), 1059177703); 0039 0040 QCOMPARE(b.readNumberMSB(32*8 + 7, 49), 1592464900416); 0041 0042 // exactly containing the last bit 0043 QCOMPARE(b.readNumberMSB(66*8, 8), 0x2F); 0044 0045 // out of bounds reads 0046 QCOMPARE(b.readNumberMSB(66*8, 9), 0); 0047 QCOMPARE(b.readNumberMSB(67*8, 1), 0); 0048 } 0049 }; 0050 0051 QTEST_GUILESS_MAIN(BitArrayTest) 0052 0053 #include "bitarraytest.moc"