Add test-cases
This commit is contained in:
parent
aba38d2614
commit
449e618417
210
main/main.cpp
210
main/main.cpp
@ -43,122 +43,6 @@ extern "C" char* strptime(const char* s,
|
|||||||
#define NEUHAUSER_KIRCHDORF (0)
|
#define NEUHAUSER_KIRCHDORF (0)
|
||||||
#define BAD_NEUENAHR_AHRWEILER (1)
|
#define BAD_NEUENAHR_AHRWEILER (1)
|
||||||
|
|
||||||
#if NEUHAUSER_KIRCHDORF==1
|
|
||||||
static bool test_neuhauser_kirchdorf(int step, double cost) {
|
|
||||||
switch (step) {
|
|
||||||
case 30:
|
|
||||||
if (cost != 30) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 30;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 35:
|
|
||||||
if (cost != 40) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 40;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 40:
|
|
||||||
if (cost != 50) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 50;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 45:
|
|
||||||
if (cost != 60) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 60;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 50:
|
|
||||||
if (cost != 70) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 70;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 55:
|
|
||||||
if (cost != 80) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 80;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 60:
|
|
||||||
if (cost != 90) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 90;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 65:
|
|
||||||
if (cost != 100) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 100;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 70:
|
|
||||||
if (cost != 110) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 110;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 75:
|
|
||||||
if (cost != 120) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 120;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 80:
|
|
||||||
if (cost != 130) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 130;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 85:
|
|
||||||
if (cost != 140) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 140;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 90:
|
|
||||||
if (cost != 150) {
|
|
||||||
qCritical() << "ERROR COMPUTING COST"
|
|
||||||
<< "HAVE" << cost
|
|
||||||
<< "SHOULD" << 150;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
#if BAD_NEUENAHR_AHRWEILER==1
|
#if BAD_NEUENAHR_AHRWEILER==1
|
||||||
std::ifstream input;
|
std::ifstream input;
|
||||||
@ -167,8 +51,10 @@ int main() {
|
|||||||
int pop_min_price;
|
int pop_min_price;
|
||||||
int pop_max_price;
|
int pop_max_price;
|
||||||
int pop_daily_card_price;
|
int pop_daily_card_price;
|
||||||
|
int pop_carry_over;
|
||||||
|
int pop_carry_over_time_range_id;
|
||||||
|
|
||||||
for (int zone=1; zone < 2; ++zone) {
|
for (int zone=2; zone < 3; ++zone) {
|
||||||
//for (int t=6; t < 7; t+=20) {
|
//for (int t=6; t < 7; t+=20) {
|
||||||
switch (zone) {
|
switch (zone) {
|
||||||
case 1: {
|
case 1: {
|
||||||
@ -214,6 +100,7 @@ int main() {
|
|||||||
if (isParsed) {
|
if (isParsed) {
|
||||||
// test library functions
|
// test library functions
|
||||||
|
|
||||||
|
if (zone == 1) {
|
||||||
pop_min_time = get_minimal_parkingtime(&cfg);
|
pop_min_time = get_minimal_parkingtime(&cfg);
|
||||||
pop_max_time = get_maximal_parkingtime(&cfg);
|
pop_max_time = get_maximal_parkingtime(&cfg);
|
||||||
pop_min_price = get_minimal_parkingprice(&cfg);
|
pop_min_price = get_minimal_parkingprice(&cfg);
|
||||||
@ -301,13 +188,72 @@ int main() {
|
|||||||
//qCritical() << "duration" << duration.c_str();
|
//qCritical() << "duration" << duration.c_str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} // zone == 1
|
||||||
|
if (zone == 2) {
|
||||||
|
int const numOptions = cfg.getAllPaymentOptions().size();
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
for (int payOpt=0; payOpt < numOptions; ++payOpt) {
|
||||||
|
pop_min_time = get_minimal_parkingtime(&cfg, PERMIT_TYPE::SHORT_TERM_PARKING, payOpt);
|
||||||
|
pop_max_time = get_maximal_parkingtime(&cfg, PERMIT_TYPE::SHORT_TERM_PARKING, payOpt);
|
||||||
|
pop_min_price = get_minimal_parkingprice(&cfg, PERMIT_TYPE::SHORT_TERM_PARKING, payOpt);
|
||||||
|
pop_max_price = get_maximal_parkingprice(&cfg, PERMIT_TYPE::SHORT_TERM_PARKING, payOpt);
|
||||||
|
pop_daily_card_price = cfg.getPaymentOptions(payOpt).pop_daily_card_price;
|
||||||
|
|
||||||
|
pop_carry_over = cfg.getPaymentOptions(payOpt).pop_carry_over;
|
||||||
|
pop_carry_over_time_range_id = cfg.getPaymentOptions(payOpt).pop_carry_over_time_range_id;
|
||||||
|
|
||||||
|
qCritical() << QString(" pop_min_time[%1]: %2").arg(payOpt).arg(pop_min_time);
|
||||||
|
qCritical() << QString(" pop_max_time[%1]: %2").arg(payOpt).arg(pop_max_time);
|
||||||
|
qCritical() << QString(" pop_min_price[%1]: %2").arg(payOpt).arg(pop_min_price);
|
||||||
|
qCritical() << QString(" pop_max_price[%1]: %2").arg(payOpt).arg(pop_max_price);
|
||||||
|
qCritical() << QString(" pop_daily_card_price[%1]: %2").arg(payOpt).arg(pop_daily_card_price);
|
||||||
|
qCritical() << QString(" pop_carry_over[%1]: %2").arg(payOpt).arg(pop_carry_over);
|
||||||
|
qCritical() << QString("pop_carry_over_time_range_id[%1]: %2").arg(payOpt).arg(pop_carry_over_time_range_id);
|
||||||
|
|
||||||
|
if (pop_carry_over_time_range_id != -1) {
|
||||||
|
QTime const carryOverTimeRangeFrom = cfg.TimeRange.find(pop_carry_over_time_range_id)->second.time_range_from;
|
||||||
|
QTime const carryOverTimeRangeTo = cfg.TimeRange.find(pop_carry_over_time_range_id)->second.time_range_to;
|
||||||
|
qCritical() << QString(" timeRangeFrom[%1]: %2").arg(payOpt).arg(carryOverTimeRangeFrom.toString(Qt::ISODate));
|
||||||
|
qCritical() << QString(" timeRangeTo[%1]: %2").arg(payOpt).arg(carryOverTimeRangeTo.toString(Qt::ISODate));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QDateTime start(QDate(2024, 4, 14), QTime());
|
||||||
|
QDateTime end;
|
||||||
|
struct price_t price;
|
||||||
|
|
||||||
|
//start = QDateTime::currentDateTime();
|
||||||
|
|
||||||
|
int paymentOptionIndex = cfg.getCurrentPaymentOptionIndex(start);
|
||||||
|
if (paymentOptionIndex != -1) {
|
||||||
|
qCritical() << "paymentOptionIndex" << paymentOptionIndex;
|
||||||
|
QList<int> const timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg, paymentOptionIndex);
|
||||||
|
qCritical() << "TimeSteps" << timeSteps;
|
||||||
|
|
||||||
|
// QDateTime start = s.addSecs(offset * 60);
|
||||||
|
|
||||||
|
QList<int>::const_iterator step;
|
||||||
|
for (step = timeSteps.cbegin(); step != timeSteps.cend(); ++step) {
|
||||||
|
|
||||||
|
double cost = 0;
|
||||||
|
|
||||||
|
//if (compute_price_for_parking_ticket(&cfg, start, *step, end, &price)) {
|
||||||
|
// cost = price.netto;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SCHOENAU_KOENIGSEE==1
|
#if SCHOENAU_KOENIGSEE==1
|
||||||
QString f("/opt/ptu5/opt/customer_332/etc/psa_tariff/tariff01.json");
|
//QString f("/opt/ptu5/opt/customer_332/etc/psa_tariff/tariff01.json");
|
||||||
//QString f("/opt/ptu5/opt/customer_332/etc/psa_tariff/tariff02.json");
|
QString f("/opt/ptu5/opt/customer_332/etc/psa_tariff/tariff02.json");
|
||||||
|
|
||||||
std::ifstream input(f.toUtf8().constData());
|
std::ifstream input(f.toUtf8().constData());
|
||||||
|
|
||||||
@ -329,24 +275,22 @@ int main() {
|
|||||||
QDateTime start = QDateTime::currentDateTime();
|
QDateTime start = QDateTime::currentDateTime();
|
||||||
|
|
||||||
// zone 1
|
// zone 1
|
||||||
//int timeSteps[9] = {60, 180, 1440, 2880, 4320, 5670, 7200, 8640, 10080};
|
//int timeSteps[] = {60, 180, 1440, 2880, 4320, 5670, 7200, 8640, 10080, 11520, 12960, 14400};
|
||||||
|
|
||||||
|
|
||||||
// zone 2
|
|
||||||
//int timeSteps[3] = {60, 180, 1440};
|
|
||||||
|
|
||||||
static QList<int> const timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg);
|
static QList<int> const timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg);
|
||||||
qCritical() << "TimeSteps" << timeSteps;
|
qCritical() << "TimeSteps" << timeSteps;
|
||||||
|
|
||||||
// for (int i = 0 ; i < timeSteps.size(); ++i) {
|
for (int i = 0 ; i < timeSteps.size(); ++i) {
|
||||||
// QDateTime end = start.addSecs(timeSteps.at(i)*60);
|
QDateTime end = start.addSecs(timeSteps.at(i)*60);
|
||||||
//
|
|
||||||
// double price = Calculator::GetInstance().GetCostFromDuration(
|
double price = Calculator::GetInstance().GetCostFromDuration(
|
||||||
// &cfg,
|
&cfg,
|
||||||
// start,
|
start,
|
||||||
// timeSteps.at(i));
|
timeSteps.at(i));
|
||||||
// qDebug() << "GetCostFromDuration() time: " << timeSteps.at(i) << "price=" << price;
|
qDebug() << "GetCostFromDuration() time: " << timeSteps.at(i)
|
||||||
//}
|
<< "(" << timeSteps.at(i)/60 << "h)"
|
||||||
|
<< "price=" << price;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user