This commit is contained in:
rjawor 2013-11-12 22:08:37 +01:00
parent 7f062c49e4
commit 3aa4091e4d
7 changed files with 93 additions and 3 deletions

View File

@ -6,6 +6,7 @@ foreach(dir ${ALL_DIRECTORIES})
endforeach(dir)
add_library(concordia SHARED
word_map.cpp
hash_generator.cpp
concordia.cpp
concordia_config.cpp

View File

@ -2,6 +2,7 @@
#include <boost/filesystem.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/serialization/map.hpp>
#include <fstream>
@ -21,6 +22,13 @@ HashGenerator::~HashGenerator() {
vector<int> HashGenerator::generateHash(const string & sentence) {
vector<int> result;
vector<string> tokenTexts;
boost::split(tokenTexts, sentence, boost::is_any_of(" "));
for(vector<string>::iterator it = tokenTexts.begin(); it != tokenTexts.end(); ++it) {
string token = *it;
}
return result;
}

View File

@ -4,8 +4,7 @@
#include <string>
#include <map>
#include <vector>
#include "concordia/concordia_config.hpp"
#include "concordia/concordia_exception.hpp"
/*!
Class for generating a sentence hash.
@ -28,7 +27,7 @@ public:
private:
map<int,string> _wordMap;
map<string,int> _wordMap;
string _wordMapFilename;

View File

@ -1,6 +1,7 @@
add_library(concordia-tests
test_concordia.cpp
test_concordia_config.cpp
test_word_map.cpp
)
target_link_libraries(concordia-tests concordia ${LIBCONFIG_LIB} concordia-tests-common)

View File

@ -0,0 +1,23 @@
#include "tests/unit-tests/unit_tests_globals.hpp"
#include "concordia/word_map.hpp"
#include <string>
using namespace std;
BOOST_AUTO_TEST_SUITE(word_map)
BOOST_AUTO_TEST_CASE( WordCodeTest )
{
WordMap wordMap = WordMap();
BOOST_CHECK_EQUAL(wordMap.getWordCode("abc") , 0);
BOOST_CHECK_EQUAL(wordMap.getWordCode("def") , 1);
BOOST_CHECK_EQUAL(wordMap.getWordCode("abc") , 0);
BOOST_CHECK_EQUAL(wordMap.getWordCode("ghi") , 2);
BOOST_CHECK_EQUAL(wordMap.getWordCode("g") , 3);
BOOST_CHECK_EQUAL(wordMap.getWordCode(".;?") , 4);
BOOST_CHECK_EQUAL(wordMap.getWordCode("g") , 3);
}
BOOST_AUTO_TEST_SUITE_END()

24
concordia/word_map.cpp Normal file
View File

@ -0,0 +1,24 @@
#include "concordia/word_map.hpp"
WordMap::WordMap() throw(ConcordiaException) {
_nextFree = 0;
}
WordMap::~WordMap() {
}
int WordMap::getWordCode(const string & word) {
if (_map.find(word) == _map.end() ) {
int newCode = _nextFree;
_map[word] = newCode;
_nextFree++;
return newCode;
} else {
return _map[word];
}
}

34
concordia/word_map.hpp Normal file
View File

@ -0,0 +1,34 @@
#ifndef WORD_MAP_HDR
#define WORD_MAP_HDR
#include <string>
#include <map>
#include "concordia/concordia_exception.hpp"
/*!
Class for generating a sentence hash.
*/
using namespace std;
class WordMap {
public:
explicit WordMap() throw(ConcordiaException);
/*! Destructor.
*/
virtual ~WordMap();
int getWordCode(const string & word);
private:
map<string,int> _map;
int _nextFree;
};
#endif