TU-Programmieren_2/lab3/modules/iue-io/csv.test.cpp
2025-04-09 10:22:44 +02:00

73 lines
1.4 KiB
C++

#include "iue-io/csv.hpp"
#include <cassert> // assert
#include <cstddef> // std::size_t
#include <iostream> // std::cout|endl
#include <stdlib.h>
#include <vector> // std::vector
int main() {
// prep input data
std::vector<std::vector<double>> table1;
{
auto row = std::vector<double>{1, 2, 3};
table1.push_back(row);
}
{
auto row = std::vector<double>{10, 20, 30, 40};
table1.push_back(row);
}
{
auto row = std::vector<double>{1e3, 2e3, 3e3, 4e3};
table1.push_back(row);
}
// write
try {
for (const auto& row : table1) {
for (const auto& value : row)
std::cout << value << " ";
std::cout << std::endl;
}
iue::io::savetxt("csv_test.csv", table1, ';', "this is a multiline \n header comment");
} catch (const std::exception& e) {
std::cout << e.what();
}
std::vector<std::vector<double>> table2;
// read
try {
table2 = iue::io::loadtxt("csv_test.csv", ';');
for (const auto& row : table2) {
for (const auto& value : row)
std::cout << value << " ";
std::cout << std::endl;
}
} catch (const std::exception& e) {
std::cout << e.what();
}
// compare
assert(table1.size() == table2.size());
for (size_t r = 0; r != table1.size(); ++r) {
assert(table1[r].size() == table2[r].size());
for (size_t c = 0; c != table1[r].size(); ++c) {
assert(table1[r][c] == table2[r][c]);
}
}
return EXIT_SUCCESS;
}