/
pt_mlocationdatabase.cpp
105 lines (89 loc) · 2.67 KB
/
pt_mlocationdatabase.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/***************************************************************************
**
** Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (directui@nokia.com)
**
** This file is part of libmeegotouch.
**
** If you have questions regarding the use of this file, please contact
** Nokia at directui@nokia.com.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation
** and appearing in the file LICENSE.LGPL included in the packaging
** of this file.
**
****************************************************************************/
#include "pt_mlocationdatabase.h"
#include "mlocationdatabase.h"
#include "mcity.h"
#include "mcountry.h"
using ML10N::MCity;
using ML10N::MLocationDatabase;
void Pt_MLocationDatabase::initTestCase()
{
}
void Pt_MLocationDatabase::cleanupTestCase()
{
}
void Pt_MLocationDatabase::init()
{
}
void Pt_MLocationDatabase::cleanup()
{
}
void Pt_MLocationDatabase::benchmarkMLocationDatabaseConstructorDestructor()
{
QBENCHMARK {
MLocationDatabase *db = new MLocationDatabase;
delete db;
}
}
void Pt_MLocationDatabase::benchmarkTimeZone()
{
MLocationDatabase db;
QList<MCity> cities = db.cities();
// do only run the benchmark if we were able to load
// some cities from the meegotouch-cities-*
// package.
if (cities.count() < 10) {
qWarning( "loading of city list failed, skipping test" );
return;
}
qDebug() << "number of cities = " << cities.count();
QBENCHMARK {
foreach (MCity city, cities) {
city.timeZone();
}
}
}
void Pt_MLocationDatabase::benchmarkMatchingCities()
{
QString pattern("ber");
QStringList someExpectedMatches
= (QStringList() << "Berlin" << "Bern");
MLocationDatabase db;
QList<MCity> cities = db.cities();
// do only run the benchmark if we were able to load
// some cities from the meegotouch-cities-*
// package.
if (cities.count() < 10) {
qWarning( "loading of city list failed, skipping test" );
return;
}
QList<MCity> matchingCities = db.matchingCities(pattern);
QStringList matchingCitiesNames;
foreach (MCity city, matchingCities) {
matchingCitiesNames << city.englishName();
}
foreach (QString expectedMatch, someExpectedMatches) {
QVERIFY2(matchingCitiesNames.contains(expectedMatch),
"expected match not found");
}
QBENCHMARK {
db.matchingCities(pattern);
}
}
QTEST_GUILESS_MAIN(Pt_MLocationDatabase);