csvpp/tests.cpp

123 lines
3.8 KiB
C++

#include <iostream>
#include "csvpp.h"
using namespace std;
using namespace csvpp;
int main()
{
int test = 1;
// Test 1
{
RowReader tmp(",");
stringstream ss;
ss << "field1,field2,field3\r\n123,234,345\r\n999,000,111\r\n";
ss >> tmp;
rowiterator it;
int row = 0;
while(ss >> tmp)
{
switch (row)
{
case 0:
if (tmp["field1"] != "123")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
case 1:
if (tmp["field1"] != "999")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
}
row++;
}
}
test++;
// Test 2
{
RowReader tmp;
stringstream ss;
ss << "field1,field2,field3\n123,234,345\n999,000,111\n";
ss >> tmp;
rowiterator it;
int row = 0;
while(ss >> tmp)
{
switch (row)
{
case 0:
if (tmp["field1"] != "123")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
case 1:
if (tmp["field1"] != "999")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
}
row++;
}
}
test++;
// Test 3
// Testing patch provided by Hanifa
// https://code.google.com/p/csvpp/issues/detail?id=2
{
RowReader tmp("|");
stringstream ss;
ss << "field1|field2|field3\r\n123|234|345\r\n999|000|111\r\n";
ss >> tmp;
rowiterator it;
int row = 0;
while(ss >> tmp)
{
switch (row)
{
case 0:
if (tmp["field1"] != "123")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
case 1:
if (tmp["field1"] != "999")
{
cerr << tmp["field1"] << endl;
cerr << "Failed at row " << row << endl;
cerr << "Failed at test " << test << endl;
return 1;
}
break;
}
row++;
}
}
cout << "All tests ran successfully" << endl;
return 0;
}