|
1
2
3
4
5
6
7
8
9
10
11
12
|
/*
* File: test_speed.cpp
* Author: mlenart
*
* Created on 24 październik 2013, 17:47
*/
#include <cstdlib>
#include <fstream>
#include "fsa.hpp"
#include "utils.hpp"
|
|
13
|
//#define NDEBUG
|
|
14
15
16
17
18
19
20
21
22
23
|
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
validate(argc == 3, "Must provide exactly two arguments - FSA filename and test data filename.");
const unsigned char* fsaData = readFile(argv[1]);
StringDeserializer deserializer;
|
|
24
|
FSA<char*>* fsa = FSA<char*>::getFSA(fsaData, deserializer);
|
|
25
26
27
|
ifstream ifs;
// ifs.exceptions(std::ifstream::failbit | std::ifstream::badbit);
ifs.open(argv[2], ios::binary);
|
|
28
29
30
31
|
char line[65536];
int recognized = 0;
int unrecognized = 0;
while (ifs.getline(line, 65536, '\n')) {
|
|
32
|
char* val;
|
|
33
|
if (fsa->tryToRecognize(line, val)) {
|
|
34
35
|
// printf("%s: *OK*\n", line);
recognized++;
|
|
36
37
|
}
else {
|
|
38
|
unrecognized++;
|
|
39
|
// exit(1);
|
|
40
|
// printf("%s: NOT FOUND\n", line);
|
|
41
42
|
}
}
|
|
43
44
45
|
cout << "recognized: " << recognized << endl;
cout << "unrecognized: " << unrecognized << endl;
cout << "total: " << (recognized + unrecognized) << endl;
|
|
46
|
// cout << "transitions visited: " << fsa->transitionsCount() << endl;
|
|
47
48
|
return 0;
}
|