Skip to content

Commit

Permalink
Re #10123. Test for saving string columns.
Browse files Browse the repository at this point in the history
  • Loading branch information
mantid-roman committed Dec 2, 2014
1 parent 3e516e9 commit e755534
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions Code/Mantid/Framework/DataHandling/test/SaveNexusProcessedTest.h
Expand Up @@ -617,6 +617,13 @@ class SaveNexusProcessedTest : public CxxTest::TestSuite
data[1] = V3D(4,5,6);
data[2] = V3D(7,8,9);
}
table->addColumn("str", "StringColumn");
{
auto& data = table->getColVector<std::string>("StringColumn");
data[0] = "First row";
data[1] = "2";
data[2] = "";
}

SaveNexusProcessed alg;
alg.initialize();
Expand Down Expand Up @@ -693,6 +700,45 @@ class SaveNexusProcessedTest : public CxxTest::TestSuite
doTestColumnData( "V3DColumn",savedNexus, expectedData, 9 );
}

{
savedNexus.openData("column_9");

NeXus::Info columnInfo = savedNexus.getInfo();
TS_ASSERT_EQUALS( columnInfo.dims.size(), 2 );
TS_ASSERT_EQUALS( columnInfo.dims[0], 3 );
TS_ASSERT_EQUALS( columnInfo.dims[1], 9 );
TS_ASSERT_EQUALS( columnInfo.type, NX_CHAR );

std::vector<NeXus::AttrInfo> attrInfos = savedNexus.getAttrInfos();
TS_ASSERT_EQUALS( attrInfos.size(), 3 );

if ( attrInfos.size() == 3 )
{
TS_ASSERT_EQUALS( attrInfos[1].name, "interpret_as");
TS_ASSERT_EQUALS( savedNexus.getStrAttr(attrInfos[1]), "A string" );

TS_ASSERT_EQUALS( attrInfos[2].name, "name");
TS_ASSERT_EQUALS( savedNexus.getStrAttr(attrInfos[2]), "StringColumn" );

TS_ASSERT_EQUALS( attrInfos[0].name, "units");
TS_ASSERT_EQUALS( savedNexus.getStrAttr(attrInfos[0]), "N/A" );
}

std::vector<char> data;
savedNexus.getData(data);
TS_ASSERT_EQUALS( data.size(), 9 * 3 );

std::string first( data.begin(), data.begin() + 9 );
TS_ASSERT_EQUALS( first, "First row" );

std::string second( data.begin() + 9, data.begin() + 18 );
TS_ASSERT_EQUALS( second, "2 " );

std::string third( data.begin() + 18, data.end() );
TS_ASSERT_EQUALS( third, " " );

}

savedNexus.close();
Poco::File(outputFileName).remove();
AnalysisDataService::Instance().clear();
Expand Down

0 comments on commit e755534

Please sign in to comment.