diff --git a/vtkm/cont/testing/MakeTestDataSet.h b/vtkm/cont/testing/MakeTestDataSet.h index 505a789f3..4716580c6 100644 --- a/vtkm/cont/testing/MakeTestDataSet.h +++ b/vtkm/cont/testing/MakeTestDataSet.h @@ -326,7 +326,7 @@ inline vtkm::cont::DataSet MakeTestDataSet::Make3DUniformDataSet1() inline vtkm::cont::DataSet MakeTestDataSet::Make3DUniformDataSet2() { - constexpr vtkm::Id base_size = 256; + constexpr vtkm::Id base_size = 64; vtkm::cont::DataSetBuilderUniform dsb; vtkm::Id3 dimensions(base_size, base_size, base_size); vtkm::cont::DataSet dataSet = dsb.Create(dimensions); diff --git a/vtkm/filter/testing/UnitTestImageMedianFilter.cxx b/vtkm/filter/testing/UnitTestImageMedianFilter.cxx index ac41e9a80..312c5ace1 100644 --- a/vtkm/filter/testing/UnitTestImageMedianFilter.cxx +++ b/vtkm/filter/testing/UnitTestImageMedianFilter.cxx @@ -37,15 +37,11 @@ void TestImageMedian() //verified by hand { auto portal = resultArrayHandle.ReadPortal(); - std::cout << "spot to verify x = 1, y = 1, z = 0 is: "; - vtkm::Float32 temp = portal.Get(1 + pdims[0]); - std::cout << temp << std::endl << std::endl; - VTKM_TEST_ASSERT(test_equal(temp, 2), "incorrect median value"); + vtkm::Float32 expected_median = portal.Get(1 + pdims[0]); + VTKM_TEST_ASSERT(test_equal(expected_median, 2), "incorrect median value"); - std::cout << "spot to verify x = 1, y = 1, z = 2 is: "; - temp = portal.Get(1 + pdims[0] + (pdims[1] * pdims[0] * 2)); - std::cout << temp << std::endl << std::endl; - VTKM_TEST_ASSERT(test_equal(temp, 2.82843), "incorrect median value"); + expected_median = portal.Get(1 + pdims[0] + (pdims[1] * pdims[0] * 2)); + VTKM_TEST_ASSERT(test_equal(expected_median, 2.82843), "incorrect median value"); } } } diff --git a/vtkm/filter/testing/UnitTestLagrangianFilter.cxx b/vtkm/filter/testing/UnitTestLagrangianFilter.cxx index f2cbda95a..f9c114b44 100644 --- a/vtkm/filter/testing/UnitTestLagrangianFilter.cxx +++ b/vtkm/filter/testing/UnitTestLagrangianFilter.cxx @@ -21,7 +21,7 @@ namespace std::vector MakeDataSets() { vtkm::Bounds bounds(0, 10, 0, 10, 0, 10); - const vtkm::Id3 dims(16, 16, 16); + const vtkm::Id3 dims(8, 8, 8); auto dataSets = vtkm::worklet::testing::CreateAllDataSets(bounds, dims, false); vtkm::Id numPoints = dims[0] * dims[1] * dims[2]; @@ -48,8 +48,7 @@ std::vector MakeDataSets() void TestLagrangianFilterMultiStepInterval() { - std::cout << "Test: Lagrangian Analysis - Uniform Dataset - Write Interval > 1" << std::endl; - vtkm::Id maxCycles = 10; + vtkm::Id maxCycles = 5; vtkm::Id write_interval = 5; vtkm::filter::Lagrangian lagrangianFilter2; lagrangianFilter2.SetResetParticles(true); @@ -67,7 +66,7 @@ void TestLagrangianFilterMultiStepInterval() { VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfCoordinateSystems() == 1, "Wrong number of coordinate systems in the output dataset."); - VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 4096, + VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfPoints() == 512, "Wrong number of basis flows extracted."); VTKM_TEST_ASSERT(extractedBasisFlows.GetNumberOfFields() == 2, "Wrong number of fields."); } diff --git a/vtkm/source/testing/UnitTestWaveletSource.cxx b/vtkm/source/testing/UnitTestWaveletSource.cxx index bb4826a91..dbc1c6648 100644 --- a/vtkm/source/testing/UnitTestWaveletSource.cxx +++ b/vtkm/source/testing/UnitTestWaveletSource.cxx @@ -15,17 +15,9 @@ void WaveletSourceTest() { - vtkm::cont::Timer timer; - timer.Start(); - vtkm::source::Wavelet source; vtkm::cont::DataSet ds = source.Execute(); - - double time = timer.GetElapsedTime(); - - std::cout << "Default wavelet took " << time << "s.\n"; - { auto coords = ds.GetCoordinateSystem("coordinates"); auto data = coords.GetData(); diff --git a/vtkm/worklet/testing/UnitTestWaveletCompressor.cxx b/vtkm/worklet/testing/UnitTestWaveletCompressor.cxx index e334fe58c..7a03c3522 100644 --- a/vtkm/worklet/testing/UnitTestWaveletCompressor.cxx +++ b/vtkm/worklet/testing/UnitTestWaveletCompressor.cxx @@ -164,11 +164,10 @@ void FillArray3D(ArrayType& array, vtkm::Id dimX, vtkm::Id dimY, vtkm::Id dimZ) void TestDecomposeReconstruct3D(vtkm::Float64 cratio) { - vtkm::Id sigX = 99; - vtkm::Id sigY = 99; - vtkm::Id sigZ = 99; + vtkm::Id sigX = 45; + vtkm::Id sigY = 45; + vtkm::Id sigZ = 45; vtkm::Id sigLen = sigX * sigY * sigZ; - std::cout << "Testing 3D wavelet compressor on a (99x99x99) cube..." << std::endl; // make input data array handle vtkm::cont::ArrayHandle inputArray; @@ -179,56 +178,29 @@ void TestDecomposeReconstruct3D(vtkm::Float64 cratio) // Use a WaveletCompressor vtkm::worklet::wavelets::WaveletName wname = vtkm::worklet::wavelets::BIOR4_4; - if (wname == vtkm::worklet::wavelets::BIOR1_1) - std::cout << "Using wavelet kernel = Bior1.1 (HAAR)" << std::endl; - else if (wname == vtkm::worklet::wavelets::BIOR2_2) - std::cout << "Using wavelet kernel = Bior2.2 (CDF 5/3)" << std::endl; - else if (wname == vtkm::worklet::wavelets::BIOR3_3) - std::cout << "Using wavelet kernel = Bior3.3 (CDF 8/4)" << std::endl; - else if (wname == vtkm::worklet::wavelets::BIOR4_4) - std::cout << "Using wavelet kernel = Bior4.4 (CDF 9/7)" << std::endl; vtkm::worklet::WaveletCompressor compressor(wname); vtkm::Id XMaxLevel = compressor.GetWaveletMaxLevel(sigX); vtkm::Id YMaxLevel = compressor.GetWaveletMaxLevel(sigY); vtkm::Id ZMaxLevel = compressor.GetWaveletMaxLevel(sigZ); vtkm::Id nLevels = vtkm::Min(vtkm::Min(XMaxLevel, YMaxLevel), ZMaxLevel); - std::cout << "Decomposition levels = " << nLevels << std::endl; vtkm::Float64 computationTime = 0.0; - vtkm::Float64 elapsedTime1, elapsedTime2, elapsedTime3; // Decompose - vtkm::cont::Timer timer; - timer.Start(); computationTime = compressor.WaveDecompose3D(inputArray, nLevels, sigX, sigY, sigZ, outputArray, false); - elapsedTime1 = timer.GetElapsedTime(); - std::cout << "Decompose time = " << elapsedTime1 << std::endl; - std::cout << " ->computation time = " << computationTime << std::endl; - // Squash small coefficients - timer.Start(); compressor.SquashCoefficients(outputArray, cratio); - elapsedTime2 = timer.GetElapsedTime(); - std::cout << "Squash time = " << elapsedTime2 << std::endl; // Reconstruct vtkm::cont::ArrayHandle reconstructArray; - timer.Start(); computationTime = compressor.WaveReconstruct3D(outputArray, nLevels, sigX, sigY, sigZ, reconstructArray, false); - elapsedTime3 = timer.GetElapsedTime(); - std::cout << "Reconstruction time = " << elapsedTime3 << std::endl; - std::cout << " ->computation time = " << computationTime << std::endl; - std::cout << "Total time = " << (elapsedTime1 + elapsedTime2 + elapsedTime3) - << std::endl; - outputArray.ReleaseResources(); - compressor.EvaluateReconstruction(inputArray, reconstructArray); + //compressor.EvaluateReconstruction(inputArray, reconstructArray); - timer.Start(); auto reconstructPortal = reconstructArray.ReadPortal(); auto inputPortal = inputArray.ReadPortal(); for (vtkm::Id i = 0; i < reconstructArray.GetNumberOfValues(); i++) @@ -236,15 +208,12 @@ void TestDecomposeReconstruct3D(vtkm::Float64 cratio) VTKM_TEST_ASSERT(test_equal(reconstructPortal.Get(i), inputPortal.Get(i)), "WaveletCompressor 3D failed..."); } - elapsedTime1 = timer.GetElapsedTime(); - std::cout << "Verification time = " << elapsedTime1 << std::endl; } void TestDecomposeReconstruct2D(vtkm::Float64 cratio) { - std::cout << "Testing 2D wavelet compressor on a (1000x1000) square... " << std::endl; - vtkm::Id sigX = 1000; - vtkm::Id sigY = 1000; + vtkm::Id sigX = 150; + vtkm::Id sigY = 150; vtkm::Id sigLen = sigX * sigY; // make input data array handle @@ -256,47 +225,24 @@ void TestDecomposeReconstruct2D(vtkm::Float64 cratio) // Use a WaveletCompressor vtkm::worklet::wavelets::WaveletName wname = vtkm::worklet::wavelets::CDF9_7; - std::cout << "Wavelet kernel = CDF 9/7" << std::endl; vtkm::worklet::WaveletCompressor compressor(wname); vtkm::Id XMaxLevel = compressor.GetWaveletMaxLevel(sigX); vtkm::Id YMaxLevel = compressor.GetWaveletMaxLevel(sigY); vtkm::Id nLevels = vtkm::Min(XMaxLevel, YMaxLevel); - std::cout << "Decomposition levels = " << nLevels << std::endl; std::vector L; vtkm::Float64 computationTime = 0.0; - vtkm::Float64 elapsedTime1, elapsedTime2, elapsedTime3; - - // Decompose - vtkm::cont::Timer timer; - timer.Start(); computationTime = compressor.WaveDecompose2D(inputArray, nLevels, sigX, sigY, outputArray, L); - elapsedTime1 = timer.GetElapsedTime(); - std::cout << "Decompose time = " << elapsedTime1 << std::endl; - std::cout << " ->computation time = " << computationTime << std::endl; - - // Squash small coefficients - timer.Start(); compressor.SquashCoefficients(outputArray, cratio); - elapsedTime2 = timer.GetElapsedTime(); - std::cout << "Squash time = " << elapsedTime2 << std::endl; // Reconstruct vtkm::cont::ArrayHandle reconstructArray; - timer.Start(); computationTime = compressor.WaveReconstruct2D(outputArray, nLevels, sigX, sigY, reconstructArray, L); - elapsedTime3 = timer.GetElapsedTime(); - std::cout << "Reconstruction time = " << elapsedTime3 << std::endl; - std::cout << " ->computation time = " << computationTime << std::endl; - std::cout << "Total time = " << (elapsedTime1 + elapsedTime2 + elapsedTime3) - << std::endl; - outputArray.ReleaseResources(); - compressor.EvaluateReconstruction(inputArray, reconstructArray); + //compressor.EvaluateReconstruction(inputArray, reconstructArray); - timer.Start(); auto reconstructPortal = reconstructArray.ReadPortal(); auto inputPortal = inputArray.ReadPortal(); for (vtkm::Id i = 0; i < reconstructArray.GetNumberOfValues(); i++) @@ -304,62 +250,43 @@ void TestDecomposeReconstruct2D(vtkm::Float64 cratio) VTKM_TEST_ASSERT(test_equal(reconstructPortal.Get(i), inputPortal.Get(i)), "WaveletCompressor 2D failed..."); } - elapsedTime1 = timer.GetElapsedTime(); - std::cout << "Verification time = " << elapsedTime1 << std::endl; } void TestDecomposeReconstruct1D(vtkm::Float64 cratio) { - std::cout << "Testing 1D wavelet compressor on a 1 million sized array... " << std::endl; - vtkm::Id sigLen = 1000000; + vtkm::Id sigLen = 1000; // make input data array handle - std::vector tmpVector; + vtkm::cont::ArrayHandle inputArray; + inputArray.Allocate(sigLen); + auto wp = inputArray.WritePortal(); for (vtkm::Id i = 0; i < sigLen; i++) { - tmpVector.push_back(100.0 * vtkm::Sin(static_cast(i) / 100.0)); + wp.Set(i, 100.0 * vtkm::Sin(static_cast(i) / 100.0)); } - vtkm::cont::ArrayHandle inputArray = - vtkm::cont::make_ArrayHandle(tmpVector, vtkm::CopyFlag::On); - vtkm::cont::ArrayHandle outputArray; // Use a WaveletCompressor vtkm::worklet::wavelets::WaveletName wname = vtkm::worklet::wavelets::CDF9_7; - std::cout << "Wavelet kernel = CDF 9/7" << std::endl; vtkm::worklet::WaveletCompressor compressor(wname); // User maximum decompose levels vtkm::Id maxLevel = compressor.GetWaveletMaxLevel(sigLen); vtkm::Id nLevels = maxLevel; - std::cout << "Decomposition levels = " << nLevels << std::endl; std::vector L; // Decompose - vtkm::cont::Timer timer; - timer.Start(); compressor.WaveDecompose(inputArray, nLevels, outputArray, L); - vtkm::Float64 elapsedTime = timer.GetElapsedTime(); - std::cout << "Decompose time = " << elapsedTime << std::endl; - // Squash small coefficients - timer.Start(); compressor.SquashCoefficients(outputArray, cratio); - elapsedTime = timer.GetElapsedTime(); - std::cout << "Squash time = " << elapsedTime << std::endl; // Reconstruct vtkm::cont::ArrayHandle reconstructArray; - timer.Start(); compressor.WaveReconstruct(outputArray, nLevels, L, reconstructArray); - elapsedTime = timer.GetElapsedTime(); - std::cout << "Reconstruction time = " << elapsedTime << std::endl; - compressor.EvaluateReconstruction(inputArray, reconstructArray); - - timer.Start(); + //compressor.EvaluateReconstruction(inputArray, reconstructArray); auto reconstructPortal = reconstructArray.ReadPortal(); auto inputPortal = inputArray.ReadPortal(); for (vtkm::Id i = 0; i < reconstructArray.GetNumberOfValues(); i++) @@ -367,22 +294,13 @@ void TestDecomposeReconstruct1D(vtkm::Float64 cratio) VTKM_TEST_ASSERT(test_equal(reconstructPortal.Get(i), inputPortal.Get(i)), "WaveletCompressor 1D failed..."); } - elapsedTime = timer.GetElapsedTime(); - std::cout << "Verification time = " << elapsedTime << std::endl; } void TestWaveletCompressor() { vtkm::Float64 cratio = 2.0; // X:1 compression, where X >= 1 - std::cout << "Compression ratio = " << cratio << ":1 "; - std::cout - << "(Reconstruction using higher compression ratios may result in failure in verification)" - << std::endl; - TestDecomposeReconstruct1D(cratio); - std::cout << std::endl; TestDecomposeReconstruct2D(cratio); - std::cout << std::endl; TestDecomposeReconstruct3D(cratio); }