1 /*******************************************************************************
3 This file is part of mDictionary.
5 mDictionary is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 mDictionary is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with mDictionary. If not, see <http://www.gnu.org/licenses/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
25 void XdxfTest::getNew() {
27 XdxfPlugin xdxfPlugin(this);
28 Settings *settings=new Settings;
29 settings->setValue("path","../tests/dict.xdxf");
30 CommonDictInterface *xdxfPlugin2 = xdxfPlugin.getNew(settings);
32 QList<Translation*> te6=xdxfPlugin2->searchWordList("*",8);
33 QCOMPARE(te6.size(),8);
36 void XdxfTest::searchFile() {
38 XdxfPlugin xdxfPluginB(this);
39 Settings *settings=new Settings;
40 settings->setValue("path","../tests/dict.xdxf");
41 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
43 QCOMPARE(xdxfPlugin->search("."), QString("<key>.</key><t>kropka</t>"));
44 QCOMPARE(xdxfPlugin->search("1"), QString("<key>1</key><t>one</t>"));
45 QCOMPARE(xdxfPlugin->search("test"), QString("<key>test</key><t><c c=\"FF00FF\">kro</c>test01<pos>krowa</pos></t>"));
48 void XdxfTest::makeCache()
50 XdxfPlugin xdxfPluginB(this);
51 Settings *settings=new Settings;
52 settings->setValue("path","../tests/dict.xdxf");
53 settings->setValue("generateCache", "true");
54 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
55 QCOMPARE(xdxfPlugin->settings()->value("cached"),tr("true"));
59 void XdxfTest::searchCache() {
60 XdxfPlugin xdxfPluginB(this);
61 Settings *settings=new Settings;
62 settings->setValue("path","../tests/dict.xdxf");
63 settings->setValue("generateCache", "true");
64 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
66 QCOMPARE(xdxfPlugin->settings()->value("cached"),tr("true"));
67 QCOMPARE(xdxfPlugin->search("."), QString("<key>.</key><t>kropka</t>"));
68 QCOMPARE(xdxfPlugin->search("1"), QString("<key>1</key><t>one</t>"));
69 QCOMPARE(xdxfPlugin->search("test"), QString("<key>test</key><t><c c=\"FF00FF\">kro</c>test01<pos>krowa</pos></t>"));
74 void XdxfTest::searchWordListCache(){
75 XdxfPlugin xdxfPluginB(this);
76 Settings *settings=new Settings;
77 settings->setValue("path","../tests/dict.xdxf");
78 settings->setValue("generateCache", "true");
79 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
81 QList<Translation*> te = xdxfPlugin->searchWordList(".", 10);
83 QCOMPARE(te.size(), 1);
84 QList<Translation*> te2 = xdxfPlugin->searchWordList("1",10);
85 QCOMPARE(te2.size(), 5);
87 QList<Translation*> te3 = xdxfPlugin->searchWordList("1", 2);
88 QCOMPARE(te3.size(), 2);
90 QList<Translation*> te4 = xdxfPlugin->searchWordList("ho*SE", 10);
91 QCOMPARE(te4.at(0)->key(), QString("house"));
93 QList<Translation*> te5 = xdxfPlugin->searchWordList("*");
94 QCOMPARE(te5.size(), 9);
96 QList<Translation*> te6 = xdxfPlugin->searchWordList("*", 8);
97 QCOMPARE(te6.size(), 8);
99 QList<Translation*> te7 = xdxfPlugin->searchWordList("*ou*");
100 QCOMPARE(te7.at(0)->key(), QString("house"));
102 QList<Translation*> te8 = xdxfPlugin->searchWordList("1?");
103 QCOMPARE(te8.at(0)->key(), QString("10"));
105 QList<Translation*> te9 = xdxfPlugin->searchWordList("1???");
106 QCOMPARE(te9.at(0)->key(), QString("1000"));
108 QList<Translation*> te10 = xdxfPlugin->searchWordList("1????*");
109 QCOMPARE(te10.at(0)->key(), QString("1 000 000"));
111 QList<Translation*> te11 = xdxfPlugin->searchWordList("h**?*?**e");
112 QCOMPARE(te11.at(0)->key(), QString("house"));
117 void XdxfTest::searchWordListFile() {
119 XdxfPlugin xdxfPluginB(this);
120 Settings *settings=new Settings;
121 settings->setValue("path","../tests/dict.xdxf");
122 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
124 QList<Translation*> te = xdxfPlugin->searchWordList(".", 10);
126 QCOMPARE(te.size(), 1);
127 QList<Translation*> te2 = xdxfPlugin->searchWordList("1",10);
128 QCOMPARE(te2.size(), 5);
130 QList<Translation*> te3 = xdxfPlugin->searchWordList("1", 2);
131 QCOMPARE(te3.size(), 2);
133 QList<Translation*> te4 = xdxfPlugin->searchWordList("ho*SE", 10);
134 QCOMPARE(te4.at(0)->key(), QString("house"));
136 QList<Translation*> te5 = xdxfPlugin->searchWordList("*");
137 QCOMPARE(te5.size(), 9);
139 QList<Translation*> te6 = xdxfPlugin->searchWordList("*", 8);
140 QCOMPARE(te6.size(), 8);
142 QList<Translation*> te7 = xdxfPlugin->searchWordList("*ou*");
143 QCOMPARE(te7.at(0)->key(), QString("house"));
145 QList<Translation*> te8 = xdxfPlugin->searchWordList("1?");
146 QCOMPARE(te8.at(0)->key(), QString("10"));
148 QList<Translation*> te9 = xdxfPlugin->searchWordList("1???");
149 QCOMPARE(te9.at(0)->key(), QString("1000"));
151 QList<Translation*> te10 = xdxfPlugin->searchWordList("1????*");
152 QCOMPARE(te10.at(0)->key(), QString("1 000 000"));
154 QList<Translation*> te11 = xdxfPlugin->searchWordList("h**?*?**e");
155 QCOMPARE(te11.at(0)->key(), QString("house"));
160 void XdxfTest::stop() {
162 XdxfPlugin xdxfPluginB(this);
163 Settings *settings=new Settings;
164 settings->setValue("path","../tests/dict.xdxf");
165 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
168 QFuture<QList<Translation*> > future = QtConcurrent::run(xdxfPlugin,
169 &CommonDictInterface::searchWordList, string, 10);
170 QList<Translation*> te5 = future.result();
171 QCOMPARE(te5.size(), 9);
177 void XdxfTest::langFrom() {
179 XdxfPlugin xdxfPluginB(this);
180 Settings *settings=new Settings;
181 settings->setValue("path","../tests/dict.xdxf");
182 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
184 QCOMPARE(xdxfPlugin->langFrom(), QString("ENG"));
189 void XdxfTest::timeCache() {
192 QFile File("../tests/time.xml");
193 if(!File.open(QFile::ReadWrite | QFile::Text)) {
194 qDebug()<<"Error: could not open file";
197 QTextStream out(&File);
199 out.seek(out.pos()+1);
202 XdxfPlugin xdxfPluginB(this);
203 Settings *settings=new Settings;
204 settings->setValue("path","../../../../../../dict.xdxf");
205 settings->setValue("generateCache", "true");
206 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
208 out<<"\n<date>" + date.currentDate().toString("dd.MM.yyyy") +" ";
209 out<<timer.currentTime().toString(Qt::TextDate) + "</date>";
210 out<<"\n<type> Cache </type> <time>" << timer.elapsed();
214 xdxfPlugin->search("Bantu");
215 out<<"\n<type> SearchCache-begin </type> <time>" << timer.elapsed();
219 xdxfPlugin->search("level");
220 out<<"\n<type> SearchCache-midle </type> <time>" << timer.elapsed();
224 xdxfPlugin->search("zoril");
225 out<<"\n<type> SearchCache-end </type> <time>" << timer.elapsed();
229 xdxfPlugin->searchWordList("level");
230 out<<"\n<type> SearchWorlListCache </type> <time>" << timer.elapsed();
236 void XdxfTest::timeFile() {
239 QFile File("../tests/time.xml");
240 if(!File.open(QFile::ReadWrite | QFile::Text)) {
241 qDebug()<<"Error: could not open file";
244 QTextStream out(&File);
246 out.seek(out.pos()+1);
248 XdxfPlugin xdxfPluginB(this);
249 Settings *settings=new Settings;
250 settings->setValue("path","../../../../../../dict.xdxf");
251 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
254 xdxfPlugin->search("Bantu");
255 out<<"\n<type> SearchFile-begin </type> <time>" << timer.elapsed();
259 xdxfPlugin->search("level");
260 out<<"\n<type> SearchFile-midle </type> <time>" << timer.elapsed();
264 xdxfPlugin->search("zoril");
265 out<<"\n<type> SearchFile-end </type> <time>" << timer.elapsed();
269 xdxfPlugin->searchWordList("level");
270 out<<"\n<type> SearchWordListFile </type> <time>" << timer.elapsed();
276 void XdxfTest::timeCacheNormalize() {
279 QFile File("../tests/time.xml");
280 if(!File.open(QFile::ReadWrite | QFile::Text)) {
281 qDebug()<<"Error: could not open file";
284 QTextStream out(&File);
286 out.seek(out.pos()+1);
289 XdxfPlugin xdxfPluginB(this);
290 Settings *settings=new Settings;
291 settings->setValue("path","../../../../../../dict.xdxf");
292 settings->setValue("generateCache", "true");
293 settings->setValue("strip_accents", "true");
294 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
296 out<<"\n<type> Cache with strip accent </type> <time>" << timer.elapsed();
300 xdxfPlugin->search("Bantu");
301 out<<"\n<type> SearchCache-begin with strip accent </type> <time>" << timer.elapsed();
305 xdxfPlugin->search("level");
306 out<<"\n<type> SearchCache-midle with strip accent </type> <time>" << timer.elapsed();
310 xdxfPlugin->search("zoril");
311 out<<"\n<type> SearchCache-end with strip accent </type> <time>" << timer.elapsed();
315 xdxfPlugin->searchWordList("level");
316 out<<"\n<type> SearchWorlListCache with strip accent </type> <time>" << timer.elapsed();
322 void XdxfTest::timeFileNormalize(){
325 QFile File("../tests/time.xml");
326 if(!File.open(QFile::ReadWrite | QFile::Text)) {
327 qDebug()<<"Error: could not open file";
330 QTextStream out(&File);
332 out.seek(out.pos()+1);
334 XdxfPlugin xdxfPluginB(this);
335 Settings *settings=new Settings;
336 settings->setValue("path","../../../../../../dict.xdxf");
337 settings->setValue("strip_accents", "true");
338 CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
341 xdxfPlugin->search("Bantu");
342 out<<"\n<type> SearchFile-begin with strip accent </type> <time>" << timer.elapsed();
346 xdxfPlugin->search("level");
347 out<<"\n<type> SearchFile-midle with strip accent </type> <time>" << timer.elapsed();
351 xdxfPlugin->search("zoril");
352 out<<"\n<type> SearchFile-end with strip accent </type> <time>" << timer.elapsed();
356 xdxfPlugin->searchWordList("level");
357 out<<"\n<type> SearchWordListFile with strip accent </type> <time>" << timer.elapsed();
365 //#include "testqstring.moc"