small tweak for multiblock class and its unit test
This commit is contained in:
parent
d24e57aaac
commit
dffc1ac545
@ -43,7 +43,7 @@ public:
|
||||
VTKM_CONT
|
||||
MultiBlock(const vtkm::cont::MultiBlock &src)
|
||||
{
|
||||
this->blocks=src.GetBlocks();
|
||||
this->blocks = src.GetBlocks();
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
@ -52,15 +52,15 @@ public:
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
MultiBlock(const std::vector<vtkm::cont::DataSet> mblocks)
|
||||
MultiBlock(const std::vector<vtkm::cont::DataSet> &mblocks)
|
||||
{
|
||||
this->blocks=mblocks;
|
||||
this->blocks = mblocks;
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
MultiBlock &operator=(const vtkm::cont::MultiBlock &src)
|
||||
{
|
||||
this->blocks=src.GetBlocks();
|
||||
this->blocks = src.GetBlocks();
|
||||
}
|
||||
|
||||
~MultiBlock()
|
||||
@ -85,10 +85,18 @@ public:
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
vtkm::cont::DataSet &AddBlock(vtkm::cont::DataSet ds)
|
||||
void AddBlock(vtkm::cont::DataSet &ds)
|
||||
{
|
||||
this->blocks.push_back(ds);
|
||||
return this->blocks[this->blocks.size()-1];
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
void AddBlocks(std::vector<vtkm::cont::DataSet> &mblocks)
|
||||
{
|
||||
for(int i = 0; i < mblocks.size(); i++)
|
||||
{
|
||||
AddBlock(mblocks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
@ -100,4 +108,4 @@ private:
|
||||
}
|
||||
} // namespace vtkm::cont
|
||||
|
||||
#endif //vtk_m_cont_CellSet_h
|
||||
#endif
|
||||
|
@ -35,53 +35,52 @@ static void MultiBlock_TwoDimUniformTest();
|
||||
void TestMultiBlock_Uniform()
|
||||
{
|
||||
std::cout << std::endl;
|
||||
std::cout << "--TestDataSet_Uniform--" << std::endl << std::endl;
|
||||
|
||||
std::cout << "--TestDataSet Uniform and Rectilinear--" << std::endl << std::endl;
|
||||
MultiBlock_TwoDimUniformTest();
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
MultiBlock_TwoDimUniformTest()
|
||||
{
|
||||
std::cout<<"MultiBlock 2D Uniform data set"<<std::endl;
|
||||
vtkm::cont::testing::MakeTestDataSet testDataSet;
|
||||
vtkm::cont::MultiBlock TestBlock;
|
||||
|
||||
vtkm::cont::DataSet dataSet = testDataSet.Make2DUniformDataSet0();
|
||||
vtkm::cont::DataSet TDset1=testDataSet.Make2DUniformDataSet0();
|
||||
vtkm::cont::DataSet TDset2=testDataSet.Make3DUniformDataSet0();
|
||||
|
||||
TestBlock.AddBlock(dataSet);
|
||||
TestBlock.AddBlock(dataSet);
|
||||
|
||||
vtkm::cont::DataSet TestDSet =TestBlock.GetBlock(1);
|
||||
TestBlock.AddBlock(TDset1);
|
||||
TestBlock.AddBlock(TDset2);
|
||||
|
||||
VTKM_TEST_ASSERT(TestBlock.GetNumberOfBlocks() == 2,
|
||||
"Incorrect number of blocks");
|
||||
VTKM_TEST_ASSERT(dataSet.GetNumberOfFields() == TestDSet.GetNumberOfFields(),
|
||||
|
||||
vtkm::cont::DataSet TestDSet =TestBlock.GetBlock(0);
|
||||
VTKM_TEST_ASSERT(TDset1.GetNumberOfFields() == TestDSet.GetNumberOfFields(),
|
||||
"Incorrect number of fields");
|
||||
VTKM_TEST_ASSERT(dataSet.GetNumberOfCoordinateSystems() == TestDSet.GetNumberOfCoordinateSystems(),
|
||||
VTKM_TEST_ASSERT(TDset1.GetNumberOfCoordinateSystems() == TestDSet.GetNumberOfCoordinateSystems(),
|
||||
"Incorrect number of coordinate systems");
|
||||
|
||||
TestDSet =TestBlock.GetBlock(1);
|
||||
VTKM_TEST_ASSERT(TDset2.GetNumberOfFields() == TestDSet.GetNumberOfFields(),
|
||||
"Incorrect number of fields");
|
||||
VTKM_TEST_ASSERT(TDset2.GetNumberOfCoordinateSystems() == TestDSet.GetNumberOfCoordinateSystems(),
|
||||
"Incorrect number of coordinate systems");
|
||||
|
||||
// test various field-getting methods and associations
|
||||
try
|
||||
{
|
||||
TestDSet.GetField("cellvar", vtkm::cont::Field::ASSOC_CELL_SET);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
VTKM_TEST_FAIL("Failed to get field 'cellvar' with ASSOC_CELL_SET.");
|
||||
}
|
||||
std::vector<vtkm::cont::DataSet> Vblocks;
|
||||
Vblocks.push_back(testDataSet.Make2DRectilinearDataSet0());
|
||||
Vblocks.push_back(testDataSet.Make3DRegularDataSet1());
|
||||
Vblocks.push_back(testDataSet.Make3DRegularDataSet0());
|
||||
|
||||
try
|
||||
vtkm::cont::MultiBlock T2Block(Vblocks);
|
||||
std::vector<vtkm::cont::DataSet> InBlocks = T2Block.GetBlocks();
|
||||
for(int j=0; j<InBlocks.size(); j++)
|
||||
{
|
||||
TestDSet.GetField("pointvar", vtkm::cont::Field::ASSOC_POINTS);
|
||||
vtkm::cont::DataSet TestDSet =InBlocks[j];
|
||||
VTKM_TEST_ASSERT(Vblocks[j].GetNumberOfFields() == TestDSet.GetNumberOfFields(),
|
||||
"Incorrect number of fields");
|
||||
VTKM_TEST_ASSERT(Vblocks[j].GetNumberOfCoordinateSystems() == TestDSet.GetNumberOfCoordinateSystems(),
|
||||
"Incorrect number of coordinate systems");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
VTKM_TEST_FAIL("Failed to get field 'pointvar' with ASSOC_POINT_SET.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user