ADD: added Catch2 test; added TrackClass
This commit is contained in:
44
tests/test_PositionClass.cpp
Normal file
44
tests/test_PositionClass.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <SimCore/SimCore.hpp>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <SimCore/Position.hpp>
|
||||
|
||||
|
||||
|
||||
|
||||
SCENARIO("Testing the SimCorePositionClass")
|
||||
{
|
||||
GIVEN("different position in different forms")
|
||||
{
|
||||
Eigen::Vector3d GeocentPos1;
|
||||
GeocentPos1(SimCore::GeocentricPosition::X) = 3784014.333;
|
||||
GeocentPos1(SimCore::GeocentricPosition::Y) = 899869.779;
|
||||
GeocentPos1(SimCore::GeocentricPosition::Z) = 5037960.502;
|
||||
Eigen::Vector3d GeodesPos1;
|
||||
GeodesPos1(SimCore::GeodesicPosition::LATITUDE) = 52.516181;
|
||||
GeodesPos1(SimCore::GeodesicPosition::LONGITUDE) = 13.376935;
|
||||
GeodesPos1(SimCore::GeodesicPosition::HEIGHT) = 0;
|
||||
|
||||
|
||||
|
||||
WHEN("constructing Position Object with data")
|
||||
{
|
||||
SimCore::Position pos1( GeocentPos1(SimCore::GeocentricPosition::X), GeocentPos1(SimCore::GeocentricPosition::Y), GeocentPos1(SimCore::GeocentricPosition::Z));
|
||||
SimCore::Position pos1b;
|
||||
pos1b.setGeodesicPos(GeodesPos1(SimCore::GeodesicPosition::LATITUDE), GeodesPos1(SimCore::GeodesicPosition::LONGITUDE), GeodesPos1(SimCore::GeodesicPosition::HEIGHT));
|
||||
|
||||
THEN("positions attributes are correct")
|
||||
{
|
||||
REQUIRE(pos1.getGeocentricPos()(SimCore::GeocentricPosition::X) == GeocentPos1(SimCore::GeocentricPosition::X));
|
||||
REQUIRE(std::abs(pos1.getGeodesicPos()(SimCore::GeodesicPosition::LATITUDE) - GeodesPos1(SimCore::GeodesicPosition::LATITUDE)) <= 0.0001);
|
||||
REQUIRE(std::abs(pos1.getGeodesicPos()(SimCore::GeodesicPosition::LONGITUDE) - GeodesPos1(SimCore::GeodesicPosition::LONGITUDE)) <= 0.0001);
|
||||
REQUIRE(std::abs(pos1.getGeodesicPos()(SimCore::GeodesicPosition::HEIGHT) - GeodesPos1(SimCore::GeodesicPosition::HEIGHT)) <= 0.001 );
|
||||
|
||||
REQUIRE(std::abs(pos1b.getGeocentricPos()(SimCore::X) - GeocentPos1(SimCore::X)) <= 0.001);
|
||||
REQUIRE(std::abs(pos1b.getGeocentricPos()(SimCore::Y) - GeocentPos1(SimCore::Y)) <= 0.001 );
|
||||
REQUIRE(std::abs(pos1b.getGeocentricPos()(SimCore::Z) - GeocentPos1(SimCore::Z)) <= 0.001);
|
||||
|
||||
} //THEN
|
||||
} // WHEN
|
||||
} // GIVEN
|
||||
} //SCENARIO
|
||||
73
tests/test_TrackClass.cpp
Normal file
73
tests/test_TrackClass.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "SimCore/Messages/Track.hpp"
|
||||
#include "WHISPER/Messages/Message.hpp"
|
||||
#include <SimCore/SimCore.hpp>
|
||||
#include <memory>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <SimCore/Position.hpp>
|
||||
|
||||
|
||||
|
||||
|
||||
SCENARIO("Testing the SimCore Track")
|
||||
{
|
||||
GIVEN("different Attributes for a Track in different forms")
|
||||
{
|
||||
Eigen::Vector3d GeocentPos1;
|
||||
GeocentPos1(SimCore::GeocentricPosition::X) = 3784014.333;
|
||||
GeocentPos1(SimCore::GeocentricPosition::Y) = 899869.779;
|
||||
GeocentPos1(SimCore::GeocentricPosition::Z) = 5037960.502;
|
||||
Eigen::Vector3d GeodesPos1;
|
||||
GeodesPos1(SimCore::GeodesicPosition::LATITUDE) = 52.516181;
|
||||
GeodesPos1(SimCore::GeodesicPosition::LONGITUDE) = 13.376935;
|
||||
GeodesPos1(SimCore::GeodesicPosition::HEIGHT) = 0;
|
||||
double course = 90;
|
||||
double speed = 10;
|
||||
double knots = speed * SimCore::MsKt;
|
||||
bool testOperator = false;
|
||||
|
||||
std::shared_ptr<WHISPER::Message> msg = NULL;
|
||||
|
||||
std::shared_ptr<SimCore::Track> trackPtr = NULL;
|
||||
|
||||
|
||||
std::string serializedMSG;
|
||||
|
||||
WHEN("constructing Track Object with data")
|
||||
{
|
||||
SimCore::Position pos( GeocentPos1(SimCore::GeocentricPosition::X), GeocentPos1(SimCore::GeocentricPosition::Y), GeocentPos1(SimCore::GeocentricPosition::Z));
|
||||
|
||||
SimCore::Track track(1,WHISPER::SourceType::SHIP,10,pos,false);
|
||||
track.setCourse(course);
|
||||
track.setSpeed(speed);
|
||||
|
||||
if (track.getPostion() == pos) {
|
||||
testOperator = true;
|
||||
}
|
||||
serializedMSG = track.serialize();
|
||||
msg = std::make_shared<WHISPER::Message>(serializedMSG);
|
||||
|
||||
if (msg.get()->msgType_ == WHISPER::RAW_TRACK) {
|
||||
trackPtr = std::make_shared<SimCore::Track>(serializedMSG);
|
||||
LOG_S(INFO)<< trackPtr->getSpeed();
|
||||
}
|
||||
|
||||
|
||||
THEN("check if Track attributes are correct")
|
||||
{
|
||||
REQUIRE(testOperator == true);
|
||||
REQUIRE(track.getCourse() == course);
|
||||
REQUIRE(track.getSpeed() == speed);
|
||||
REQUIRE(track.getSpeedinKnots() == knots);
|
||||
REQUIRE(track.getPostion().getGeocentricPos() == pos.getGeocentricPos());
|
||||
|
||||
REQUIRE(msg.get()->msgType_ == WHISPER::RAW_TRACK);
|
||||
REQUIRE(trackPtr->getSpeed() == speed);
|
||||
|
||||
|
||||
|
||||
|
||||
} //THEN
|
||||
} // WHEN
|
||||
} // GIVEN
|
||||
} //SCENARIO
|
||||
Reference in New Issue
Block a user