Warning, file /network/neochat/autotests/delegatesizehelpertest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // SPDX-FileCopyrightText: 2023 James Graham <james.h.graham@protonmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 0004 #include <QObject> 0005 #include <QTest> 0006 0007 #include "delegatesizehelper.h" 0008 0009 class DelegateSizeHelperTest : public QObject 0010 { 0011 Q_OBJECT 0012 0013 private Q_SLOTS: 0014 void risingPercentage_data(); 0015 void risingPercentage(); 0016 0017 void fallingPercentage_data(); 0018 void fallingPercentage(); 0019 0020 void equalPercentage_data(); 0021 void equalPercentage(); 0022 0023 void equalBreakpoint_data(); 0024 void equalBreakpoint(); 0025 }; 0026 0027 void DelegateSizeHelperTest::risingPercentage_data() 0028 { 0029 QTest::addColumn<qreal>("parentWidth"); 0030 QTest::addColumn<int>("currentPercentageWidth"); 0031 QTest::addColumn<qreal>("currentWidth"); 0032 0033 QTest::newRow("zero") << qreal(0) << int(0) << qreal(0); 0034 QTest::newRow("one hundred") << qreal(100) << int(0) << qreal(0); 0035 QTest::newRow("one fifty") << qreal(150) << int(50) << qreal(75); 0036 QTest::newRow("two hundred") << qreal(200) << int(100) << qreal(200); 0037 QTest::newRow("three hundred") << qreal(300) << int(100) << qreal(300); 0038 } 0039 0040 void DelegateSizeHelperTest::risingPercentage() 0041 { 0042 QFETCH(qreal, parentWidth); 0043 QFETCH(int, currentPercentageWidth); 0044 QFETCH(qreal, currentWidth); 0045 0046 DelegateSizeHelper delegateSizeHelper; 0047 delegateSizeHelper.setStartBreakpoint(100); 0048 delegateSizeHelper.setEndBreakpoint(200); 0049 delegateSizeHelper.setStartPercentWidth(0); 0050 delegateSizeHelper.setEndPercentWidth(100); 0051 0052 delegateSizeHelper.setParentWidth(parentWidth); 0053 0054 QCOMPARE(delegateSizeHelper.currentPercentageWidth(), currentPercentageWidth); 0055 QCOMPARE(delegateSizeHelper.currentWidth(), currentWidth); 0056 } 0057 0058 void DelegateSizeHelperTest::fallingPercentage_data() 0059 { 0060 QTest::addColumn<qreal>("parentWidth"); 0061 QTest::addColumn<int>("currentPercentageWidth"); 0062 QTest::addColumn<qreal>("currentWidth"); 0063 0064 QTest::newRow("zero") << qreal(0) << int(100) << qreal(0); 0065 QTest::newRow("one hundred") << qreal(100) << int(100) << qreal(100); 0066 QTest::newRow("one fifty") << qreal(150) << int(50) << qreal(75); 0067 QTest::newRow("two hundred") << qreal(200) << int(0) << qreal(0); 0068 QTest::newRow("three hundred") << qreal(300) << int(0) << qreal(0); 0069 } 0070 0071 void DelegateSizeHelperTest::fallingPercentage() 0072 { 0073 QFETCH(qreal, parentWidth); 0074 QFETCH(int, currentPercentageWidth); 0075 QFETCH(qreal, currentWidth); 0076 0077 DelegateSizeHelper delegateSizeHelper; 0078 delegateSizeHelper.setStartBreakpoint(100); 0079 delegateSizeHelper.setEndBreakpoint(200); 0080 delegateSizeHelper.setStartPercentWidth(100); 0081 delegateSizeHelper.setEndPercentWidth(0); 0082 0083 delegateSizeHelper.setParentWidth(parentWidth); 0084 0085 QCOMPARE(delegateSizeHelper.currentPercentageWidth(), currentPercentageWidth); 0086 QCOMPARE(delegateSizeHelper.currentWidth(), currentWidth); 0087 } 0088 0089 void DelegateSizeHelperTest::equalPercentage_data() 0090 { 0091 QTest::addColumn<qreal>("parentWidth"); 0092 QTest::addColumn<int>("currentPercentageWidth"); 0093 QTest::addColumn<qreal>("currentWidth"); 0094 0095 QTest::newRow("zero") << qreal(0) << int(50) << qreal(0); 0096 QTest::newRow("one hundred") << qreal(100) << int(50) << qreal(50); 0097 QTest::newRow("one fifty") << qreal(150) << int(50) << qreal(75); 0098 QTest::newRow("two hundred") << qreal(200) << int(50) << qreal(100); 0099 QTest::newRow("three hundred") << qreal(300) << int(50) << qreal(150); 0100 } 0101 0102 void DelegateSizeHelperTest::equalPercentage() 0103 { 0104 QFETCH(qreal, parentWidth); 0105 QFETCH(int, currentPercentageWidth); 0106 QFETCH(qreal, currentWidth); 0107 0108 DelegateSizeHelper delegateSizeHelper; 0109 delegateSizeHelper.setStartBreakpoint(100); 0110 delegateSizeHelper.setEndBreakpoint(200); 0111 delegateSizeHelper.setStartPercentWidth(50); 0112 delegateSizeHelper.setEndPercentWidth(50); 0113 0114 delegateSizeHelper.setParentWidth(parentWidth); 0115 0116 QCOMPARE(delegateSizeHelper.currentPercentageWidth(), currentPercentageWidth); 0117 QCOMPARE(delegateSizeHelper.currentWidth(), currentWidth); 0118 } 0119 0120 void DelegateSizeHelperTest::equalBreakpoint_data() 0121 { 0122 QTest::addColumn<int>("startPercentageWidth"); 0123 QTest::addColumn<int>("endPercentageWidth"); 0124 QTest::addColumn<int>("currentPercentageWidth"); 0125 QTest::addColumn<qreal>("currentWidth"); 0126 0127 QTest::newRow("start higher") << int(100) << int(0) << int(-1) << qreal(0); 0128 QTest::newRow("equal") << int(50) << int(50) << int(50) << qreal(500); 0129 QTest::newRow("end higher") << int(0) << int(100) << int(-1) << qreal(0); 0130 } 0131 0132 /** 0133 * We expect a default return except in the case where the the two percentages are 0134 * equal as that case can be calculated without dividing by zero. 0135 */ 0136 void DelegateSizeHelperTest::equalBreakpoint() 0137 { 0138 QFETCH(int, startPercentageWidth); 0139 QFETCH(int, endPercentageWidth); 0140 QFETCH(int, currentPercentageWidth); 0141 QFETCH(qreal, currentWidth); 0142 0143 DelegateSizeHelper delegateSizeHelper; 0144 delegateSizeHelper.setStartBreakpoint(100); 0145 delegateSizeHelper.setEndBreakpoint(100); 0146 delegateSizeHelper.setStartPercentWidth(startPercentageWidth); 0147 delegateSizeHelper.setEndPercentWidth(endPercentageWidth); 0148 0149 delegateSizeHelper.setParentWidth(1000); 0150 0151 QCOMPARE(delegateSizeHelper.currentPercentageWidth(), currentPercentageWidth); 0152 QCOMPARE(delegateSizeHelper.currentWidth(), currentWidth); 0153 } 0154 0155 QTEST_GUILESS_MAIN(DelegateSizeHelperTest) 0156 #include "delegatesizehelpertest.moc"