| 228 | } |
| 229 | |
| 230 | void NotebookTest::testParserDateTime64ns() { |
| 231 | // Testing datetime day |
| 232 | // example output taken from a column in panda's dataframe, contains line breaks after every second value |
| 233 | QString input = QStringLiteral( |
| 234 | "array(['2009-01-01T00:10:00.000000000', '2009-01-01T00:20:00.000000000',\n '2009-01-01T00:30:00.000000000', '2009-01-01T00:40:00.000000000'],\n " |
| 235 | " dtype='datetime64[ns]')"); |
| 236 | VariableParser parser(QStringLiteral("python"), input); |
| 237 | |
| 238 | QTEST_ASSERT(parser.dataType() == AbstractColumn::ColumnMode::DateTime); |
| 239 | QCOMPARE(parser.isParsed(), true); |
| 240 | auto res = parser.dateTime(); |
| 241 | |
| 242 | QCOMPARE(res.length(), 4); |
| 243 | QCOMPARE(res.at(0).isValid(), true); |
| 244 | QCOMPARE(res.at(1).isValid(), true); |
| 245 | QCOMPARE(res.at(2).isValid(), true); |
| 246 | QCOMPARE(res.at(3).isValid(), true); |
| 247 | |
| 248 | // ns are read as ms at the moment, higher precision not supported yet. |
| 249 | QTEST_ASSERT(res.at(0).toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")) == QStringLiteral("2009-01-01T00:10:00.000")); |
| 250 | QTEST_ASSERT(res.at(1).toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")) == QStringLiteral("2009-01-01T00:20:00.000")); |
| 251 | QTEST_ASSERT(res.at(2).toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")) == QStringLiteral("2009-01-01T00:30:00.000")); |
| 252 | QTEST_ASSERT(res.at(3).toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")) == QStringLiteral("2009-01-01T00:40:00.000")); |
| 253 | } |
| 254 | |
| 255 | //********************************************************** |
| 256 | //************************* Octave ************************* |