Skip to content

Commit a7a5335

Browse files
committed
ENH: SIMPL Backwards Compatibility Test Redesign
The original backwards compatibility test was a single 1,100-line monolithic test file (BackwardsCompatibilityTest.cpp) that validated SIMPL 6.5/6.6 pipeline conversion for all filters at once. It relied on two large hand-maintained data structures: - k_ParamMap (~500 lines) — a global map of parameter type UUIDs to expected exemplar values, with custom std::any comparator lambdas for each parameter type - k_KeyIgnoreMap (~180 lines) — a manual list of NX-only parameter keys per filter that the test had to skip The core maintenance problem: whenever a developer added a new parameter to any filter, they had to also update k_KeyIgnoreMap with that parameter's key, or the centralized test would fail. This was unintuitive, error-prone, and completely disconnected from the filter being changed. The ignore list grew with every filter enhancement and provided no signal about what it was actually protecting.
1 parent 01e1fba commit a7a5335

16 files changed

Lines changed: 655 additions & 0 deletions

test/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ set(${PLUGIN_NAME}UnitTest_SRCS
99
MergeColoniesTest.cpp
1010
ComputeLocalAverageCAxisMisalignmentsTest.cpp
1111
ComputeMicroTextureRegionsTest.cpp
12+
ComputeSaltykovSizesTest.cpp
13+
GroupMicroTextureRegionsTest.cpp
1214
)
1315
set(DISABLED_TESTS
1416

test/ComputeLocalAverageCAxisMisalignmentsTest.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,20 @@
2222

2323
#include <catch2/catch.hpp>
2424

25+
#include "simplnx/Core/Application.hpp"
2526
#include "simplnx/Parameters/ArraySelectionParameter.hpp"
2627
#include "simplnx/Parameters/BoolParameter.hpp"
2728
#include "simplnx/Parameters/DataGroupSelectionParameter.hpp"
2829
#include "simplnx/Parameters/StringParameter.hpp"
30+
#include "simplnx/Pipeline/Pipeline.hpp"
31+
#include "simplnx/Pipeline/PipelineFilter.hpp"
2932
#include "simplnx/UnitTest/UnitTestCommon.hpp"
3033

3134
#include "SimplnxReview/Filters/ComputeLocalAverageCAxisMisalignmentsFilter.hpp"
3235
#include "SimplnxReview/SimplnxReview_test_dirs.hpp"
3336

37+
#include <fstream>
38+
3439
using namespace nx::core;
3540

3641
TEST_CASE("SimplnxReview::ComputeLocalAverageCAxisMisalignmentsFilter: Valid Filter Execution", "[SimplnxReview][ComputeLocalAverageCAxisMisalignmentsFilter][.][UNIMPLEMENTED][!mayfail]")
@@ -65,3 +70,50 @@ TEST_CASE("SimplnxReview::ComputeLocalAverageCAxisMisalignmentsFilter: Valid Fil
6570
//{
6671
//
6772
// }
73+
74+
TEST_CASE("SimplnxReview::ComputeLocalAverageCAxisMisalignmentsFilter: SIMPL Backwards Compatibility", "[SimplnxReview][ComputeLocalAverageCAxisMisalignmentsFilter][BackwardsCompatibility]")
75+
{
76+
auto app = Application::GetOrCreateInstance();
77+
UnitTest::LoadPlugins();
78+
auto filterList = app->getFilterList();
79+
80+
const fs::path conversionDir = fs::path(nx::core::unit_test::k_SourceDir.view()) / "test" / "simpl_conversion";
81+
82+
const std::vector<std::pair<std::string, fs::path>> fixtures = {
83+
{"SIMPL 6.5 (UUID)", conversionDir / "6_5" / "ComputeLocalAverageCAxisMisalignmentsFilter.json"},
84+
{"SIMPL 6.4 (Filter_Name)", conversionDir / "6_4" / "ComputeLocalAverageCAxisMisalignmentsFilter.json"},
85+
};
86+
87+
for(const auto& [label, fixturePath] : fixtures)
88+
{
89+
DYNAMIC_SECTION(label)
90+
{
91+
auto pipelineResult = Pipeline::FromSIMPLFile(fixturePath, filterList);
92+
REQUIRE(pipelineResult.valid());
93+
94+
auto& pipeline = pipelineResult.value();
95+
REQUIRE(pipeline.size() == 1);
96+
97+
auto* pipelineFilter = dynamic_cast<PipelineFilter*>(pipeline.at(0));
98+
REQUIRE(pipelineFilter != nullptr);
99+
100+
const IFilter* filter = pipelineFilter->getFilter();
101+
REQUIRE(filter != nullptr);
102+
REQUIRE(filter->uuid() == FilterTraits<ComputeLocalAverageCAxisMisalignmentsFilter>::uuid);
103+
104+
CHECK(pipelineFilter->getComments().empty());
105+
106+
const Arguments args = pipelineFilter->getArguments();
107+
CHECK(args.value<DataPath>(ComputeLocalAverageCAxisMisalignmentsFilter::k_AvgCAxisMisalignmentsPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
108+
CHECK(args.value<DataPath>(ComputeLocalAverageCAxisMisalignmentsFilter::k_CAxisMisalignmentListPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
109+
CHECK(args.value<bool>(ComputeLocalAverageCAxisMisalignmentsFilter::k_CalcBiasedAvg_Key) == true);
110+
CHECK(args.value<bool>(ComputeLocalAverageCAxisMisalignmentsFilter::k_CalcUnbiasedAvg_Key) == true);
111+
CHECK(args.value<DataPath>(ComputeLocalAverageCAxisMisalignmentsFilter::k_FeatureParentIdsPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
112+
CHECK(args.value<std::string>(ComputeLocalAverageCAxisMisalignmentsFilter::k_LocalCAxisMisalignmentsName_Key) == "TestName");
113+
CHECK(args.value<DataPath>(ComputeLocalAverageCAxisMisalignmentsFilter::k_NeighborListPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
114+
CHECK(args.value<std::string>(ComputeLocalAverageCAxisMisalignmentsFilter::k_NumFeaturesPerParentName_Key) == "TestName");
115+
CHECK(args.value<DataPath>(ComputeLocalAverageCAxisMisalignmentsFilter::k_NewCellFeatureAttributeMatrixPath_Key) == DataPath({"DataContainer"}));
116+
CHECK(args.value<std::string>(ComputeLocalAverageCAxisMisalignmentsFilter::k_UnbiasedLocalCAxisMisalignmentsName_Key) == "TestName");
117+
}
118+
}
119+
}

test/ComputeMicroTextureRegionsTest.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,19 @@
2222

2323
#include <catch2/catch.hpp>
2424

25+
#include "simplnx/Core/Application.hpp"
2526
#include "simplnx/Parameters/ArraySelectionParameter.hpp"
2627
#include "simplnx/Parameters/DataGroupSelectionParameter.hpp"
2728
#include "simplnx/Parameters/StringParameter.hpp"
29+
#include "simplnx/Pipeline/Pipeline.hpp"
30+
#include "simplnx/Pipeline/PipelineFilter.hpp"
2831
#include "simplnx/UnitTest/UnitTestCommon.hpp"
2932

3033
#include "SimplnxReview/Filters/ComputeMicroTextureRegionsFilter.hpp"
3134
#include "SimplnxReview/SimplnxReview_test_dirs.hpp"
3235

36+
#include <fstream>
37+
3338
using namespace nx::core;
3439

3540
TEST_CASE("SimplnxReview::ComputeMicroTextureRegionsFilter: Valid Filter Execution", "[SimplnxReview][ComputeMicroTextureRegionsFilter][.][UNIMPLEMENTED][!mayfail]")
@@ -58,3 +63,44 @@ TEST_CASE("SimplnxReview::ComputeMicroTextureRegionsFilter: Valid Filter Executi
5863
//{
5964
//
6065
// }
66+
67+
TEST_CASE("SimplnxReview::ComputeMicroTextureRegionsFilter: SIMPL Backwards Compatibility", "[SimplnxReview][ComputeMicroTextureRegionsFilter][BackwardsCompatibility]")
68+
{
69+
auto app = Application::GetOrCreateInstance();
70+
UnitTest::LoadPlugins();
71+
auto filterList = app->getFilterList();
72+
73+
const fs::path conversionDir = fs::path(nx::core::unit_test::k_SourceDir.view()) / "test" / "simpl_conversion";
74+
75+
const std::vector<std::pair<std::string, fs::path>> fixtures = {
76+
{"SIMPL 6.5 (UUID)", conversionDir / "6_5" / "ComputeMicroTextureRegionsFilter.json"},
77+
{"SIMPL 6.4 (Filter_Name)", conversionDir / "6_4" / "ComputeMicroTextureRegionsFilter.json"},
78+
};
79+
80+
for(const auto& [label, fixturePath] : fixtures)
81+
{
82+
DYNAMIC_SECTION(label)
83+
{
84+
auto pipelineResult = Pipeline::FromSIMPLFile(fixturePath, filterList);
85+
REQUIRE(pipelineResult.valid());
86+
87+
auto& pipeline = pipelineResult.value();
88+
REQUIRE(pipeline.size() == 1);
89+
90+
auto* pipelineFilter = dynamic_cast<PipelineFilter*>(pipeline.at(0));
91+
REQUIRE(pipelineFilter != nullptr);
92+
93+
const IFilter* filter = pipelineFilter->getFilter();
94+
REQUIRE(filter != nullptr);
95+
REQUIRE(filter->uuid() == FilterTraits<ComputeMicroTextureRegionsFilter>::uuid);
96+
97+
CHECK(pipelineFilter->getComments().empty());
98+
99+
const Arguments args = pipelineFilter->getArguments();
100+
CHECK(args.value<DataPath>(ComputeMicroTextureRegionsFilter::k_CellFeatureAttributeMatrixPath_Key) == DataPath({"DataContainer"}));
101+
CHECK(args.value<std::string>(ComputeMicroTextureRegionsFilter::k_MicroTextureRegionFractionOccupiedArrayName_Key) == "TestName");
102+
CHECK(args.value<std::string>(ComputeMicroTextureRegionsFilter::k_MicroTextureRegionNumCellsArrayName_Key) == "TestName");
103+
CHECK(args.value<DataPath>(ComputeMicroTextureRegionsFilter::k_FeatureIdsArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
104+
}
105+
}
106+
}

test/ComputeSaltykovSizesTest.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <catch2/catch.hpp>
2+
3+
#include "simplnx/Core/Application.hpp"
4+
#include "simplnx/Pipeline/Pipeline.hpp"
5+
#include "simplnx/Pipeline/PipelineFilter.hpp"
6+
#include "simplnx/UnitTest/UnitTestCommon.hpp"
7+
8+
#include "SimplnxReview/Filters/ComputeSaltykovSizesFilter.hpp"
9+
#include "SimplnxReview/SimplnxReview_test_dirs.hpp"
10+
11+
#include <fstream>
12+
13+
using namespace nx::core;
14+
15+
TEST_CASE("SimplnxReview::ComputeSaltykovSizesFilter: SIMPL Backwards Compatibility", "[SimplnxReview][ComputeSaltykovSizesFilter][BackwardsCompatibility]")
16+
{
17+
auto app = Application::GetOrCreateInstance();
18+
UnitTest::LoadPlugins();
19+
auto filterList = app->getFilterList();
20+
21+
const fs::path conversionDir = fs::path(nx::core::unit_test::k_SourceDir.view()) / "test" / "simpl_conversion";
22+
23+
const std::vector<std::pair<std::string, fs::path>> fixtures = {
24+
{"SIMPL 6.5 (UUID)", conversionDir / "6_5" / "ComputeSaltykovSizesFilter.json"},
25+
{"SIMPL 6.4 (Filter_Name)", conversionDir / "6_4" / "ComputeSaltykovSizesFilter.json"},
26+
};
27+
28+
for(const auto& [label, fixturePath] : fixtures)
29+
{
30+
DYNAMIC_SECTION(label)
31+
{
32+
auto pipelineResult = Pipeline::FromSIMPLFile(fixturePath, filterList);
33+
REQUIRE(pipelineResult.valid());
34+
35+
auto& pipeline = pipelineResult.value();
36+
REQUIRE(pipeline.size() == 1);
37+
38+
auto* pipelineFilter = dynamic_cast<PipelineFilter*>(pipeline.at(0));
39+
REQUIRE(pipelineFilter != nullptr);
40+
41+
const IFilter* filter = pipelineFilter->getFilter();
42+
REQUIRE(filter != nullptr);
43+
REQUIRE(filter->uuid() == FilterTraits<ComputeSaltykovSizesFilter>::uuid);
44+
45+
CHECK(pipelineFilter->getComments().empty());
46+
47+
const Arguments args = pipelineFilter->getArguments();
48+
CHECK(args.value<DataPath>(ComputeSaltykovSizesFilter::k_EquivalentDiametersArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
49+
CHECK(args.value<std::string>(ComputeSaltykovSizesFilter::k_SaltykovEquivalentDiametersName_Key) == "TestArray");
50+
}
51+
}
52+
}

test/GroupMicroTextureRegionsTest.cpp

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,20 @@
2222

2323
#include <catch2/catch.hpp>
2424

25+
#include "simplnx/Core/Application.hpp"
2526
#include "simplnx/Parameters/ArraySelectionParameter.hpp"
2627
#include "simplnx/Parameters/BoolParameter.hpp"
2728
#include "simplnx/Parameters/NumberParameter.hpp"
2829
#include "simplnx/Parameters/StringParameter.hpp"
30+
#include "simplnx/Pipeline/Pipeline.hpp"
31+
#include "simplnx/Pipeline/PipelineFilter.hpp"
32+
#include "simplnx/UnitTest/UnitTestCommon.hpp"
2933

3034
#include "SimplnxReview/Filters/GroupMicroTextureRegionsFilter.hpp"
3135
#include "SimplnxReview/SimplnxReview_test_dirs.hpp"
3236

37+
#include <fstream>
38+
3339
using namespace nx::core;
3440

3541
TEST_CASE("SimplnxReview::GroupMicroTextureRegionsFilter: Valid Filter Execution", "[OrientationAnalysis][GroupMicroTextureRegionsFilter][.][UNIMPLEMENTED][!mayfail]")
@@ -68,3 +74,54 @@ TEST_CASE("SimplnxReview::GroupMicroTextureRegionsFilter: Valid Filter Execution
6874
//{
6975
//
7076
// }
77+
78+
TEST_CASE("SimplnxReview::GroupMicroTextureRegionsFilter: SIMPL Backwards Compatibility", "[SimplnxReview][GroupMicroTextureRegionsFilter][BackwardsCompatibility]")
79+
{
80+
auto app = Application::GetOrCreateInstance();
81+
UnitTest::LoadPlugins();
82+
auto filterList = app->getFilterList();
83+
84+
const fs::path conversionDir = fs::path(nx::core::unit_test::k_SourceDir.view()) / "test" / "simpl_conversion";
85+
86+
const std::vector<std::pair<std::string, fs::path>> fixtures = {
87+
{"SIMPL 6.5 (UUID)", conversionDir / "6_5" / "GroupMicroTextureRegionsFilter.json"},
88+
{"SIMPL 6.4 (Filter_Name)", conversionDir / "6_4" / "GroupMicroTextureRegionsFilter.json"},
89+
};
90+
91+
for(const auto& [label, fixturePath] : fixtures)
92+
{
93+
DYNAMIC_SECTION(label)
94+
{
95+
auto pipelineResult = Pipeline::FromSIMPLFile(fixturePath, filterList);
96+
REQUIRE(pipelineResult.valid());
97+
98+
auto& pipeline = pipelineResult.value();
99+
REQUIRE(pipeline.size() == 1);
100+
101+
auto* pipelineFilter = dynamic_cast<PipelineFilter*>(pipeline.at(0));
102+
REQUIRE(pipelineFilter != nullptr);
103+
104+
const IFilter* filter = pipelineFilter->getFilter();
105+
REQUIRE(filter != nullptr);
106+
REQUIRE(filter->uuid() == FilterTraits<GroupMicroTextureRegionsFilter>::uuid);
107+
108+
CHECK(pipelineFilter->getComments().empty());
109+
110+
const Arguments args = pipelineFilter->getArguments();
111+
CHECK(args.value<std::string>(GroupMicroTextureRegionsFilter::k_ActiveArrayName_Key) == "TestName");
112+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_AvgQuatsArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
113+
CHECK(args.value<float32>(GroupMicroTextureRegionsFilter::k_CAxisTolerance_Key) == 2.5f);
114+
CHECK(args.value<std::string>(GroupMicroTextureRegionsFilter::k_CellParentIdsArrayName_Key) == "TestName");
115+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_ContiguousNeighborListArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
116+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_CrystalStructuresArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
117+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_FeatureIdsArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
118+
CHECK(args.value<std::string>(GroupMicroTextureRegionsFilter::k_FeatureParentIdsArrayName_Key) == "TestName");
119+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_FeaturePhasesArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
120+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_NewCellFeatureAttributeMatrixName_Key) == DataPath({"TestName"}));
121+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_NonContiguousNeighborListArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
122+
CHECK(args.value<bool>(GroupMicroTextureRegionsFilter::k_UseNonContiguousNeighbors_Key) == true);
123+
CHECK(args.value<bool>(GroupMicroTextureRegionsFilter::k_UseRunningAverage_Key) == true);
124+
CHECK(args.value<DataPath>(GroupMicroTextureRegionsFilter::k_VolumesArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
125+
}
126+
}
127+
}

test/MergeColoniesTest.cpp

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#include <catch2/catch.hpp>
22

3+
#include "simplnx/Core/Application.hpp"
34
#include "simplnx/Parameters/ArrayCreationParameter.hpp"
45
#include "simplnx/Parameters/BoolParameter.hpp"
56
#include "simplnx/Parameters/DataObjectNameParameter.hpp"
7+
#include "simplnx/Pipeline/Pipeline.hpp"
8+
#include "simplnx/Pipeline/PipelineFilter.hpp"
69
#include "simplnx/UnitTest/UnitTestCommon.hpp"
710

811
#include "SimplnxReview/Filters/MergeColoniesFilter.hpp"
912
#include "SimplnxReview/SimplnxReview_test_dirs.hpp"
1013

14+
#include <fstream>
15+
1116
using namespace nx::core;
1217

1318
TEST_CASE("SimplnxReview::MergeColoniesFilter: Valid Filter Execution", "[SimplnxReview][MergeColoniesFilter]")
@@ -33,3 +38,55 @@ TEST_CASE("SimplnxReview::MergeColoniesFilter: Valid Filter Execution", "[Simpln
3338
args.insertOrAssign(MergeColoniesFilter::k_FeatureParentIdsArrayName_Key, std::make_any<DataObjectNameParameter::ValueType>(""));
3439
args.insertOrAssign(MergeColoniesFilter::k_ActiveArrayName_Key, std::make_any<DataObjectNameParameter::ValueType>(""));
3540
}
41+
42+
TEST_CASE("SimplnxReview::MergeColoniesFilter: SIMPL Backwards Compatibility", "[SimplnxReview][MergeColoniesFilter][BackwardsCompatibility]")
43+
{
44+
auto app = Application::GetOrCreateInstance();
45+
UnitTest::LoadPlugins();
46+
auto filterList = app->getFilterList();
47+
48+
const fs::path conversionDir = fs::path(nx::core::unit_test::k_SourceDir.view()) / "test" / "simpl_conversion";
49+
50+
const std::vector<std::pair<std::string, fs::path>> fixtures = {
51+
{"SIMPL 6.5 (UUID)", conversionDir / "6_5" / "MergeColoniesFilter.json"},
52+
{"SIMPL 6.4 (Filter_Name)", conversionDir / "6_4" / "MergeColoniesFilter.json"},
53+
};
54+
55+
for(const auto& [label, fixturePath] : fixtures)
56+
{
57+
DYNAMIC_SECTION(label)
58+
{
59+
auto pipelineResult = Pipeline::FromSIMPLFile(fixturePath, filterList);
60+
REQUIRE(pipelineResult.valid());
61+
62+
auto& pipeline = pipelineResult.value();
63+
REQUIRE(pipeline.size() == 1);
64+
65+
auto* pipelineFilter = dynamic_cast<PipelineFilter*>(pipeline.at(0));
66+
REQUIRE(pipelineFilter != nullptr);
67+
68+
const IFilter* filter = pipelineFilter->getFilter();
69+
REQUIRE(filter != nullptr);
70+
REQUIRE(filter->uuid() == FilterTraits<MergeColoniesFilter>::uuid);
71+
72+
CHECK(pipelineFilter->getComments().empty());
73+
74+
const Arguments args = pipelineFilter->getArguments();
75+
CHECK(args.value<std::string>(MergeColoniesFilter::k_ActiveArrayName_Key) == "TestName");
76+
CHECK(args.value<float32>(MergeColoniesFilter::k_AngleTolerance_Key) == 2.5f);
77+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_AvgQuatsArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
78+
CHECK(args.value<float32>(MergeColoniesFilter::k_AxisTolerance_Key) == 2.5f);
79+
CHECK(args.value<std::string>(MergeColoniesFilter::k_CellParentIdsArrayName_Key) == "TestName");
80+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_CellPhasesArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
81+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_ContiguousNeighborListArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
82+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_CrystalStructuresArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
83+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_FeatureIdsArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
84+
CHECK(args.value<std::string>(MergeColoniesFilter::k_FeatureParentIdsArrayName_Key) == "TestName");
85+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_FeaturePhasesArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
86+
// AMPathBuilderFilterParameterConverter - verified by successful pipeline loading
87+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_NewCellFeatureAttributeMatrixName_Key) == DataPath({"DataContainer", "TestName"}));
88+
CHECK(args.value<DataPath>(MergeColoniesFilter::k_NonContiguousNeighborListArrayPath_Key) == DataPath({"DataContainer", "CellData", "TestArray"}));
89+
CHECK(args.value<bool>(MergeColoniesFilter::k_UseNonContiguousNeighbors_Key) == true);
90+
}
91+
}
92+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"PipelineBuilder": {
3+
"Name": "Compute Local Average C-Axis Misalignments 6.4 Backwards Compatibility Test",
4+
"Number_Filters": 1,
5+
"Version": 6
6+
},
7+
"0": {
8+
"Filter_Enabled": true,
9+
"Filter_Human_Label": "Find Local Average C-Axis Misalignments",
10+
"Filter_Name": "FindLocalAverageCAxisMisalignments",
11+
"AvgCAxisMisalignmentsArrayPath": {
12+
"Data Container Name": "DataContainer",
13+
"Attribute Matrix Name": "CellData",
14+
"Data Array Name": "TestArray"
15+
},
16+
"CAxisMisalignmentListArrayPath": {
17+
"Data Container Name": "DataContainer",
18+
"Attribute Matrix Name": "CellData",
19+
"Data Array Name": "TestArray"
20+
},
21+
"CalcBiasedAvg": 1,
22+
"CalcUnbiasedAvg": 1,
23+
"FeatureParentIdsArrayPath": {
24+
"Data Container Name": "DataContainer",
25+
"Attribute Matrix Name": "CellData",
26+
"Data Array Name": "TestArray"
27+
},
28+
"LocalCAxisMisalignmentsArrayName": "TestName",
29+
"NeighborListArrayPath": {
30+
"Data Container Name": "DataContainer",
31+
"Attribute Matrix Name": "CellData",
32+
"Data Array Name": "TestArray"
33+
},
34+
"NumFeaturesPerParentArrayName": "TestName",
35+
"NewCellFeatureAttributeMatrixName": {
36+
"Data Container Name": "DataContainer"
37+
},
38+
"UnbiasedLocalCAxisMisalignmentsArrayName": "TestName"
39+
}
40+
}

0 commit comments

Comments
 (0)