[Positioning] Add class Result

This commit is contained in:
Matteo Cypriani 2010-03-03 16:06:41 +01:00
parent 0430b1a5da
commit 96808115bd
5 changed files with 148 additions and 1 deletions

View File

@ -51,6 +51,7 @@ OBJ_LIST = \
measurement.o \
request.o \
calibrationrequest.o \
result.o \
configuration.o \
userinterface.o \
input.o \
@ -125,7 +126,7 @@ inputcsv.o: \
$(OBJ_DIR)/calibrationrequest.o \
$(OBJ_DIR)/stock.o
inputlogcsv.o: \
$(OBJ_DIR)/inputlogmedium.hh \
$(SRC_DIR)/inputlogmedium.hh \
$(OBJ_DIR)/request.o
input.o: \
$(OBJ_DIR)/posexcept.o

View File

@ -1,4 +1,8 @@
- Tests unitaires
Remplacer TS_ASSERT_DIFFERS(a, b) par TS_ASSERT(a != b) pour tester
operator!=() au lieu de !operator==().
- Input
° Finir le test unitaire.

View File

@ -0,0 +1,25 @@
#include "result.hh"
/* *** Operators *** */
const Result& Result::operator=(const Result &source)
{
if (this == &source)
return *this ;
position = source.position ;
request = source.request ;
return *this ;
}
bool Result::operator==(const Result &source)
{
return
position == source.position &&
request == source.request ;
}

View File

@ -0,0 +1,64 @@
#ifndef _OWLPS_POSITIONING_RESULT_HH_
#define _OWLPS_POSITIONING_RESULT_HH_
class Request ;
#include "point3d.hh"
/// Represents a result computed by a positioning algorithm
class Result
{
protected:
Point3D position ;
Request *request ;
public:
Result(const Request *_request = NULL):
request(const_cast<Request*>(_request)) {}
Result(const Request *_request, const Point3D &_position):
position(_position), request(const_cast<Request*>(_request)) {}
~Result(void) {}
/** @name Read accessors */
//@{
const Point3D& get_position(void) ;
const Request* get_request(void) ;
//@}
/** @name Operators */
//@{
const Result& operator=(const Result &source) ;
bool operator==(const Result &source) ;
bool operator!=(const Result &source) ;
//@}
} ;
/* *** Read accessors *** */
inline const Point3D& Result::get_position()
{
return position ;
}
inline const Request* Result::get_request()
{
return request ;
}
/* *** Operators *** */
inline bool Result::operator!=(const Result &source)
{
return !(*this == source) ;
}
#endif // _OWLPS_POSITIONING_RESULT_HH_

View File

@ -0,0 +1,53 @@
#include <cxxtest/TestSuite.h>
#include "result.hh"
#include "request.hh"
class Result_test: public CxxTest::TestSuite
{
public:
void test_constructor(void)
{
// Default constructor
Result result1 ;
Result result2(NULL) ;
Result result3(NULL, Point3D()) ;
TS_ASSERT_EQUALS(result1, result2) ;
TS_ASSERT_EQUALS(result1, result3) ;
Request request1 ;
Result result4(&request1) ;
TS_ASSERT_DIFFERS(result1, result4) ;
}
void test_accessors(void)
{
Timestamp timestamp1 ;
timestamp1.now() ;
Request request1(timestamp1) ;
Point3D point3d1(3,4,2) ;
Result result1(&request1, point3d1) ;
TS_ASSERT_EQUALS(result1.get_position(), point3d1) ;
TS_ASSERT_EQUALS(result1.get_request(), &request1) ;
}
void test_operators(void)
{
Timestamp timestamp1 ;
timestamp1.now() ;
Request request1(timestamp1) ;
Point3D point3d1(3,4,2) ;
Result result1(&request1, point3d1) ;
Result result2(&request1, point3d1) ;
TS_ASSERT_EQUALS(result1, result2) ;
Result result3 ;
TS_ASSERT(result1 != result3) ;
result3 = result1 ;
TS_ASSERT_EQUALS(result1, result3) ;
}
} ;