Files
qt5-legatus-legacy/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ModuleTest/msgcompares.cpp
T
2026-08-13 18:33:10 +02:00

330 lines
15 KiB
C++
Executable File

#include "msgcompares.h"
#include "../telegrams.h"
#include <QtTest/QTest>
MsgCompares::MsgCompares()
{
}
void MsgCompares::compareZieldaten(const AdlerJson::Zieldaten& zieldaten)
{
qDebug() << "--- Begin compareZieldaten EX-L12 ---";
QCOMPARE(zieldaten.nummer, 7);
QCOMPARE(zieldaten.geometrie, ProjectDataManagement::L4_TargetGeometry::Point);
qDebug() << "--- koordinate ---";
QCOMPARE(zieldaten.koordinate.hoehe, 0);
QCOMPARE(zieldaten.koordinate.koordinate.latitude, 53.0672);
QCOMPARE(zieldaten.koordinate.koordinate.longitude, 8.86687);
qDebug() << "--- relativKoordinate ---";
QCOMPARE(zieldaten.relativKoordinate.hoehe, 5);
QCOMPARE(zieldaten.relativKoordinate.koordinate.latitude, 53.8);
QCOMPARE(zieldaten.relativKoordinate.koordinate.longitude, 8.8);
QCOMPARE(zieldaten.breiteRadius, 25);
QCOMPARE(zieldaten.tiefe, 26);
QCOMPARE(zieldaten.zielachse, 17);
QCOMPARE(zieldaten.zog, 7);
QCOMPARE(zieldaten.elemente, 1);
QCOMPARE(zieldaten.typ, QStringLiteral("PERS"));
QCOMPARE(zieldaten.subTyp, QStringLiteral("APERS"));
qDebug() << "--- End compareZieldaten EX-L12 ---";
}
void MsgCompares::compareFlugbahnpunkt0(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
{
QCOMPARE(flugbahnpunkt.xRelativ, 200.0);
QCOMPARE(flugbahnpunkt.yRelativ, 77.0);
QCOMPARE(flugbahnpunkt.zRelativ, 300.0);
QCOMPARE(flugbahnpunkt.zeit, 17.0);
}
void MsgCompares::compareFlugbahnpunkt1(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
{
QCOMPARE(flugbahnpunkt.xRelativ, 900.0);
QCOMPARE(flugbahnpunkt.yRelativ, 177.0);
QCOMPARE(flugbahnpunkt.zRelativ, 700.0);
QCOMPARE(flugbahnpunkt.zeit, 19.0);
}
void MsgCompares::compareStreuung(const AdlerJson::Streuungsdaten &streuung)
{
QCOMPARE(streuung.seitenstreuungH, 0.7);
QCOMPARE(streuung.laengsstreuungH, 0.3);
QCOMPARE(streuung.seitenstreuung, 0.7);
QCOMPARE(streuung.laengsstreuung, 7.7);
}
void MsgCompares::compareFeuerkommando(const AdlerJson::Feuerkommando &feuerkommando)
{
//QCOMPARE(feuerkommando.verein, QStringLiteral("AB7X"));
QCOMPARE(feuerkommando.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
qDebug() << "feuerkommando.wirkmittel.size=" << feuerkommando.wirkmittel.size();
AdlerJson::WirkmittelFeuerkommando wfk = feuerkommando.wirkmittel[0];
QCOMPARE(wfk.kenner, ProjectDataManagement::L27_EffectorId::B1);
AdlerJson::KoordinateMitHoehe ap = wfk.auftreffpunkt;
QCOMPARE(ap.hoehe, 0);
QCOMPARE(ap.koordinate.latitude, 53.0672);
QCOMPARE(ap.koordinate.longitude, 8.86687);
QCOMPARE(wfk.flugzeit, 30);
QCOMPARE(wfk.gipfelhoehe, 377);
QCOMPARE(wfk.schussrichtung, 177);
compareFlugbahnpunkt0(wfk.flugbahnpunkt[0]);
compareFlugbahnpunkt1(wfk.flugbahnpunkt[1]);
compareStreuung(wfk.streuung);
MsgCompares::compareFeuerkommandoGeschosse(wfk.geschoss);
compareWirkmittelFeuerkommandoRakete (feuerkommando.wirkmittelRakete);
}
void MsgCompares::compareWirkmittelFeuerkommandoRakete(const QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs)
{
qDebug() << "compareFeuerkommando Rakete"
<< ", wfrs.size=" << wfrs.size()
<< ", wfrs[0].treffpunkte,size=" << wfrs[0].treffpunkte.size();
AdlerJson::Treffpunkt treffpunkt = wfrs[0].treffpunkte[0];
QCOMPARE (treffpunkt.anzahl, 1);
QCOMPARE (treffpunkt.koordinate.koordinate.latitude , 5.5);
QCOMPARE (treffpunkt.koordinate.koordinate.longitude, 6.6);
QCOMPARE (treffpunkt.koordinate.hoehe, 7);
QCOMPARE (wfrs[0].kenner , ProjectDataManagement::L27_EffectorId::B1);
QCOMPARE (wfrs[0].flugzeit, 456.3);
QCOMPARE (wfrs[0].gipfelhoehe, 300);
QCOMPARE (wfrs[0].schussrichtung, 30.0);
QCOMPARE (wfrs[0].fallwinkel, 5);
QCOMPARE (wfrs[0].anflug, ProjectDataManagement::L48_TrajectoryRocket::Nominal);
}
void MsgCompares::compareFeuerkommandoGeschosse(const AdlerJson::FeuerkommandoGeschosse &feuerkommandoGeschosse)
{
QCOMPARE(feuerkommandoGeschosse.geschosssorte, QStringLiteral("Mine DM72"));
QCOMPARE(feuerkommandoGeschosse.ladung, QStringLiteral("M DM72"));
QCOMPARE(feuerkommandoGeschosse.zuender, QStringLiteral("Aufschlag BB DM371"));
QCOMPARE(feuerkommandoGeschosse.zuenderFunktion, QStringLiteral("AZoV"));
QCOMPARE(feuerkommandoGeschosse.zuenderZeit, 0);
QCOMPARE(feuerkommandoGeschosse.anzahl, 7);
QCOMPARE(feuerkommandoGeschosse.intervall, 1.0);
}
void MsgCompares::compareFeuerHaltDaten(const AdlerJson::FeuerHaltDaten &feuerHaltDaten)
{
QCOMPARE(feuerHaltDaten.kategorie, ProjectDataManagement::L22_FireHaltCategory::E);
QCOMPARE(feuerHaltDaten.feuerkampfReferenz, QStringLiteral("feuerHaltDaten"));
QCOMPARE(feuerHaltDaten.zpNummer, 5);
QCOMPARE(feuerHaltDaten.koordinate.latitude, 53.37791);
QCOMPARE(feuerHaltDaten.koordinate.longitude, 8.759);
QCOMPARE(feuerHaltDaten.radius, 50);
}
void MsgCompares::compareFeuerstellungsdatenKoordinaten(const QVector<AdlerJson::KoordinateMitHoehe> &koordinaten)
{
QCOMPARE(koordinaten[0].hoehe, 22);
QCOMPARE(koordinaten[0].koordinate.latitude, 53.37792);
QCOMPARE(koordinaten[0].koordinate.longitude, 8.760);
QCOMPARE(koordinaten[1].hoehe, 23);
QCOMPARE(koordinaten[1].koordinate.latitude, 53.37793);
QCOMPARE(koordinaten[1].koordinate.longitude, 8.761);
}
void MsgCompares::compareGeschosse(const QVector<AdlerJson::Geschoss> &geschosse)
{
QCOMPARE(geschosse[0].geschosssorte, QStringLiteral("Mine DM72"));
QCOMPARE(geschosse[0].zuender, QStringLiteral("Doppel DM183"));
QCOMPARE(geschosse[0].ladung, QStringLiteral("M DM72"));
QCOMPARE(geschosse[0].anzahl, 6);
QCOMPARE(geschosse[1].geschosssorte, QStringLiteral("Leucht DM116"));
QCOMPARE(geschosse[1].ladung, QStringLiteral("B L8A1"));
QCOMPARE(geschosse[1].zuender, QStringLiteral("Aufschlag BB DM371"));
QCOMPARE(geschosse[1].anzahl, 7);
}
void MsgCompares::compareFeuerstellungsdaten(const AdlerJson::Feuerstellungsdaten &feuerstellungsdaten)
{
QCOMPARE(feuerstellungsdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(feuerstellungsdaten.status, ProjectDataManagement::L28_Status::Einsatzbereit);
QCOMPARE(feuerstellungsdaten.feuereinheit.verein, QStringLiteral("verein ExFeuerstellungFS"));
QCOMPARE(feuerstellungsdaten.feuereinheit.r, 5);
QCOMPARE(feuerstellungsdaten.feuereinheit.oi, ProjectDataManagement::L19_Oi::F3);
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.latitude, 53.37791);
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.longitude, 8.759);
QCOMPARE(feuerstellungsdaten.mittelpunkt.hoehe, 20);
MsgCompares::compareFeuerstellungsdatenKoordinaten(feuerstellungsdaten.koordinaten);
MsgCompares::compareGeschosse(feuerstellungsdaten.geschosse);
}
void MsgCompares::compareWaffensystemdaten(const AdlerJson::Waffensystemdaten &waffensystemdaten)
{
QCOMPARE(waffensystemdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(waffensystemdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
QCOMPARE(waffensystemdaten.status, ProjectDataManagement::L28_Status::NichtEinsatzbereit);
QCOMPARE(waffensystemdaten.einheit.verein, QStringLiteral("AB7X"));
QCOMPARE(waffensystemdaten.einheit.r, 6);
QCOMPARE(waffensystemdaten.einheit.oi, ProjectDataManagement::L19_Oi::F6);
MsgCompares::compareGeschosse(waffensystemdaten.geschosse);
QCOMPARE(waffensystemdaten.koordinate.koordinate.latitude, 53.088354);
QCOMPARE(waffensystemdaten.koordinate.koordinate.longitude, 8.853092);
QCOMPARE(waffensystemdaten.koordinate.hoehe, 20);
QCOMPARE(waffensystemdaten.wirkungsbereich.grundrichtung, 1);
QCOMPARE(waffensystemdaten.wirkungsbereich.links, 2);
QCOMPARE(waffensystemdaten.wirkungsbereich.rechts, 3);
}
void MsgCompares::compareLadeplatzdaten(const AdlerJson::Ladeplatzdaten &ladeplatzdaten)
{
QCOMPARE(ladeplatzdaten.einheit.oi , ProjectDataManagement::L19_Oi::F3);
QCOMPARE(ladeplatzdaten.einheit.r, 5);
QCOMPARE(ladeplatzdaten.einheit.verein, QStringLiteral("verein StellungsmeldungLP"));
QCOMPARE(ladeplatzdaten.koordinate.koordinate.latitude, 53.37791);
QCOMPARE(ladeplatzdaten.koordinate.koordinate.longitude, 8.759);
QCOMPARE(ladeplatzdaten.koordinate.hoehe, 20);
MsgCompares::compareGeschosse(ladeplatzdaten.geschosse);
}
void MsgCompares::compareStellungswechseldaten(const AdlerJson::Stellungswechseldaten &stellungswechseldaten)
{
QCOMPARE(stellungswechseldaten.oi, ProjectDataManagement::L19_Oi::F3);
QCOMPARE(stellungswechseldaten.r, 5);
QCOMPARE(stellungswechseldaten.verein, QStringLiteral("verein ExStellungswechsel"));
}
void MsgCompares::compareZeitAb(const AdlerJson::Zeitangabe_DTG &zeit)
{
QCOMPARE(zeit.stunden, 5);
QCOMPARE(zeit.minuten, 35);
QCOMPARE(zeit.sekunden, 55);
QCOMPARE(zeit.tag, 12);
QCOMPARE(zeit.monat, 11);
QCOMPARE(zeit.jahr, 2025);
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
}
void MsgCompares::compareZeitBis(const AdlerJson::Zeitangabe_DTG &zeit)
{
QCOMPARE(zeit.stunden, 5);
QCOMPARE(zeit.minuten, 35);
QCOMPARE(zeit.sekunden, 55);
QCOMPARE(zeit.tag, 13);
QCOMPARE(zeit.monat, 11);
QCOMPARE(zeit.jahr, 2025);
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
}
void MsgCompares::compareKoordinaten(const QVector<AdlerJson::Koordinate> &koordinaten)
{
QCOMPARE ( koordinaten[0].latitude, 53.37792 );
QCOMPARE ( koordinaten[0].longitude, 8.760 );
QCOMPARE ( koordinaten[1].latitude, 53.37793 );
QCOMPARE ( koordinaten[1].longitude, 8.761 );
}
void MsgCompares::compareKoordinierungsdaten(const AdlerJson::Koordinierungsdaten &koordinierungsdaten)
{
QCOMPARE(koordinierungsdaten.art, ProjectDataManagement::L25_KindGuidingLine::NFA);
QCOMPARE(koordinierungsdaten.name, QStringLiteral("Name ExHqKoordinierungsmassnahme"));
QCOMPARE(koordinierungsdaten.truppenteil, QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme"));
compareZeitAb(koordinierungsdaten.ab);
compareZeitBis(koordinierungsdaten.bis);
compareKoordinaten(koordinierungsdaten.koordinaten);
QCOMPARE(koordinierungsdaten.mittelpunkt.latitude, 53.37794);
QCOMPARE(koordinierungsdaten.mittelpunkt.longitude, 8.762);
QCOMPARE(koordinierungsdaten.radius, 66);
QCOMPARE(koordinierungsdaten.maxGipfel, 123);
}
void MsgCompares::compareFuehrungsdaten(const AdlerJson::Fuehrungsdaten &fuehrungsdaten)
{
QCOMPARE(fuehrungsdaten.art, AdlerJson::Art_L24::AO);
QCOMPARE(fuehrungsdaten.name, QStringLiteral("Name EX-HQ(G) Führungslinien und Grenzen"));
compareZeitAb(fuehrungsdaten.ab);
compareZeitBis(fuehrungsdaten.bis);
compareKoordinaten(fuehrungsdaten.koordinaten);
QCOMPARE(fuehrungsdaten.linkerNachbar, QStringLiteral("linker Nachbar"));
QCOMPARE(fuehrungsdaten.rechterNachbar, QStringLiteral("rechter Nachbar"));
}
void MsgCompares::compareTechnischeDaten(const AdlerJson::TechnischeDaten &technischeDaten)
{
QCOMPARE(technischeDaten.status, AdlerJson::Status_L32::INV);
QCOMPARE(technischeDaten.beschreibung, QStringLiteral("Beschreibung technischer Status"));
}
void MsgCompares::compareFreitextDaten(const AdlerJson::FreitextDaten &freitextDaten)
{
QCOMPARE(freitextDaten.text, QStringLiteral("Freier Text"));
}
void MsgCompares::compareManuelleQuittungDaten(const AdlerJson::ManuelleQuittungDaten &manuelleQuittungDaten)
{
QCOMPARE(manuelleQuittungDaten.feuerkampfreferenz, QStringLiteral("Manuelle Quittung"));
}
void MsgCompares::compareFlugbahnberechnungDaten(const AdlerJson::FlugBerechnungsDaten &flugbahnberechnungDaten)
{
qDebug() << "compareFlugbahnberechnungDaten 1";
QCOMPARE(flugbahnberechnungDaten.geschoss.geschosssorte, QStringLiteral("SMArt DM702"));
qDebug() << "compareFlugbahnberechnungDaten 2";
QCOMPARE(flugbahnberechnungDaten.geschoss.ladung, QStringLiteral("M DM72"));
QCOMPARE(flugbahnberechnungDaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
QCOMPARE(flugbahnberechnungDaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
qDebug() << "compareFlugbahnberechnungDaten 3";
//QCOMPARE(flugbahnberechnungDaten.geschoss.ladungsNummer, 4);
QCOMPARE(flugbahnberechnungDaten.sprenghoehe, 0);
qDebug() << "compareFlugbahnberechnungDaten 6";
QCOMPARE(flugbahnberechnungDaten.standort.hoehe, 55);
qDebug() << "compareFlugbahnberechnungDaten 7";
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.latitude, 53.37787);
qDebug() << "compareFlugbahnberechnungDaten 8";
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.longitude, 8.7573);
qDebug() << "compareFlugbahnberechnungDaten 9";
QCOMPARE(flugbahnberechnungDaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
qDebug() << "compareFlugbahnberechnungDaten 10";
qDebug() << "winkelgruppe=" << AdlerJson::winkelgruppeMap.key(flugbahnberechnungDaten.winkelgruppe);
QCOMPARE(flugbahnberechnungDaten.winkelgruppe, AdlerJson::Winkelgruppe::Untere);
}
void MsgCompares::compareFlugbahndaten(const AdlerJson::Flugbahndaten &flugbahndaten)
{
qDebug() << "compareFlugbahndaten";
QCOMPARE(flugbahndaten.fehlercode, AdlerJson::FlugbahnberechnungFehlercode::Ok);
qDebug() << "flugbahndaten.zielkoordinate.hoehe = "<< flugbahndaten.zielkoordinate.hoehe;
QCOMPARE(flugbahndaten.zielkoordinate.hoehe, 56);
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.latitude, 52.482048);
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.longitude, 11.583);
QCOMPARE(flugbahndaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
QCOMPARE(flugbahndaten.flugzeit, 300);
QCOMPARE(flugbahndaten.gipfelhoehe, 200);
QCOMPARE(flugbahndaten.schussrichtung, 45);
QCOMPARE(flugbahndaten.fallwinkel, 55);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zeit, 1);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].xRelativ, 100);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].yRelativ, 200);
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zRelativ, 10);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zeit, 2);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].xRelativ, 200);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].yRelativ, 400);
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zRelativ, 20);
QCOMPARE(flugbahndaten.streuung.laengsstreuung, 2.2);
QCOMPARE(flugbahndaten.streuung.seitenstreuung, 3.3);
QCOMPARE(flugbahndaten.streuung.laengsstreuungH, 4.4);
QCOMPARE(flugbahndaten.streuung.seitenstreuungH, 5.5);
QCOMPARE(flugbahndaten.geschoss.geschosssorte, QStringLiteral("Spreng DM121"));
QCOMPARE(flugbahndaten.geschoss.ladung, QStringLiteral("M DM72"));
QCOMPARE(flugbahndaten.geschoss.ladungsNummer, 5);
QCOMPARE(flugbahndaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
QCOMPARE(flugbahndaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
QCOMPARE(flugbahndaten.geschoss.zuenderZeit, 1000);
}