[Positioning] Tests: add global set up & tear down
Work on unit tests: - TestUtil: - Add set_up(), that sets up lists of Request, Mobile and AccessPoint, primarily to be used with create_test_csv_file(). - Add public attributes for these lists. - Update create_test_csv_file() to use these lists. - Update InputCSV_test to use new TestUtil. - Add class TestSetUp, a global fixture class. Before all tests off all test suites, it calls TestUtil::set_up(). - Update and clean Makefile.
This commit is contained in:
parent
dbd58f8178
commit
8257e9e67d
|
@ -1,10 +1,6 @@
|
||||||
.PHONY : all test doc clean purge install uninstall style check
|
.PHONY : all test doc clean purge install uninstall style check
|
||||||
|
|
||||||
TEST_DIR = tests
|
TESTS_DIR = tests
|
||||||
TEST_XX = $(TEST_DIR)/tests.cc
|
|
||||||
TEST_OBJ = $(TEST_DIR)/tests.o
|
|
||||||
TESTUTIL_OBJ = $(TEST_DIR)/testutil.o
|
|
||||||
TEST_TARGET = $(TEST_DIR)/tests
|
|
||||||
DOXYGEN_DIR = doc
|
DOXYGEN_DIR = doc
|
||||||
DOXYFILE = Doxyfile
|
DOXYFILE = Doxyfile
|
||||||
|
|
||||||
|
@ -25,7 +21,7 @@ DOXYGEN = doxygen
|
||||||
# Compilation tools and flags
|
# Compilation tools and flags
|
||||||
GXX = g++-4.4
|
GXX = g++-4.4
|
||||||
#DEBUG = -g
|
#DEBUG = -g
|
||||||
TESTSGXXFLAGS = -I$(TEST_DIR) -I.
|
TESTSGXXFLAGS = -I$(TESTS_DIR) -I.
|
||||||
GXXFLAGS = $(DEBUG) -Wall -Wextra
|
GXXFLAGS = $(DEBUG) -Wall -Wextra
|
||||||
LD = $(GXX)
|
LD = $(GXX)
|
||||||
LDFLAGS = -lm -lrt -lboost_program_options
|
LDFLAGS = -lm -lrt -lboost_program_options
|
||||||
|
@ -38,17 +34,26 @@ OBJ = posutil.o stock.o timestamp.o point3d.o referencepoint.o \
|
||||||
inputcsv.o configuration.o userinterface.o input.o
|
inputcsv.o configuration.o userinterface.o input.o
|
||||||
OBJ_NOTEST = posexcept.o
|
OBJ_NOTEST = posexcept.o
|
||||||
|
|
||||||
|
TESTS_XX = $(TESTS_DIR)/tests.cc
|
||||||
|
TESTS_OBJ = $(TESTS_DIR)/tests.o
|
||||||
|
TESTS_TARGET = $(TESTS_DIR)/tests
|
||||||
|
TESTUTIL_OBJ = $(TESTS_DIR)/testutil.o
|
||||||
|
TESTSETUP_OBJ = $(TESTS_DIR)/testsetup.o
|
||||||
|
SOURCE_TESTS = $(OBJ:%.o=$(TESTS_DIR)/%_test.hh)
|
||||||
|
OBJ_TESTS = $(TESTUTIL_OBJ) $(TESTSETUP_OBJ)
|
||||||
|
INCLUDES_TESTS = $(TESTS_DIR)/valuetraits.hh
|
||||||
|
|
||||||
all: $(TARGET)
|
all: $(TARGET)
|
||||||
|
|
||||||
# Generic targets
|
# Generic targets
|
||||||
%: %.o
|
$(TESTS_DIR)/%.o: $(TESTS_DIR)/%.cc $(TESTS_DIR)/%.hh
|
||||||
$(LD) $(LDFLAGS) -o $@ $^
|
$(GXX) $(GXXFLAGS) $(TESTSGXXFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
%.o: %.cc %.hh
|
%.o: %.cc %.hh
|
||||||
$(GXX) $(GXXFLAGS) -c $<
|
$(GXX) $(GXXFLAGS) -c $<
|
||||||
|
|
||||||
$(TEST_DIR)/%_test.o: %.o
|
%: %.o
|
||||||
$(GXX) $(GXXFLAGS) $(TESTSGXXFLAGS) -c $<
|
$(LD) $(LDFLAGS) -o $@ $^
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
userinterface.o: configuration.o
|
userinterface.o: configuration.o
|
||||||
|
@ -67,35 +72,32 @@ input.o: posexcept.o
|
||||||
# Specific targets
|
# Specific targets
|
||||||
$(TARGET): $(OBJ) $(OBJ_NOTEST)
|
$(TARGET): $(OBJ) $(OBJ_NOTEST)
|
||||||
|
|
||||||
$(TEST_XX): $(OBJ:%.o=$(TEST_DIR)/%_test.hh)
|
$(TESTS_XX): $(SOURCE_TESTS)
|
||||||
$(TEST_DIR)/cxxtestgen.pl --error-printer \
|
$(TESTS_DIR)/cxxtestgen.pl --error-printer \
|
||||||
--include=$(TEST_DIR)/valuetraits.hh \
|
--include=$(TESTS_DIR)/valuetraits.hh \
|
||||||
--include=$(TESTUTIL_OBJ:.o=.hh) \
|
--include=$(TESTUTIL_OBJ:.o=.hh) \
|
||||||
-o $@ $^
|
-o $@ $^
|
||||||
|
|
||||||
$(TEST_OBJ): $(TEST_XX) $(OBJ) $(TESTUTIL_OBJ) $(TEST_DIR)/valuetraits.hh
|
$(TESTS_OBJ): $(TESTS_XX) $(OBJ) $(INCLUDES_TESTS)
|
||||||
$(GXX) $(GXXFLAGS) $(TESTSGXXFLAGS) -o $@ -c $<
|
$(GXX) $(GXXFLAGS) $(TESTSGXXFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
$(TESTUTIL_OBJ): $(TESTUTIL_OBJ:.o=.cc) $(TESTUTIL_OBJ:.o=.hh)
|
$(TESTS_TARGET): $(TESTS_OBJ) $(OBJ_TESTS)
|
||||||
$(GXX) $(GXXFLAGS) $(TESTSGXXFLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(TEST_TARGET): $(TEST_OBJ) $(TESTUTIL_OBJ)
|
|
||||||
$(LD) $(LDFLAGS) -o $@ $^ $(OBJ) $(OBJ_NOTEST)
|
$(LD) $(LDFLAGS) -o $@ $^ $(OBJ) $(OBJ_NOTEST)
|
||||||
|
|
||||||
test: $(TEST_TARGET)
|
test: $(TESTS_TARGET)
|
||||||
@$(TEST_TARGET)
|
@$(TESTS_TARGET)
|
||||||
|
|
||||||
doc:
|
doc:
|
||||||
@$(DOXYGEN) $(DOXYFILE)
|
@$(DOXYGEN) $(DOXYFILE)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@$(RM) *~ *.o *.gch *.orig
|
@$(RM) *~ *.o *.gch *.orig
|
||||||
@$(RM) $(TEST_XX) $(TEST_DIR)/*~ $(TEST_DIR)/*.o \
|
@$(RM) $(TESTS_XX) $(TESTS_DIR)/*~ $(TESTS_DIR)/*.o \
|
||||||
$(TEST_DIR)/*.orig
|
$(TESTS_DIR)/*.orig
|
||||||
|
|
||||||
purge: clean
|
purge: clean
|
||||||
@$(RM) $(TARGET)
|
@$(RM) $(TARGET)
|
||||||
@$(RM) $(TEST_TARGET)
|
@$(RM) $(TESTS_TARGET)
|
||||||
@$(RM_RECURSIVE) $(DOXYGEN_DIR)
|
@$(RM_RECURSIVE) $(DOXYGEN_DIR)
|
||||||
|
|
||||||
install: $(TARGET)
|
install: $(TARGET)
|
||||||
|
@ -113,7 +115,8 @@ style:
|
||||||
$(OBJ_NOTEST:.o=.hh) \
|
$(OBJ_NOTEST:.o=.hh) \
|
||||||
$(OBJ_NOTEST:.o=.cc) \
|
$(OBJ_NOTEST:.o=.cc) \
|
||||||
inputmedium.hh \
|
inputmedium.hh \
|
||||||
$(OBJ:%.o=$(TEST_DIR)/%_test.hh)
|
$(TESTS_DIR)/*.hh \
|
||||||
|
$(TESTS_DIR)/*.cc
|
||||||
|
|
||||||
check:
|
check:
|
||||||
@$(CPPCHECK) \
|
@$(CPPCHECK) \
|
||||||
|
|
|
@ -24,7 +24,7 @@ public:
|
||||||
Stock::clear() ;
|
Stock::clear() ;
|
||||||
|
|
||||||
csv_file_name = "/tmp/InputCSV_test_csv_file.csv" ;
|
csv_file_name = "/tmp/InputCSV_test_csv_file.csv" ;
|
||||||
aps = TestUtil::create_test_csv_file(csv_file_name) ;
|
TestUtil::create_test_csv_file(csv_file_name, true) ;
|
||||||
|
|
||||||
// Back to the normal behaviour (i.e. do not abort on fail)
|
// Back to the normal behaviour (i.e. do not abort on fail)
|
||||||
CxxTest::setAbortTestOnFail(false) ;
|
CxxTest::setAbortTestOnFail(false) ;
|
||||||
|
@ -61,30 +61,24 @@ public:
|
||||||
TS_ASSERT(! inputcsv1.eof()) ;
|
TS_ASSERT(! inputcsv1.eof()) ;
|
||||||
|
|
||||||
Request request1 ;
|
Request request1 ;
|
||||||
std::tr1::unordered_map<std::string, Measurement> measurements ;
|
|
||||||
|
|
||||||
// First Request //
|
// First Request //
|
||||||
|
|
||||||
request1 = inputcsv1.get_next_request() ;
|
request1 = inputcsv1.get_next_request() ;
|
||||||
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
||||||
"aa:bb:cc:dd:ee:ff") ;
|
TestUtil::mobiles[0].get_mac_addr()) ;
|
||||||
TS_ASSERT_EQUALS(request1.get_timestamp().get_timestamp_ms(),
|
TS_ASSERT_EQUALS(request1.get_timestamp(),
|
||||||
1265120910725llu) ;
|
TestUtil::requests[0].get_timestamp()) ;
|
||||||
|
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-58) ;
|
for (std::vector<AccessPoint>::const_iterator i = TestUtil::aps.begin() ;
|
||||||
measurements[aps[2].get_mac_addr()].add_ss(-50) ;
|
i != TestUtil::aps.end() ; ++i)
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-42) ;
|
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-55) ;
|
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-37) ;
|
|
||||||
|
|
||||||
for (std::vector<AccessPoint>::const_iterator i = aps.begin() ;
|
|
||||||
i != aps.end() ; ++i)
|
|
||||||
{
|
{
|
||||||
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
||||||
measurement_it1 =
|
measurement_it1 =
|
||||||
request1.get_measurements().find(i->get_mac_addr()) ;
|
request1.get_measurements().find(i->get_mac_addr()) ;
|
||||||
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
||||||
TS_ASSERT_EQUALS(measurements[i->get_mac_addr()].get_ss_list(),
|
TS_ASSERT_EQUALS(TestUtil::requests[0].get_measurements().
|
||||||
|
at(i->get_mac_addr()).get_ss_list(),
|
||||||
measurement_it1->second.get_ss_list()) ;
|
measurement_it1->second.get_ss_list()) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,25 +89,19 @@ public:
|
||||||
|
|
||||||
request1 = inputcsv1.get_next_request() ;
|
request1 = inputcsv1.get_next_request() ;
|
||||||
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
||||||
"aa:bb:cc:dd:ee:77") ;
|
TestUtil::mobiles[1].get_mac_addr()) ;
|
||||||
TS_ASSERT_EQUALS(request1.get_timestamp().get_timestamp_ms(),
|
TS_ASSERT_EQUALS(request1.get_timestamp(),
|
||||||
1265120911234llu) ;
|
TestUtil::requests[1].get_timestamp()) ;
|
||||||
|
|
||||||
measurements.clear() ;
|
for (std::vector<AccessPoint>::const_iterator i = TestUtil::aps.begin() ;
|
||||||
measurements[aps[2].get_mac_addr()].add_ss(-59) ;
|
i != TestUtil::aps.end() ; ++i)
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-51) ;
|
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-70) ;
|
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-21) ;
|
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-19) ;
|
|
||||||
|
|
||||||
for (std::vector<AccessPoint>::const_iterator i = aps.begin() ;
|
|
||||||
i != aps.end() ; ++i)
|
|
||||||
{
|
{
|
||||||
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
||||||
measurement_it1 =
|
measurement_it1 =
|
||||||
request1.get_measurements().find(i->get_mac_addr()) ;
|
request1.get_measurements().find(i->get_mac_addr()) ;
|
||||||
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
||||||
TS_ASSERT_EQUALS(measurements[i->get_mac_addr()].get_ss_list(),
|
TS_ASSERT_EQUALS(TestUtil::requests[1].get_measurements().
|
||||||
|
at(i->get_mac_addr()).get_ss_list(),
|
||||||
measurement_it1->second.get_ss_list()) ;
|
measurement_it1->second.get_ss_list()) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,25 +112,19 @@ public:
|
||||||
|
|
||||||
request1 = inputcsv1.get_next_request() ;
|
request1 = inputcsv1.get_next_request() ;
|
||||||
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
TS_ASSERT_EQUALS(request1.get_mobile()->get_mac_addr(),
|
||||||
"aa:bb:cc:dd:ee:ff") ;
|
TestUtil::mobiles[0].get_mac_addr()) ;
|
||||||
TS_ASSERT_EQUALS(request1.get_timestamp().get_timestamp_ms(),
|
TS_ASSERT_EQUALS(request1.get_timestamp(),
|
||||||
1265120912345llu) ;
|
TestUtil::requests[2].get_timestamp()) ;
|
||||||
|
|
||||||
measurements.clear() ;
|
for (std::vector<AccessPoint>::const_iterator i = TestUtil::aps.begin() ;
|
||||||
measurements[aps[2].get_mac_addr()].add_ss(-56) ;
|
i != TestUtil::aps.end() ; ++i)
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-45) ;
|
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-54) ;
|
|
||||||
measurements[aps[1].get_mac_addr()].add_ss(-23) ;
|
|
||||||
measurements[aps[0].get_mac_addr()].add_ss(-32) ;
|
|
||||||
|
|
||||||
for (std::vector<AccessPoint>::const_iterator i = aps.begin() ;
|
|
||||||
i != aps.end() ; ++i)
|
|
||||||
{
|
{
|
||||||
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
std::tr1::unordered_map<std::string, Measurement>::const_iterator
|
||||||
measurement_it1 =
|
measurement_it1 =
|
||||||
request1.get_measurements().find(i->get_mac_addr()) ;
|
request1.get_measurements().find(i->get_mac_addr()) ;
|
||||||
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
TS_ASSERT_DIFFERS(request1.get_measurements().end(), measurement_it1) ;
|
||||||
TS_ASSERT_EQUALS(measurements[i->get_mac_addr()].get_ss_list(),
|
TS_ASSERT_EQUALS(TestUtil::requests[2].get_measurements().
|
||||||
|
at(i->get_mac_addr()).get_ss_list(),
|
||||||
measurement_it1->second.get_ss_list()) ;
|
measurement_it1->second.get_ss_list()) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#include "testsetup.hh"
|
||||||
|
|
||||||
|
|
||||||
|
// Create the global fixture
|
||||||
|
static TestSetUp testsetup ;
|
||||||
|
|
||||||
|
|
||||||
|
bool TestSetUp::setUpWorld(void)
|
||||||
|
{
|
||||||
|
TestUtil::set_up() ;
|
||||||
|
return true ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TestSetUp::tearDownWorld(void)
|
||||||
|
{
|
||||||
|
TestUtil::tear_down() ;
|
||||||
|
return true ;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include <cxxtest/GlobalFixture.h>
|
||||||
|
|
||||||
|
#include "testutil.hh"
|
||||||
|
|
||||||
|
class TestSetUp: public CxxTest::GlobalFixture
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool setUpWorld(void) ;
|
||||||
|
bool tearDownWorld(void) ;
|
||||||
|
} ;
|
|
@ -1,9 +1,100 @@
|
||||||
#include "testutil.hh"
|
#include "testutil.hh"
|
||||||
#include <cxxtest/TestSuite.h>
|
#include <cxxtest/TestSuite.h>
|
||||||
|
|
||||||
|
#include "measurement.hh"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <boost/tr1/unordered_map.hpp>
|
||||||
|
|
||||||
using namespace std ;
|
using namespace std ;
|
||||||
|
using std::tr1::unordered_map ;
|
||||||
|
|
||||||
|
vector<AccessPoint> TestUtil::aps ;
|
||||||
|
vector<Mobile> TestUtil::mobiles ;
|
||||||
|
vector<Request> TestUtil::requests ;
|
||||||
|
|
||||||
|
|
||||||
|
void TestUtil::tear_down()
|
||||||
|
{
|
||||||
|
aps.clear() ;
|
||||||
|
mobiles.clear() ;
|
||||||
|
requests.clear() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TestUtil::set_up()
|
||||||
|
{
|
||||||
|
tear_down() ;
|
||||||
|
|
||||||
|
// Create mobile list
|
||||||
|
mobiles.push_back(Mobile("192.168.0.42", "aa:bb:cc:dd:ee:ff")) ;
|
||||||
|
mobiles.push_back(Mobile("192.168.1.87", "aa:bb:cc:dd:ee:77")) ;
|
||||||
|
|
||||||
|
// Create AP list
|
||||||
|
aps.push_back(AccessPoint(Point3D(1,2,3), "10.0.0.1", "11:22:33:44:55:01")) ;
|
||||||
|
aps.push_back(AccessPoint(Point3D(4,5,6), "10.0.0.2", "11:22:33:44:55:02")) ;
|
||||||
|
aps.push_back(AccessPoint(Point3D(7,8,9), "10.0.0.3", "11:22:33:44:55:03")) ;
|
||||||
|
|
||||||
|
// Create measurement list
|
||||||
|
vector < unordered_map<string,Measurement> > measurements(3) ;
|
||||||
|
Measurement measurement1 ;
|
||||||
|
|
||||||
|
measurement1.add_ss(-58) ;
|
||||||
|
measurement1.add_ss(-55) ;
|
||||||
|
measurement1.set_ap(&aps[0]) ;
|
||||||
|
measurements[0][aps[0].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-50) ;
|
||||||
|
measurement1.set_ap(&aps[2]) ;
|
||||||
|
measurements[0][aps[2].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-42) ;
|
||||||
|
measurement1.add_ss(-37) ;
|
||||||
|
measurement1.set_ap(&aps[1]) ;
|
||||||
|
measurements[0][aps[1].get_mac_addr()] = measurement1 ;
|
||||||
|
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-51) ;
|
||||||
|
measurement1.add_ss(-19) ;
|
||||||
|
measurement1.set_ap(&aps[0]) ;
|
||||||
|
measurements[1][aps[0].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-70) ;
|
||||||
|
measurement1.add_ss(-21) ;
|
||||||
|
measurement1.set_ap(&aps[1]) ;
|
||||||
|
measurements[1][aps[1].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-59) ;
|
||||||
|
measurement1.set_ap(&aps[2]) ;
|
||||||
|
measurements[1][aps[2].get_mac_addr()] = measurement1 ;
|
||||||
|
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-54) ;
|
||||||
|
measurement1.add_ss(-32) ;
|
||||||
|
measurement1.set_ap(&aps[0]) ;
|
||||||
|
measurements[2][aps[0].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-45) ;
|
||||||
|
measurement1.add_ss(-23) ;
|
||||||
|
measurement1.set_ap(&aps[1]) ;
|
||||||
|
measurements[2][aps[1].get_mac_addr()] = measurement1 ;
|
||||||
|
measurement1.clear() ;
|
||||||
|
measurement1.add_ss(-56) ;
|
||||||
|
measurement1.set_ap(&aps[2]) ;
|
||||||
|
measurements[2][aps[2].get_mac_addr()] = measurement1 ;
|
||||||
|
|
||||||
|
// Create timestamp list
|
||||||
|
vector<Timestamp> timestamps ;
|
||||||
|
timestamps.push_back(Timestamp(1265120910725)) ;
|
||||||
|
timestamps.push_back(Timestamp(1265120911234)) ;
|
||||||
|
timestamps.push_back(Timestamp(1265120912345)) ;
|
||||||
|
|
||||||
|
// Create request list
|
||||||
|
requests.push_back(Request(timestamps[0], measurements[0])) ;
|
||||||
|
requests.push_back(Request(timestamps[1], measurements[1])) ;
|
||||||
|
requests.push_back(Request(timestamps[2], measurements[2])) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Create the file output_file_name and fill it with the contents of
|
// Create the file output_file_name and fill it with the contents of
|
||||||
|
@ -34,48 +125,119 @@ void TestUtil::remove_file(const string &file_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vector<AccessPoint> TestUtil::
|
void TestUtil::
|
||||||
create_test_csv_file(const string &file_name)
|
create_test_csv_file(const string &file_name, bool with_spaces)
|
||||||
{
|
{
|
||||||
// Create AP list
|
|
||||||
vector<AccessPoint> aps ;
|
|
||||||
aps.push_back(AccessPoint(Point3D(1,2,3), "11:22:33:44:55:01")) ;
|
|
||||||
aps.push_back(AccessPoint(Point3D(4,5,6), "11:22:33:44:55:02")) ;
|
|
||||||
aps.push_back(AccessPoint(Point3D(7,8,9), "11:22:33:44:55:03")) ;
|
|
||||||
|
|
||||||
// Fill name and contents of the test CSV file
|
// Fill name and contents of the test CSV file
|
||||||
vector<string> csv_lines ;
|
vector<string> csv_lines ;
|
||||||
csv_lines.push_back("\
|
ostringstream line ;
|
||||||
\n \n\
|
|
||||||
aa:bb:cc:dd:ee:ff;1265120910725;0;0;0;0\
|
if (with_spaces)
|
||||||
;" + aps[0].get_mac_addr() + ";-58\
|
line << "\n \n " ;
|
||||||
;" + aps[2].get_mac_addr() + ";-50\
|
line << mobiles[0].get_mac_addr() ;
|
||||||
;" + aps[1].get_mac_addr() + ";-42\
|
line << ';' ;
|
||||||
;" + aps[0].get_mac_addr() + ";-55\
|
line << requests[0].get_timestamp().get_timestamp_ms() ;
|
||||||
;" + aps[1].get_mac_addr() + ";-37\
|
line << ";0;0;0;0;" ;
|
||||||
\n") ;
|
line << aps[0].get_mac_addr() ;
|
||||||
csv_lines.push_back("\
|
line << ";" ;
|
||||||
aa:bb:cc:dd:ee:77;1265120911234;0;0;0;0\
|
line << requests[0].get_measurements().at(aps[0].get_mac_addr())
|
||||||
;" + aps[2].get_mac_addr() + ";-59\
|
.get_ss_list()[0] ;
|
||||||
;" + aps[0].get_mac_addr() + ";-51\
|
line << ";" ;
|
||||||
;" + aps[1].get_mac_addr() + ";-70\
|
line << aps[2].get_mac_addr() ;
|
||||||
;" + aps[1].get_mac_addr() + ";-21\
|
line << ";" ;
|
||||||
;" + aps[0].get_mac_addr() + ";-19\
|
line << requests[0].get_measurements().at(aps[2].get_mac_addr())
|
||||||
\n \n\
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[0].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[0].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[0].get_measurements().at(aps[0].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[0].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << '\n' ;
|
||||||
|
csv_lines.push_back(line.str()) ;
|
||||||
|
|
||||||
|
line.str("") ;
|
||||||
|
line << mobiles[1].get_mac_addr() ;
|
||||||
|
line << ';' ;
|
||||||
|
line << requests[1].get_timestamp().get_timestamp_ms() ;
|
||||||
|
line << ";0;0;0;0;" ;
|
||||||
|
line << aps[2].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[1].get_measurements().at(aps[2].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[0].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[1].get_measurements().at(aps[0].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[1].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[1].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[0].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[1].get_measurements().at(aps[0].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << '\n' ;
|
||||||
|
if (with_spaces)
|
||||||
|
line << " \n\
|
||||||
\n\t\n\
|
\n\t\n\
|
||||||
\n \t \n\
|
\n \t \n\
|
||||||
\n") ;
|
\n" ;
|
||||||
csv_lines.push_back("\
|
csv_lines.push_back(line.str()) ;
|
||||||
\taa:bb:cc:dd:ee:ff;1265120912345;0;0;0;0\
|
|
||||||
;" + aps[2].get_mac_addr() + ";-56\
|
line.str("") ;
|
||||||
;" + aps[1].get_mac_addr() + ";-45\
|
if (with_spaces)
|
||||||
;" + aps[0].get_mac_addr() + ";-54\
|
line << '\t' ;
|
||||||
;" + aps[1].get_mac_addr() + ";-23\
|
line << mobiles[0].get_mac_addr() ;
|
||||||
;" + aps[0].get_mac_addr() + ";-32\
|
line << ';' ;
|
||||||
\n\n\t\n") ;
|
line << requests[2].get_timestamp().get_timestamp_ms() ;
|
||||||
|
line << ";0;0;0;0;" ;
|
||||||
|
line << aps[2].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[2].get_measurements().at(aps[2].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[2].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[0].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[2].get_measurements().at(aps[0].get_mac_addr())
|
||||||
|
.get_ss_list()[0] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[1].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[2].get_measurements().at(aps[1].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << ";" ;
|
||||||
|
line << aps[0].get_mac_addr() ;
|
||||||
|
line << ";" ;
|
||||||
|
line << requests[2].get_measurements().at(aps[0].get_mac_addr())
|
||||||
|
.get_ss_list()[1] ;
|
||||||
|
line << '\n' ;
|
||||||
|
if (with_spaces)
|
||||||
|
line << "\n\t\n" ;
|
||||||
|
csv_lines.push_back(line.str()) ;
|
||||||
|
|
||||||
// Create and fill the test CSV file
|
// Create and fill the test CSV file
|
||||||
fill_file(file_name, csv_lines) ;
|
fill_file(file_name, csv_lines) ;
|
||||||
|
|
||||||
return aps ;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,29 @@
|
||||||
#ifndef _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
#ifndef _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
||||||
#define _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
#define _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
||||||
|
|
||||||
|
#include "accesspoint.hh"
|
||||||
|
#include "mobile.hh"
|
||||||
|
#include "request.hh"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "accesspoint.hh"
|
|
||||||
|
|
||||||
class TestUtil
|
class TestUtil
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static std::vector<AccessPoint> aps ;
|
||||||
|
static std::vector<Mobile> mobiles ;
|
||||||
|
static std::vector<Request> requests ;
|
||||||
|
|
||||||
|
static void set_up(void) ;
|
||||||
|
static void tear_down(void) ;
|
||||||
|
|
||||||
static void fill_file(const std::string &output_file_name,
|
static void fill_file(const std::string &output_file_name,
|
||||||
const std::vector<std::string> output_lines) ;
|
const std::vector<std::string> output_lines) ;
|
||||||
static void remove_file(const std::string &file_name) ;
|
static void remove_file(const std::string &file_name) ;
|
||||||
|
|
||||||
static std::vector<AccessPoint>
|
static void create_test_csv_file(const std::string &file_name,
|
||||||
create_test_csv_file(const std::string &file_name) ;
|
bool with_spaces = false) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
#endif // _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
#endif // _OWLPS_POSITIONING_TESTS_TESTUTIL_HH_
|
||||||
|
|
Loading…
Reference in New Issue