2009-04-30 10:01:54 +02:00
|
|
|
|
2009-05-20 10:37:41 +02:00
|
|
|
#include "qstringbuilder.h"
|
|
|
|
|
|
2009-04-30 10:01:54 +02:00
|
|
|
#include <QDebug>
|
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
|
|
#include <qtest.h>
|
|
|
|
|
|
|
|
|
|
|
2009-05-20 10:37:41 +02:00
|
|
|
#define COMPARE(a, b) QCOMPARE(a, b)
|
|
|
|
|
//#define COMPARE(a, b)
|
|
|
|
|
|
2009-05-20 11:48:29 +02:00
|
|
|
#define SEP(s) qDebug() << "\n------- " s " ----------";
|
|
|
|
|
|
2009-04-30 10:01:54 +02:00
|
|
|
class tst_qstringbuilder : public QObject
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
tst_qstringbuilder();
|
|
|
|
|
|
|
|
|
|
private slots:
|
2009-05-20 11:48:29 +02:00
|
|
|
void separator_2() { SEP("string + string (builder first)"); }
|
2009-04-30 10:29:48 +02:00
|
|
|
void b_2_l1literal();
|
|
|
|
|
void s_2_l1string();
|
2009-05-20 11:48:29 +02:00
|
|
|
|
|
|
|
|
void separator_3() { SEP("3 strings"); }
|
|
|
|
|
void b_3_l1literal();
|
2009-04-30 10:29:48 +02:00
|
|
|
void s_3_l1string();
|
2009-05-20 11:48:29 +02:00
|
|
|
|
|
|
|
|
void separator_4() { SEP("4 strings"); }
|
|
|
|
|
void b_4_l1literal();
|
2009-04-30 10:29:48 +02:00
|
|
|
void s_4_l1string();
|
2009-05-20 11:48:29 +02:00
|
|
|
|
|
|
|
|
void separator_5() { SEP("5 strings"); }
|
|
|
|
|
void b_5_l1literal();
|
2009-05-20 10:37:41 +02:00
|
|
|
void s_5_l1string();
|
2009-05-20 11:48:29 +02:00
|
|
|
|
|
|
|
|
void separator_6() { SEP("4 chars"); }
|
|
|
|
|
void b_string_4_char();
|
2009-04-30 10:29:48 +02:00
|
|
|
void s_string_4_char();
|
2009-05-20 11:48:29 +02:00
|
|
|
|
|
|
|
|
void separator_7() { SEP("char + string + char"); }
|
|
|
|
|
void b_char_string_char();
|
2009-05-20 10:37:41 +02:00
|
|
|
void s_char_string_char();
|
2009-04-30 10:01:54 +02:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
const QLatin1Literal l1literal;
|
|
|
|
|
const QLatin1String l1string;
|
2009-04-30 10:29:48 +02:00
|
|
|
const QString string;
|
|
|
|
|
const char achar;
|
2009-04-30 10:01:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tst_qstringbuilder::tst_qstringbuilder()
|
2009-04-30 10:29:48 +02:00
|
|
|
: l1literal("some literal"),
|
|
|
|
|
l1string("some literal"),
|
|
|
|
|
string(l1string),
|
|
|
|
|
achar('c')
|
2009-04-30 10:01:54 +02:00
|
|
|
{}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::b_2_l1literal()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1literal % l1literal; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, l1string + l1string);
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::b_3_l1literal()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1literal % l1literal % l1literal; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, l1string + l1string + l1string);
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::b_4_l1literal()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1literal % l1literal % l1literal % l1literal; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, l1string + l1string + l1string + l1string);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tst_qstringbuilder::b_5_l1literal()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1literal % l1literal % l1literal % l1literal %l1literal; }
|
|
|
|
|
COMPARE(result, l1string + l1string + l1string + l1string + l1string);
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::b_string_4_char()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
2009-05-20 10:37:41 +02:00
|
|
|
QBENCHMARK { result = string + achar + achar + achar + achar; }
|
|
|
|
|
COMPARE(result, QString(string % achar % achar % achar % achar));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tst_qstringbuilder::b_char_string_char()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = achar + string + achar; }
|
|
|
|
|
COMPARE(result, QString(achar % string % achar));
|
2009-04-30 10:29:48 +02:00
|
|
|
}
|
2009-04-30 10:01:54 +02:00
|
|
|
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::s_2_l1string()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1string + l1string; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, QString(l1literal % l1literal));
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::s_3_l1string()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1string + l1string + l1string; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, QString(l1literal % l1literal % l1literal));
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::s_4_l1string()
|
2009-04-30 10:01:54 +02:00
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1string + l1string + l1string + l1string; }
|
2009-05-20 10:37:41 +02:00
|
|
|
COMPARE(result, QString(l1literal % l1literal % l1literal % l1literal));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tst_qstringbuilder::s_5_l1string()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = l1string + l1string + l1string + l1string + l1string; }
|
|
|
|
|
COMPARE(result, QString(l1literal % l1literal % l1literal % l1literal % l1literal));
|
2009-04-30 10:01:54 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:29:48 +02:00
|
|
|
void tst_qstringbuilder::s_string_4_char()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
2009-05-20 10:37:41 +02:00
|
|
|
QBENCHMARK { result = string + achar + achar + achar + achar; }
|
|
|
|
|
COMPARE(result, QString(string % achar % achar % achar % achar));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void tst_qstringbuilder::s_char_string_char()
|
|
|
|
|
{
|
|
|
|
|
QString result;
|
|
|
|
|
QBENCHMARK { result = achar + string + achar; }
|
|
|
|
|
COMPARE(result, QString(achar % string % achar));
|
2009-04-30 10:29:48 +02:00
|
|
|
}
|
|
|
|
|
|
2009-04-30 10:01:54 +02:00
|
|
|
QTEST_MAIN(tst_qstringbuilder)
|
|
|
|
|
|
|
|
|
|
#include "main.moc"
|