Update filter test to use all data types.
This commit is contained in:
parent
c0189982ac
commit
4d6776cd16
@ -12,53 +12,46 @@
|
||||
#include <vtkm/cont/CellLocatorBoundingIntervalHierarchy.h>
|
||||
#include <vtkm/cont/DataSetBuilderUniform.h>
|
||||
#include <vtkm/cont/testing/Testing.h>
|
||||
|
||||
#include <vtkm/filter/Lagrangian.h>
|
||||
#include <vtkm/worklet/testing/GenerateTestDataSets.h>
|
||||
|
||||
vtkm::cont::DataSet MakeTestUniformDataSet()
|
||||
namespace
|
||||
{
|
||||
vtkm::Float64 xmin, xmax, ymin, ymax, zmin, zmax;
|
||||
xmin = 0.0;
|
||||
ymin = 0.0;
|
||||
zmin = 0.0;
|
||||
|
||||
xmax = 10.0;
|
||||
ymax = 10.0;
|
||||
zmax = 10.0;
|
||||
std::vector<vtkm::cont::DataSet> MakeDataSets()
|
||||
{
|
||||
vtkm::Float64 xmin = 0, xmax = 10;
|
||||
vtkm::Float64 ymin = 0, ymax = 10;
|
||||
vtkm::Float64 zmin = 0, zmax = 10;
|
||||
|
||||
const vtkm::Id3 DIMS(16, 16, 16);
|
||||
vtkm::Bounds bounds(xmin, xmax, ymin, ymax, zmin, zmax);
|
||||
const vtkm::Id3 dims(16, 16, 16);
|
||||
auto dataSets = vtkm::worklet::testing::CreateAllDataSets(bounds, dims, false);
|
||||
|
||||
vtkm::cont::DataSetBuilderUniform dsb;
|
||||
vtkm::Float64 xdiff = (xmax - xmin) / (static_cast<vtkm::Float64>(dims[0] - 1));
|
||||
vtkm::Float64 ydiff = (ymax - ymin) / (static_cast<vtkm::Float64>(dims[1] - 1));
|
||||
vtkm::Float64 zdiff = (zmax - zmin) / (static_cast<vtkm::Float64>(dims[2] - 1));
|
||||
|
||||
vtkm::Float64 xdiff = (xmax - xmin) / (static_cast<vtkm::Float64>(DIMS[0] - 1));
|
||||
vtkm::Float64 ydiff = (ymax - ymin) / (static_cast<vtkm::Float64>(DIMS[1] - 1));
|
||||
vtkm::Float64 zdiff = (zmax - zmin) / (static_cast<vtkm::Float64>(DIMS[2] - 1));
|
||||
vtkm::Id numPoints = dims[0] * dims[1] * dims[2];
|
||||
|
||||
vtkm::Vec3f_64 ORIGIN(0, 0, 0);
|
||||
vtkm::Vec3f_64 SPACING(xdiff, ydiff, zdiff);
|
||||
|
||||
vtkm::cont::DataSet dataset = dsb.Create(DIMS, ORIGIN, SPACING);
|
||||
|
||||
vtkm::Id numPoints = DIMS[0] * DIMS[1] * DIMS[2];
|
||||
|
||||
vtkm::cont::ArrayHandle<vtkm::Vec3f_64> velocityField;
|
||||
velocityField.Allocate(numPoints);
|
||||
|
||||
auto velocityPortal = velocityField.WritePortal();
|
||||
vtkm::Id count = 0;
|
||||
for (vtkm::Id i = 0; i < DIMS[0]; i++)
|
||||
for (auto& ds : dataSets)
|
||||
{
|
||||
for (vtkm::Id j = 0; j < DIMS[1]; j++)
|
||||
{
|
||||
for (vtkm::Id k = 0; k < DIMS[2]; k++)
|
||||
{
|
||||
velocityPortal.Set(count, vtkm::Vec3f_64(0.1, 0.1, 0.1));
|
||||
count++;
|
||||
}
|
||||
}
|
||||
vtkm::cont::ArrayHandle<vtkm::Vec3f_64> velocityField;
|
||||
velocityField.Allocate(numPoints);
|
||||
|
||||
auto velocityPortal = velocityField.WritePortal();
|
||||
vtkm::Id count = 0;
|
||||
for (vtkm::Id i = 0; i < dims[0]; i++)
|
||||
for (vtkm::Id j = 0; j < dims[1]; j++)
|
||||
for (vtkm::Id k = 0; k < dims[2]; k++)
|
||||
{
|
||||
velocityPortal.Set(count, vtkm::Vec3f_64(0.1, 0.1, 0.1));
|
||||
count++;
|
||||
}
|
||||
ds.AddPointField("velocity", velocityField);
|
||||
}
|
||||
dataset.AddPointField("velocity", velocityField);
|
||||
return dataset;
|
||||
|
||||
return dataSets;
|
||||
}
|
||||
|
||||
void TestLagrangianFilterMultiStepInterval()
|
||||
@ -70,30 +63,36 @@ void TestLagrangianFilterMultiStepInterval()
|
||||
lagrangianFilter2.SetResetParticles(true);
|
||||
lagrangianFilter2.SetStepSize(0.1f);
|
||||
lagrangianFilter2.SetWriteFrequency(write_interval);
|
||||
for (vtkm::Id i = 1; i <= maxCycles; i++)
|
||||
|
||||
auto dataSets = MakeDataSets();
|
||||
for (auto& input : dataSets)
|
||||
{
|
||||
vtkm::cont::DataSet input = MakeTestUniformDataSet();
|
||||
lagrangianFilter2.SetActiveField("velocity");
|
||||
vtkm::cont::DataSet extractedBasisFlows = lagrangianFilter2.Execute(input);
|
||||
if (i % write_interval == 0)
|
||||
for (vtkm::Id i = 1; i <= maxCycles; i++)
|
||||
{
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfCoordinateSystems() == 1,
|
||||
"Wrong number of coordinate systems in the output dataset.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 4096,
|
||||
"Wrong number of basis flows extracted.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfFields() == 2, "Wrong number of fields.");
|
||||
}
|
||||
else
|
||||
{
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 0,
|
||||
"Output dataset should have no points.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfCoordinateSystems() == 0,
|
||||
"Wrong number of coordinate systems in the output dataset.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfFields() == 0, "Wrong number of fields.");
|
||||
lagrangianFilter2.SetActiveField("velocity");
|
||||
vtkm::cont::DataSet extractedBasisFlows = lagrangianFilter2.Execute(input);
|
||||
if (i % write_interval == 0)
|
||||
{
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfCoordinateSystems() == 1,
|
||||
"Wrong number of coordinate systems in the output dataset.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 4096,
|
||||
"Wrong number of basis flows extracted.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfFields() == 2, "Wrong number of fields.");
|
||||
}
|
||||
else
|
||||
{
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 0,
|
||||
"Output dataset should have no points.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfCoordinateSystems() == 0,
|
||||
"Wrong number of coordinate systems in the output dataset.");
|
||||
VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfFields() == 0, "Wrong number of fields.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} //namespace
|
||||
|
||||
void TestLagrangian()
|
||||
{
|
||||
TestLagrangianFilterMultiStepInterval();
|
||||
|
Loading…
Reference in New Issue
Block a user