From 82cfba27cff2a53b85600dd534de4d34116f7e30 Mon Sep 17 00:00:00 2001 From: Abhishek Yenpure Date: Wed, 1 Apr 2020 21:26:26 -0700 Subject: [PATCH] Rectify testing code --- .../testing/UnitTestParticleAdvection.cxx | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/vtkm/worklet/testing/UnitTestParticleAdvection.cxx b/vtkm/worklet/testing/UnitTestParticleAdvection.cxx index 2aab97b5b..359e21a4b 100644 --- a/vtkm/worklet/testing/UnitTestParticleAdvection.cxx +++ b/vtkm/worklet/testing/UnitTestParticleAdvection.cxx @@ -522,10 +522,21 @@ void ValidateParticleAdvectionResult(const vtkm::worklet::ParticleAdvectionResul "Number of output particles does not match input."); for (vtkm::Id i = 0; i < nSeeds; i++) { - VTKM_TEST_ASSERT(res.Particles.ReadPortal().Get(i).NumSteps <= maxSteps, - "Too many steps taken in particle advection"); - VTKM_TEST_ASSERT(res.Particles.ReadPortal().Get(i).Status.CheckOk(), - "Bad status in particle advection"); + auto stepsTaken = res.Particles.ReadPortal().Get(i).NumSteps; + VTKM_TEST_ASSERT(stepsTaken <= maxSteps, "Too many steps taken in particle advection"); + std::cout << i << " : " << stepsTaken << std::endl; + if (stepsTaken < maxSteps) + { + std::cout << "stat : " << res.Particles.ReadPortal().Get(i).Status << std::endl; + VTKM_TEST_ASSERT(res.Particles.ReadPortal().Get(i).Status.CheckOk(), + "Bad status in particle advectioni, expected OK"); + } + else + { + std::cout << "stat : " << res.Particles.ReadPortal().Get(i).Status << std::endl; + VTKM_TEST_ASSERT(res.Particles.ReadPortal().Get(i).Status.CheckTerminate(), + "Bad status in particle advection, expected TERM"); + } } } @@ -573,17 +584,20 @@ void TestIntegrators() points.push_back(vtkm::Particle(RandomPoint(bounds), 0)); points.push_back(vtkm::Particle(RandomPoint(bounds), 1)); points.push_back(vtkm::Particle(RandomPoint(bounds), 2)); - auto seeds = vtkm::cont::make_ArrayHandle(points, vtkm::CopyFlag::On); vtkm::worklet::ParticleAdvection pa; vtkm::worklet::ParticleAdvectionResult res; { + std::cout << "RK4" << std::endl; + auto seeds = vtkm::cont::make_ArrayHandle(points, vtkm::CopyFlag::On); using IntegratorType = vtkm::worklet::particleadvection::RK4Integrator; IntegratorType rk4(eval, stepSize); res = pa.Run(rk4, seeds, maxSteps); ValidateParticleAdvectionResult(res, nSeeds, maxSteps); } { + std::cout << "Euler" << std::endl; + auto seeds = vtkm::cont::make_ArrayHandle(points, vtkm::CopyFlag::On); using IntegratorType = vtkm::worklet::particleadvection::EulerIntegrator; IntegratorType euler(eval, stepSize); res = pa.Run(euler, seeds, maxSteps);