Test of class NcChar.
#include <iostream>
using std::cout;
using std::endl;
#include "netcdf4"
using namespace netcdf;
static char const * const testFileName = "Test_NcChar.nc";
static char const *
const varNames[] = {
"oneChar",
"oneStr",
"strArray",
"strVector" };
static char const dataScalar = 'Z';
static char const * const data1D = "Doh ";
static char const * const data2D[] = { "Doh ", "Rey ", "Me ", 0 };
static short data2DSize = 3;
{
std::vector<NcDim> dimVec;
dimVec.push_back( dimRec );
dimVec.push_back( dimLen );
var1D.
PutAtt(
"_FillValue",
' ' );
}
{
varScalar.
Put( &dataScalar );
var2D.
Put( data2D, data2DSize );
}
{
char data = '\0';
return ( data == dataScalar );
}
{
std::string data;
return data == data1D;
}
{
char** csa = NULL;
var2D.
Get( csa, numRecords );
std::vector< std::string > strVec;
bool ok = true;
for ( short i = 0; i < (short)strVec.size(); ++i )
ok &= ( strVec[i] == data2D[i] );
return ok;
}
{
std::vector< std::string > strVec;
bool ok = ( (short)strVec.size() == data2DSize );
for ( short i = 0; i < (short)strVec.size() && ok; ++i )
ok &= ( strVec[i] == data2D[i] );
return ok;
}
{
std::string data;
bool ok = ( data == data2D[1] );
return ok;
}
std::string
const &
Test (
bool const result )
{
static std::string const strs[] = { "passed", "failed" };
return ( result ? strs[0] : strs[1] );
}
{
cout << "Test of class NcChar." << endl;
try
{
cout << "Creating file: " << testFileName << endl;
cout << "Adding data" << endl;
cout << "Reading data and comparing to original:" << endl;
cout << "Creating a char array from an NcType object, initialized to Z: ";
{
if ( ca[0] == 'Z' && ca[4] == 'Z' )
cout << "passed" << endl;
else
cout << "failed" << endl;
delete [] ca;
}
}
catch (std::exception const & e)
{
cout << "Exception: " << e.what() << endl;
}
catch (...)
{
cout << "Error: unknown error." << endl;
}
cout << "\n all done!" << endl;
return 0;
}