* check sorting datetimes with invalid entries ascending as leading column */
| 1081 | * check sorting datetimes with invalid entries ascending as leading column |
| 1082 | */ |
| 1083 | void SpreadsheetTest::testSortDateTime1() { |
| 1084 | Spreadsheet sheet(QStringLiteral("test"), false); |
| 1085 | sheet.setColumnCount(2); |
| 1086 | sheet.setRowCount(8); |
| 1087 | |
| 1088 | QVector<QDateTime> xData{ |
| 1089 | QDateTime(QDate(2020, 02, 29), QTime(12, 12, 12)), |
| 1090 | QDateTime(QDate(2020, 02, 28), QTime(12, 12, 12)), |
| 1091 | QDateTime(QDate(2019, 02, 28), QTime(12, 12, 12)), |
| 1092 | QDateTime(QDate(2019, 02, 29), QTime(12, 12, 12)), // invalid |
| 1093 | QDateTime(QDate(2020, 02, 29), QTime(12, 12, 13)), |
| 1094 | QDateTime(QDate(2020, 02, 29), QTime(11, 12, 12)), |
| 1095 | }; |
| 1096 | QVector<int> yData = {1, 2, 3, 4, 5, 6, 7}; |
| 1097 | |
| 1098 | auto* col0{sheet.column(0)}; |
| 1099 | auto* col1{sheet.column(1)}; |
| 1100 | col0->setColumnMode(AbstractColumn::ColumnMode::DateTime); |
| 1101 | col0->replaceDateTimes(0, xData); |
| 1102 | col1->setColumnMode(AbstractColumn::ColumnMode::Integer); |
| 1103 | col1->replaceInteger(0, yData); |
| 1104 | |
| 1105 | // sort |
| 1106 | sheet.sortColumns(col0, {col0, col1}, true); |
| 1107 | |
| 1108 | // values |
| 1109 | QCOMPARE(col0->dateTimeAt(0), QDateTime(QDate(2019, 02, 28), QTime(12, 12, 12))); |
| 1110 | QCOMPARE(col0->dateTimeAt(1), QDateTime(QDate(2020, 02, 28), QTime(12, 12, 12))); |
| 1111 | QCOMPARE(col0->dateTimeAt(2), QDateTime(QDate(2020, 02, 29), QTime(11, 12, 12))); |
| 1112 | QCOMPARE(col0->dateTimeAt(3), QDateTime(QDate(2020, 02, 29), QTime(12, 12, 12))); |
| 1113 | QCOMPARE(col0->dateTimeAt(4), QDateTime(QDate(2020, 02, 29), QTime(12, 12, 13))); |
| 1114 | QCOMPARE(col1->integerAt(0), 3); |
| 1115 | QCOMPARE(col1->integerAt(1), 2); |
| 1116 | QCOMPARE(col1->integerAt(2), 6); |
| 1117 | QCOMPARE(col1->integerAt(3), 1); |
| 1118 | QCOMPARE(col1->integerAt(4), 5); |
| 1119 | QCOMPARE(col1->integerAt(5), 4); |
| 1120 | QCOMPARE(col1->integerAt(6), 7); |
| 1121 | } |
| 1122 | |
| 1123 | /* |
| 1124 | * check sorting datetimes with invalid entries descending as leading column |
nothing calls this directly
no test coverage detected