7 changed files with 133 additions and 9 deletions
@ -0,0 +1,3 @@ |
|||
TEMPLATE = subdirs |
|||
SUBDIRS += \ |
|||
xmlspace |
@ -0,0 +1,98 @@ |
|||
#include <QString> |
|||
#include <QRegularExpression> |
|||
#include <QtTest> |
|||
|
|||
bool startsWithOrEndsWithSpace(const QString &s, int flag) |
|||
{ |
|||
if (flag == 0) { |
|||
return (s.contains(QRegularExpression("^\\s")) || s.contains(QRegularExpression("\\s$"))); |
|||
} else if (flag == 1) { |
|||
return (s.contains(QRegularExpression("^\\s|\\s$"))); |
|||
} else if (flag == 2) { |
|||
static QRegularExpression re("^\\s|\\s$"); |
|||
return s.contains(re); |
|||
} else if (flag == 3) { |
|||
return s.startsWith(QLatin1Char(' ')) || s.endsWith(QLatin1Char(' ')) |
|||
|| s.startsWith(QLatin1Char('\t')) || s.endsWith(QLatin1Char('\t')) |
|||
|| s.startsWith(QLatin1Char('\r')) || s.endsWith(QLatin1Char('\r')) |
|||
|| s.startsWith(QLatin1Char('\n')) || s.endsWith(QLatin1Char('\n')); |
|||
} else if (flag == 4) { |
|||
//static QString spaces(" \t\n\r");
|
|||
QString spaces(QStringLiteral(" \t\n\r")); |
|||
return !s.isEmpty() && (spaces.contains(s.at(0))||spaces.contains(s.at(s.length()-1))); |
|||
} else { |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
class XmlspaceTest : public QObject |
|||
{ |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
XmlspaceTest(); |
|||
|
|||
private Q_SLOTS: |
|||
void teststartsWithOrEndsWithSpace(); |
|||
void teststartsWithOrEndsWithSpace_data(); |
|||
|
|||
void testCase1(); |
|||
void testCase1_data(); |
|||
}; |
|||
|
|||
XmlspaceTest::XmlspaceTest() |
|||
{ |
|||
} |
|||
|
|||
void XmlspaceTest::teststartsWithOrEndsWithSpace() |
|||
{ |
|||
QFETCH(QString, data); |
|||
QFETCH(bool, res); |
|||
|
|||
for (int f=0; f<5; ++f) { |
|||
QCOMPARE(startsWithOrEndsWithSpace(data, f), res); |
|||
} |
|||
} |
|||
|
|||
void XmlspaceTest::teststartsWithOrEndsWithSpace_data() |
|||
{ |
|||
//QTest::addColumn<int>("flag");
|
|||
QTest::addColumn<QString>("data"); |
|||
QTest::addColumn<bool>("res"); |
|||
|
|||
QTest::newRow("")<<QString()<<false; |
|||
QTest::newRow("")<<""<<false; |
|||
QTest::newRow("")<<" "<<true; |
|||
QTest::newRow("")<<"A B"<<false; |
|||
QTest::newRow("")<<" A B"<<true; |
|||
QTest::newRow("")<<"A B\t"<<true; |
|||
QTest::newRow("")<<" \tA B\t"<<true; |
|||
QTest::newRow("")<<" A B "<<true; |
|||
} |
|||
|
|||
void XmlspaceTest::testCase1() |
|||
{ |
|||
QFETCH(int, flag); |
|||
|
|||
QStringList list; |
|||
list<<""<<" "<<"A"<<"A B"<<" A"<<"B\t"<<" "<<" A B "; |
|||
|
|||
QBENCHMARK { |
|||
foreach(QString s, list) |
|||
startsWithOrEndsWithSpace(s, flag); |
|||
} |
|||
} |
|||
|
|||
void XmlspaceTest::testCase1_data() |
|||
{ |
|||
QTest::addColumn<int>("flag"); |
|||
QTest::newRow("0") << 0; |
|||
QTest::newRow("1") << 1; |
|||
QTest::newRow("2") << 2; |
|||
QTest::newRow("3") << 3; |
|||
QTest::newRow("4") << 4; |
|||
} |
|||
|
|||
QTEST_APPLESS_MAIN(XmlspaceTest) |
|||
|
|||
#include "tst_xmlspacetest.moc" |
@ -0,0 +1,13 @@ |
|||
QT += testlib #xlsx # xlsx-private |
|||
CONFIG += testcase |
|||
DEFINES += XLSX_TEST |
|||
|
|||
TARGET = tst_xmlspacetest |
|||
CONFIG += console |
|||
CONFIG -= app_bundle |
|||
|
|||
TEMPLATE = app |
|||
|
|||
|
|||
SOURCES += tst_xmlspacetest.cpp |
|||
DEFINES += SRCDIR=\\\"$$PWD/\\\" |
Loading…
Reference in new issue