File indexing completed on 2024-04-28 05:50:33

0001 /*
0002     SPDX-FileCopyrightText: 2014 Kurt Hindenburg <kurt.hindenburg@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 // Own
0008 #include "CharacterWidthTest.h"
0009 
0010 // KDE
0011 #include <QTest>
0012 
0013 #include "../characters/Character.h"
0014 #include "konsoleprivate_export.h"
0015 
0016 using namespace Konsole;
0017 
0018 void CharacterWidthTest::testWidth_data()
0019 {
0020     QTest::addColumn<uint>("character");
0021     QTest::addColumn<int>("width");
0022 
0023     /* This is a work in progress.... */
0024 
0025     /* konsole_wcwidth uses -1 C0/C1 and DEL */
0026     QTest::newRow("0x007F") << uint(0x007F) << -1;
0027 
0028     QTest::newRow("0x0300") << uint(0x0300) << 0;
0029     QTest::newRow("0x070F") << uint(0x070F) << 0;
0030     QTest::newRow("0x1160") << uint(0x1160) << 0;
0031     QTest::newRow("0x10300") << uint(0x10300) << 1;
0032 
0033     QTest::newRow("a") << uint('a') << 1;
0034     QTest::newRow("0x00AD") << uint(0x00AD) << 1;
0035     QTest::newRow("0x00A0") << uint(0x00A0) << 1;
0036     QTest::newRow("0x10FB") << uint(0x10FB) << 1;
0037     QTest::newRow("0xFF76") << uint(0xFF76) << 1;
0038     QTest::newRow("0x103A0") << uint(0x103A0) << 1;
0039     QTest::newRow("0x10A06") << uint(0x10A06) << 0;
0040 
0041     QTest::newRow("0x3000") << uint(0x3000) << 2;
0042     QTest::newRow("0x300a") << uint(0x300a) << 2;
0043     QTest::newRow("0x300b") << uint(0x300b) << 2;
0044     QTest::newRow("0xFF01") << uint(0xFF01) << 2;
0045     QTest::newRow("0xFF5F") << uint(0xFF5F) << 2;
0046     QTest::newRow("0xFF60") << uint(0xFF60) << 2;
0047     QTest::newRow("0xFFe0") << uint(0xFFe6) << 2;
0048 
0049     QTest::newRow("0x1F943 tumbler glass") << uint(0x1F943) << 2;
0050     QTest::newRow("0x1F944 spoon") << uint(0x1F944) << 2;
0051 
0052     QTest::newRow("0x26A1  high voltage sign (BUG 378124)") << uint(0x026A1) << 2;
0053     QTest::newRow("0x2615  hot beverage (BUG 392171)") << uint(0x02615) << 2;
0054     QTest::newRow("0x26EA  church (BUG 392171)") << uint(0x026EA) << 2;
0055     QTest::newRow("0x1D11E musical symbol g clef (BUG 339439)") << uint(0x1D11E) << 1;
0056 }
0057 
0058 void CharacterWidthTest::testWidth()
0059 {
0060     QFETCH(uint, character);
0061 
0062     QTEST(Character::width(character), "width");
0063 }
0064 
0065 QTEST_GUILESS_MAIN(CharacterWidthTest)
0066 
0067 #include "moc_CharacterWidthTest.cpp"