#include #include "realposition.hh" class RealPosition_test: public CxxTest::TestSuite { public: void test_compute(void) { Point3D null_point(0,0,0) ; ReferencePoint reference_point(1,2,3) ; Direction direction(Direction::south) ; Request request ; CalibrationRequest calibration_request(request, &reference_point, direction) ; PositioningAlgorithm *algo = new RealPosition() ; Result res ; // Empty request res = algo->compute(request) ; TS_ASSERT_EQUALS(res.get_position(), null_point) ; // Non-empty request Point3D point(3,2,1) ; request.set_real_position(point) ; res = algo->compute(request) ; TS_ASSERT_EQUALS(res.get_position(), point) ; // Calibration request res = algo->compute(calibration_request) ; TS_ASSERT_EQUALS(res.get_position(), reference_point) ; // CalibrationRequest casted to Request Request *request_ptr = static_cast(&calibration_request) ; res = algo->compute(*request_ptr) ; TS_ASSERT_EQUALS(res.get_position(), reference_point) ; delete algo ; } } ;