File indexing completed on 2024-04-28 05:50:04
0001 /* 0002 * SPDX-License-Identifier: GPL-3.0-or-later 0003 * SPDX-FileCopyrightText: 2020 Johan Ouwerkerk <jm.ouwerkerk@gmail.com> 0004 */ 0005 #include "oath/oath.h" 0006 0007 #include <QTest> 0008 #include <QtDebug> 0009 0010 class LuhnChecksumTest: public QObject 0011 { 0012 Q_OBJECT 0013 private Q_SLOTS: 0014 void testChecksum(void); 0015 void testChecksum_data(void); 0016 }; 0017 0018 static void define_test_case(quint32 value, uint digits, uint expected) 0019 { 0020 static const QString testCase(QLatin1String("%1 (%2) ... %3")); 0021 QTest::newRow(qPrintable(testCase.arg(value).arg(digits).arg(expected))) << value << digits << expected; 0022 } 0023 0024 void LuhnChecksumTest::testChecksum(void) 0025 { 0026 QFETCH(quint32, value); 0027 QFETCH(uint, digits); 0028 QTEST(oath::luhnChecksum(value, digits), "expected"); 0029 } 0030 0031 void LuhnChecksumTest::testChecksum_data(void) 0032 { 0033 QTest::addColumn<quint32>("value"); 0034 QTest::addColumn<uint>("digits"); 0035 QTest::addColumn<uint>("expected"); 0036 0037 define_test_case(0ULL, 1UL, 0UL); 0038 define_test_case(19ULL, 2ULL, 0ULL); 0039 define_test_case(1234567890ULL, 10UL, 3UL); 0040 define_test_case(987654321ULL, 10UL, 7UL); 0041 } 0042 0043 QTEST_APPLESS_MAIN(LuhnChecksumTest) 0044 0045 #include "luhn-checksum.moc"