@@ -185,9 +185,9 @@ Pipeline CreateImportPipeline()
185185 Pipeline pipeline (" Import DREAM3D Pipeline" );
186186 {
187187 Arguments args;
188- Dream3dImportParameter::ImportData importData ;
189- importData. FilePath = GetExportDataPath () ;
190- importData. DataPaths = std::vector<DataPath>{ DataPath ({DataNames::k_Group1Name}), DataPath ({DataNames::k_ArrayName})} ;
188+ auto filePath = GetExportDataPath () ;
189+ std::vector<DataPath> dataPaths = std::vector<DataPath>{ DataPath ({DataNames::k_Group1Name}), DataPath ({DataNames::k_ArrayName})} ;
190+ Dream3dImportParameter::ImportData importData (filePath, Dream3dImportParameter::PathImportPolicy::IncludeList, dataPaths) ;
191191 args.insert (" import_data_object" , importData);
192192 pipeline.push_back (k_ImportD3DHandle, args);
193193 }
@@ -241,17 +241,13 @@ Pipeline CreateMultiImportPipeline()
241241 Pipeline pipeline (" Import DREAM3D Pipeline" );
242242 {
243243 Arguments args;
244- Dream3dImportParameter::ImportData importData;
245- importData.FilePath = GetMultiExportDataPath1 ();
246- importData.DataPaths = std::vector<DataPath>{DataPath ({DataNames::k_Group1Name})};
244+ Dream3dImportParameter::ImportData importData (GetMultiExportDataPath1 (), Dream3dImportParameter::PathImportPolicy::IncludeList, std::vector<DataPath>{DataPath ({DataNames::k_Group1Name})});
247245 args.insert (" import_data_object" , importData);
248246 pipeline.push_back (k_ImportD3DHandle, args);
249247 }
250248 {
251249 Arguments args;
252- Dream3dImportParameter::ImportData importData;
253- importData.FilePath = GetMultiExportDataPath2 ();
254- importData.DataPaths = std::vector<DataPath>{DataPath ({DataNames::k_Group2Name})};
250+ Dream3dImportParameter::ImportData importData (GetMultiExportDataPath2 (), Dream3dImportParameter::PathImportPolicy::IncludeList, std::vector<DataPath>{DataPath ({DataNames::k_Group2Name})});
255251 args.insert (" import_data_object" , importData);
256252 pipeline.push_back (k_ImportD3DHandle, args);
257253 }
@@ -282,7 +278,7 @@ TEST_CASE("DREAM3DFileTest:DREAM3D File IO Test")
282278 {
283279 auto fileData = CreateFileData ();
284280 Result<HDF5::FileWriter> result = HDF5::FileWriter::CreateFile (GetIODataPath ());
285- REQUIRE (result. valid () );
281+ SIMPLNX_RESULT_REQUIRE_VALID (result);
286282
287283 auto writeResult = DREAM3D::WriteFile (result.value (), fileData);
288284 SIMPLNX_RESULT_REQUIRE_VALID (writeResult);
@@ -408,10 +404,107 @@ TEST_CASE("DREAM3DFileTest: Existing Data Objects Test")
408404
409405 ReadDREAM3DFilter filter;
410406 Arguments args;
411- Dream3dImportParameter::ImportData importData;
412- importData.FilePath = fs::path (fmt::format (" {}/Small_IN100.dream3d" , unit_test::k_TestFilesDir));
407+ Dream3dImportParameter::ImportData importData (fs::path (fmt::format (" {}/Small_IN100.dream3d" , unit_test::k_TestFilesDir)));
413408 args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
414409 auto executeResult = filter.execute (ds, args);
415410 SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
416411 }
417412}
413+
414+ TEST_CASE (" DREAM3DFileTest: Path Import Policy Tests" )
415+ {
416+ const nx::core::UnitTest::TestFileSentinel testDataSentinel (nx::core::unit_test::k_CMakeExecutable, nx::core::unit_test::k_TestFilesDir, " Small_IN100_dream3d_v2.tar.gz" , " Small_IN100.dream3d" );
417+ auto filePath = fs::path (fmt::format (" {}/Small_IN100.dream3d" , unit_test::k_TestFilesDir));
418+ DataStructure dataStructure;
419+ ReadDREAM3DFilter filter;
420+ Arguments args;
421+
422+ SECTION (" All" )
423+ {
424+ Dream3dImportParameter::ImportData importData (filePath);
425+ args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
426+ auto executeResult = filter.execute (dataStructure, args);
427+ SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
428+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" })));
429+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" })));
430+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" })));
431+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Confidence Index" })));
432+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " EulerAngles" })));
433+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Fit" })));
434+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Image Quality" })));
435+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Phases" })));
436+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " SEM Signal" })));
437+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" , " CrystalStructures" })));
438+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" , " LatticeConstants" })));
439+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" , " MaterialName" })));
440+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" })));
441+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" })));
442+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " Confidence Index" })));
443+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " EulerAngles" })));
444+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " Fit" })));
445+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " Image Quality" })));
446+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " Phases" })));
447+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredXDataContainer" , " Cell Data" , " SEM Signal" })));
448+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" })));
449+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" })));
450+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " Confidence Index" })));
451+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " EulerAngles" })));
452+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " Fit" })));
453+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " Image Quality" })));
454+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " Phases" })));
455+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredYDataContainer" , " Cell Data" , " SEM Signal" })));
456+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" })));
457+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" })));
458+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " Confidence Index" })));
459+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " EulerAngles" })));
460+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " Fit" })));
461+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " Image Quality" })));
462+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " Phases" })));
463+ REQUIRE (dataStructure.containsData (DataPath ({" MirroredZDataContainer" , " Cell Data" , " SEM Signal" })));
464+ }
465+ SECTION (" Include List - Leaf Node" )
466+ {
467+ Dream3dImportParameter::ImportData importData (filePath, Dream3dImportParameter::PathImportPolicy::IncludeList, {DataPath ({" DataContainer" , " CellData" , " Confidence Index" })});
468+ args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
469+ auto executeResult = filter.execute (dataStructure, args);
470+ SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
471+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" })));
472+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" })));
473+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Confidence Index" })));
474+ REQUIRE (!dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" })));
475+ }
476+ SECTION (" Include List - Parent Node" )
477+ {
478+ Dream3dImportParameter::ImportData importData (filePath, Dream3dImportParameter::PathImportPolicy::IncludeList, {DataPath ({" DataContainer" , " CellData" })});
479+ args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
480+ auto executeResult = filter.execute (dataStructure, args);
481+ SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
482+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" })));
483+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" })));
484+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Confidence Index" })));
485+ REQUIRE (!dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" })));
486+ }
487+ SECTION (" Exclude List - Parent Node" )
488+ {
489+ Dream3dImportParameter::ImportData importData (filePath, Dream3dImportParameter::PathImportPolicy::ExcludeList, {DataPath ({" DataContainer" , " CellData" })});
490+ args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
491+ auto executeResult = filter.execute (dataStructure, args);
492+ SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
493+ REQUIRE (!dataStructure.containsData (DataPath ({" DataContainer" , " CellData" })));
494+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" })));
495+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" , " CrystalStructures" })));
496+ }
497+
498+ SECTION (" Exclude List - Leaf Node" )
499+ {
500+ Dream3dImportParameter::ImportData importData (filePath, Dream3dImportParameter::PathImportPolicy::ExcludeList, {DataPath ({" DataContainer" , " CellData" , " Confidence Index" })});
501+ args.insert (ReadDREAM3DFilter::k_ImportFileData, importData);
502+ auto executeResult = filter.execute (dataStructure, args);
503+ SIMPLNX_RESULT_REQUIRE_VALID (executeResult.result );
504+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" })));
505+ REQUIRE (!dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Confidence Index" })));
506+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellData" , " Fit" })));
507+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" })));
508+ REQUIRE (dataStructure.containsData (DataPath ({" DataContainer" , " CellEnsembleData" , " CrystalStructures" })));
509+ }
510+ }
0 commit comments