add tests for bad-neuenahr
This commit is contained in:
		
							
								
								
									
										133
									
								
								main/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								main/main.cpp
									
									
									
									
									
								
							@@ -43,7 +43,7 @@ extern "C" char* strptime(const char* s,
 | 
			
		||||
#define NEUHAUSER_LINSINGER_MASCHINENBAU        (0)
 | 
			
		||||
#define NEUHAUSER_NORDISCHES_AUSBILDUNGSZENTRUM (0)
 | 
			
		||||
#define NEUHAUSER_BILEXA_GALTUER                (0)
 | 
			
		||||
#define BAD_NEUENAHR_AHRWEILER                  (0)
 | 
			
		||||
#define BAD_NEUENAHR_AHRWEILER                  (1)
 | 
			
		||||
#define NEUHAUSER_CHRISTOPH_REISEN              (0)
 | 
			
		||||
#define NEUHAUSER_PERNEGG_AN_DER_MUR            (0)
 | 
			
		||||
#define NEUHAUSER_STOCKERAU                     (0)
 | 
			
		||||
@@ -51,7 +51,7 @@ extern "C" char* strptime(const char* s,
 | 
			
		||||
#define SEXTEN                                  (0)
 | 
			
		||||
#define SCHNALS_LEITER_KIRCHL                   (0)
 | 
			
		||||
#define SCHNALS_STAUMAUER                       (SCHNALS_LEITER_KIRCHL)
 | 
			
		||||
#define VALSER_ALM                              (1)
 | 
			
		||||
#define VALSER_ALM                              (0)
 | 
			
		||||
 | 
			
		||||
#if NEUHAUSER_KIRCHDORF==1
 | 
			
		||||
static bool test_neuhauser_kirchdorf(int step, double cost) {
 | 
			
		||||
@@ -339,20 +339,20 @@ int main() {
 | 
			
		||||
    cout << endl;
 | 
			
		||||
 | 
			
		||||
    if (isParsed) {
 | 
			
		||||
        pop_min_time = get_minimal_parkingtime(&cfg);
 | 
			
		||||
        pop_max_time = get_maximal_parkingtime(&cfg);
 | 
			
		||||
        pop_min_price = get_minimal_parkingprice(&cfg);
 | 
			
		||||
        pop_max_price = get_maximal_parkingprice(&cfg);
 | 
			
		||||
        pop_daily_card_price = cfg.getPaymentOptions().pop_daily_card_price;
 | 
			
		||||
        //pop_min_time = get_minimal_parkingtime(&cfg);
 | 
			
		||||
        //pop_max_time = get_maximal_parkingtime(&cfg);
 | 
			
		||||
        //pop_min_price = get_minimal_parkingprice(&cfg);
 | 
			
		||||
        //pop_max_price = get_maximal_parkingprice(&cfg);
 | 
			
		||||
        //pop_daily_card_price = cfg.getPaymentOptions().pop_daily_card_price;
 | 
			
		||||
 | 
			
		||||
        qCritical() << "        pop_min_time: " << pop_min_time;
 | 
			
		||||
        qCritical() << "        pop_max_time: " << pop_max_time;
 | 
			
		||||
        qCritical() << "       pop_min_price: " << pop_min_price;
 | 
			
		||||
        qCritical() << "       pop_max_price: " << pop_max_price;
 | 
			
		||||
        //qCritical() << "        pop_min_time: " << pop_min_time;
 | 
			
		||||
        //qCritical() << "        pop_max_time: " << pop_max_time;
 | 
			
		||||
        //qCritical() << "       pop_min_price: " << pop_min_price;
 | 
			
		||||
        //qCritical() << "       pop_max_price: " << pop_max_price;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        QList<int> timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg);
 | 
			
		||||
        qCritical() << "TimeSteps" << timeSteps;
 | 
			
		||||
        //QList<int> timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg);
 | 
			
		||||
        //qCritical() << "TimeSteps" << timeSteps;
 | 
			
		||||
 | 
			
		||||
        // return 0;
 | 
			
		||||
 | 
			
		||||
@@ -363,8 +363,7 @@ int main() {
 | 
			
		||||
 | 
			
		||||
        // for (int day = Qt::Monday; day <= Qt::Sunday; ++day) {
 | 
			
		||||
        for (int day = Qt::Monday; day <= Qt::Monday; ++day) {
 | 
			
		||||
            QDateTime s(QDate(2024, 7, 29 + day), QTime()); // 20: (whit) monday,..., 26: sunday
 | 
			
		||||
            QDateTime end;
 | 
			
		||||
            QDateTime s(QDate(2024, 8, 19 + day), QTime()); // 20: (whit) monday,..., 26: sunday
 | 
			
		||||
 | 
			
		||||
            switch (day) {
 | 
			
		||||
            case (int)Qt::Monday:
 | 
			
		||||
@@ -390,6 +389,30 @@ int main() {
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            QDateTime start(s);
 | 
			
		||||
            start.setTime(QTime(21, 30, 0));
 | 
			
		||||
 | 
			
		||||
            QDateTime end;
 | 
			
		||||
            int netto_parking_time = 14 * 60;
 | 
			
		||||
            struct price_t costs;
 | 
			
		||||
            PermitType pt(PERMIT_TYPE::SHORT_TERM_PARKING);
 | 
			
		||||
 | 
			
		||||
            double cost = 150;
 | 
			
		||||
 | 
			
		||||
            //cs = compute_price_for_parking_ticket(&cfg, start, netto_parking_time,
 | 
			
		||||
            //                                      end, &costs, pt);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //qCritical() << "start" << start.toString(Qt::ISODate) << "< cost" << costs.netto
 | 
			
		||||
            //            << "> end" << end.toString(Qt::ISODate);
 | 
			
		||||
 | 
			
		||||
            cs = compute_duration_for_parking_ticket(&cfg, start, cost, end, PermitType(PERMIT_TYPE::SHORT_TERM_PARKING));
 | 
			
		||||
                        qCritical() << "start" << start.toString(Qt::ISODate) << "< cost" << cost
 | 
			
		||||
                                    << "> end" << end.toString(Qt::ISODate);
 | 
			
		||||
            //}
 | 
			
		||||
 | 
			
		||||
            exit(0);
 | 
			
		||||
 | 
			
		||||
            /*
 | 
			
		||||
            CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
 | 
			
		||||
@@ -1357,7 +1380,7 @@ int main() {
 | 
			
		||||
    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) {
 | 
			
		||||
        switch (zone) {
 | 
			
		||||
        case 1: {
 | 
			
		||||
@@ -1366,6 +1389,7 @@ int main() {
 | 
			
		||||
            //pop_max_time = 6*60;
 | 
			
		||||
        } break;
 | 
			
		||||
        case 2: {
 | 
			
		||||
            qCritical() << "        ZONE 2: KURZZEIT 1";
 | 
			
		||||
            // kuzzeit-1-tarif
 | 
			
		||||
            input.open("/opt/ptu5/opt/customer_249/etc/psa_tariff/tariff02.json");
 | 
			
		||||
            //pop_max_time = 5*60;
 | 
			
		||||
@@ -1408,6 +1432,11 @@ int main() {
 | 
			
		||||
        cout << endl;
 | 
			
		||||
 | 
			
		||||
        if (isParsed) {
 | 
			
		||||
 | 
			
		||||
            qCritical() << "Parsed";
 | 
			
		||||
 | 
			
		||||
            exit(0);
 | 
			
		||||
 | 
			
		||||
            // test library functions
 | 
			
		||||
 | 
			
		||||
            if (zone == 1) {
 | 
			
		||||
@@ -1434,10 +1463,10 @@ int main() {
 | 
			
		||||
                static QList<int> const timeSteps = Calculator::GetInstance().GetTimeSteps(&cfg);
 | 
			
		||||
                qCritical() << "TimeSteps" << timeSteps;
 | 
			
		||||
 | 
			
		||||
                if (stepsConfigured != timeSteps) {
 | 
			
		||||
                    qCritical() << "TIME-STEPS SHOULD BE" << stepsConfigured;
 | 
			
		||||
                    return -1;
 | 
			
		||||
                }
 | 
			
		||||
                //if (stepsConfigured != timeSteps) {
 | 
			
		||||
                //    qCritical() << "TIME-STEPS SHOULD BE" << stepsConfigured;
 | 
			
		||||
                //    return -1;
 | 
			
		||||
                //}
 | 
			
		||||
 | 
			
		||||
                QDateTime start = QDateTime::currentDateTime();
 | 
			
		||||
 | 
			
		||||
@@ -1445,7 +1474,8 @@ int main() {
 | 
			
		||||
                double price1 = 0;
 | 
			
		||||
                double price2 = 0;
 | 
			
		||||
 | 
			
		||||
                for (int m=0; m < 1440; ++m) {
 | 
			
		||||
                //for (int m=0; m < 1440; ++m) {
 | 
			
		||||
                for (int m=480; m < 481; ++m) {
 | 
			
		||||
                    start.setTime(QTime(0, 0, 0));
 | 
			
		||||
                    start = start.addSecs(m*60);
 | 
			
		||||
 | 
			
		||||
@@ -1462,7 +1492,7 @@ int main() {
 | 
			
		||||
                    //}
 | 
			
		||||
 | 
			
		||||
                    CalcState cs;
 | 
			
		||||
 | 
			
		||||
#if 1
 | 
			
		||||
                    for (int i = 0, j=timeSteps.size() ; i < timeSteps.size(); --j, ++i) {
 | 
			
		||||
                        QDateTime end = start.addSecs(timeSteps.at(i)*60);
 | 
			
		||||
 | 
			
		||||
@@ -1497,6 +1527,21 @@ int main() {
 | 
			
		||||
                        //                                                                     cost[i], false, true);
 | 
			
		||||
                        //qCritical() << "duration" << duration.c_str();
 | 
			
		||||
                    }
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
                    double cost = 80;
 | 
			
		||||
                    qCritical() << "START" << start.toString(Qt::ISODate) << "cost" << cost;
 | 
			
		||||
                    QDateTime end;
 | 
			
		||||
 | 
			
		||||
                    cs = compute_duration_for_parking_ticket(&cfg, start, cost, end,
 | 
			
		||||
                                                             PermitType(PERMIT_TYPE::SHORT_TERM_PARKING));
 | 
			
		||||
                        qCritical() << __LINE__ << cs.toString()
 | 
			
		||||
                                    << "START" << start.toString(Qt::ISODate)
 | 
			
		||||
                                    << "<duration" << start.secsTo(end) / 60
 | 
			
		||||
                                    << "cost" << cost
 | 
			
		||||
                                    << "> end" << end.toString(Qt::ISODate);
 | 
			
		||||
                    //}
 | 
			
		||||
#endif
 | 
			
		||||
                }
 | 
			
		||||
            } // zone == 1
 | 
			
		||||
            if (zone == 2) {
 | 
			
		||||
@@ -1534,18 +1579,18 @@ int main() {
 | 
			
		||||
                bool fail;
 | 
			
		||||
                QDateTime start;
 | 
			
		||||
 | 
			
		||||
                for (int i=0; i < 4; ++i) {
 | 
			
		||||
                for (int i=1; i < 2; ++i) {
 | 
			
		||||
                    switch (i) {
 | 
			
		||||
                    case 0:
 | 
			
		||||
                        start = QDateTime(QDate(2024, 5, 1), QTime(16, 0, 0)); // holiday
 | 
			
		||||
                        fail = false;
 | 
			
		||||
                    break;
 | 
			
		||||
                    case 1:
 | 
			
		||||
                        start = QDateTime(QDate(2024, 4, 21), QTime(16, 0, 0)); // sunday
 | 
			
		||||
                        start = QDateTime(QDate(2024, 10, 3), QTime(17, 0, 0)); // sunday
 | 
			
		||||
                        fail = false;
 | 
			
		||||
                    break;
 | 
			
		||||
                    case 2:
 | 
			
		||||
                        start = QDateTime(QDate(2024, 4, 22), QTime(8, 0, 0)); // monday
 | 
			
		||||
                        start = QDateTime(QDate(2024, 4, 22), QTime(17, 30, 0)); // monday
 | 
			
		||||
                        fail = false;
 | 
			
		||||
                    break;
 | 
			
		||||
                    case 3:
 | 
			
		||||
@@ -1569,18 +1614,52 @@ int main() {
 | 
			
		||||
 | 
			
		||||
                        QList<int>::const_iterator step;
 | 
			
		||||
                        for (step = timeSteps.cbegin(); step != timeSteps.cend(); ++step) {
 | 
			
		||||
                            //qCritical() << __LINE__
 | 
			
		||||
                            //            << "START" << start.toString(Qt::ISODate)
 | 
			
		||||
                            //            << "<duration" << *step;
 | 
			
		||||
 | 
			
		||||
                            // if (*step != 180)
 | 
			
		||||
                            // continue;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                            double cost = 0;
 | 
			
		||||
                            CalcState cs;
 | 
			
		||||
 | 
			
		||||
                            if ((cs = compute_price_for_parking_ticket(&cfg, start, *step, end, &price, PermitType(PERMIT_TYPE::SHORT_TERM_PARKING)))) {
 | 
			
		||||
                            QDateTime s(start);
 | 
			
		||||
 | 
			
		||||
                            qCritical() << __LINE__
 | 
			
		||||
                                        << "START" << start.toString(Qt::ISODate)
 | 
			
		||||
                                        << "<duration" << *step;
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
                            if ((cs = compute_price_for_parking_ticket(&cfg, s, *step, end, &price,
 | 
			
		||||
                                                                       PermitType(PERMIT_TYPE::SHORT_TERM_PARKING)))) {
 | 
			
		||||
                                cost = price.netto;
 | 
			
		||||
                                qCritical() << "step" << *step << ": cost" << cost;
 | 
			
		||||
                                qCritical() << __LINE__
 | 
			
		||||
                                            << "START" << start.toString(Qt::ISODate)
 | 
			
		||||
                                            << "<duration" << *step
 | 
			
		||||
                                            << "cost" << cost
 | 
			
		||||
                                            << "> end" << end.toString(Qt::ISODate);
 | 
			
		||||
                            } else {
 | 
			
		||||
                                if (fail == false) {
 | 
			
		||||
                                    qCritical() << "<<<ERROR>>> cs =" << QString(cs);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
#else
 | 
			
		||||
                            cost = 210;
 | 
			
		||||
                            qCritical() << "START" << start.toString(Qt::ISODate) << "cost" << cost;
 | 
			
		||||
 | 
			
		||||
                            cs = compute_duration_for_parking_ticket(&cfg, start, cost, end,
 | 
			
		||||
                                                                         PermitType(PERMIT_TYPE::SHORT_TERM_PARKING));
 | 
			
		||||
                                qCritical() << __LINE__ << cs.toString()
 | 
			
		||||
                                            << "START" << start.toString(Qt::ISODate)
 | 
			
		||||
                                            << "<duration" << start.secsTo(end) / 60
 | 
			
		||||
                                            << "cost" << cost
 | 
			
		||||
                                            << "> end" << end.toString(Qt::ISODate);
 | 
			
		||||
                            break;
 | 
			
		||||
                            //}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
                        }
 | 
			
		||||
                    } else {
 | 
			
		||||
                        qCritical() << "ERROR paymentOptionIndex =" << paymentOptionIndex;
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,7 @@ SOURCES += main.cpp
 | 
			
		||||
# HEADERS +=
 | 
			
		||||
 | 
			
		||||
OTHER_FILES += \
 | 
			
		||||
    /opt/ptu5/opt/customer_502/etc/psa_tariff/tariff01.json \
 | 
			
		||||
    /opt/ptu5/opt/customer_502/etc/psa_tariff/tariff02.json \
 | 
			
		||||
    /opt/ptu5/opt/customer_502/etc/psa_tariff/tariff03.json
 | 
			
		||||
    /opt/ptu5/opt/customer_249/etc/psa_tariff/tariff02.json
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user