File: pt_mlocationdatabase.cpp

package info (click to toggle)
libmlocale 0.7.8-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 23,412 kB
  • sloc: cpp: 29,597; sh: 631; perl: 350; python: 220; makefile: 26; sed: 7
file content (105 lines) | stat: -rw-r--r-- 2,731 bytes parent folder | download | duplicates (2)
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
105
/***************************************************************************
**
** 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);