MCPcopy Create free account
hub / github.com/KDE/labplot / exportImport

Method exportImport

tests/import_export/FITS/FITSFilterTest.cpp:238–297  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238void FITSFilterTest::exportImport() {
239 // create Spreadsheet with data
240 Spreadsheet spreadsheet(QStringLiteral("Spreadsheet"), false);
241 spreadsheet.setColumnCount(3);
242 spreadsheet.setRowCount(10);
243
244 const QVector<double> data{0.5, -0.2, GSL_NAN, 2.0, -1.0};
245
246 auto* col1{spreadsheet.column(0)};
247 col1->setColumnMode(AbstractColumn::ColumnMode::Integer);
248 auto* col2{spreadsheet.column(1)};
249 auto* col3{spreadsheet.column(2)};
250
251 SpreadsheetView view(&spreadsheet, false);
252 view.selectColumn(0);
253 view.fillWithRowNumbers();
254 view.selectColumn(1);
255
256 EquidistantValuesDialog dlg(&spreadsheet);
257 dlg.setColumns(QVector<Column*>{col2});
258 dlg.setType(EquidistantValuesDialog::Type::FixedNumber);
259 dlg.setNumber(6);
260 dlg.setFromValue(1.);
261 dlg.setToValue(2.);
262 dlg.generate();
263
264 col3->replaceValues(0, data);
265
266 // export to FITS
267 QTemporaryFile file;
268 if (!file.open()) // needed to generate file name
269 return;
270 file.close(); // only file name is used
271
272 QString fileName = file.fileName();
273 fileName.append(QStringLiteral(".fits"));
274
275 FITSFilter filter;
276 // exports to primary header
277 filter.write(fileName, &spreadsheet);
278
279 // import FITS file to another spreadsheet
280 Spreadsheet spreadsheet2(QStringLiteral("Import"), false);
281 filter.readDataFromFile(fileName, &spreadsheet2);
282
283 QCOMPARE(spreadsheet2.columnCount(), 3);
284 QCOMPARE(spreadsheet2.rowCount(), 10);
285
286 // check values
287 for (int i = 0; i < spreadsheet2.rowCount(); i++)
288 QCOMPARE(spreadsheet2.column(0)->valueAt(i), i + 1);
289
290 for (int i = 0; i < 6; i++)
291 FuzzyCompare(spreadsheet2.column(1)->valueAt(i), 1. + i * 0.2, 1.e-7);
292
293 for (int i = 0; i < data.size(); i++)
294 FuzzyCompare(spreadsheet2.column(2)->valueAt(i), data.at(i), 1.e-7);
295

Callers

nothing calls this directly

Calls 15

selectColumnMethod · 0.80
fillWithRowNumbersMethod · 0.80
setNumberMethod · 0.80
setFromValueMethod · 0.80
setToValueMethod · 0.80
appendMethod · 0.80
setColumnCountMethod · 0.45
setRowCountMethod · 0.45
columnMethod · 0.45
setColumnModeMethod · 0.45
setColumnsMethod · 0.45
setTypeMethod · 0.45

Tested by

no test coverage detected