Skip to content

Commit

Permalink
Random without range tests done
Browse files Browse the repository at this point in the history
  • Loading branch information
nyoungbq committed Nov 21, 2023
1 parent f482c59 commit 21e2b9b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
26 changes: 16 additions & 10 deletions src/Plugins/ComplexCore/src/ComplexCore/Filters/InitializeData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -603,20 +603,26 @@ IFilter::PreflightResult InitializeData::preflightImpl(const DataStructure& data
auto createAction = std::make_unique<CreateArrayAction>(DataType::uint64, std::vector<usize>{1}, std::vector<usize>{1}, DataPath({seedArrayNameValue}));
resultOutputActions.value().appendAction(std::move(createAction));

if(args.value<bool>(k_StandardizeSeed_Key) && numComp == 1)
if(numComp == 1)
{
operationNuancesStrm << fmt::format("You chose to standardize the seed for each component, but the array {} is a single component so it will not alter the randomization scheme.",
iDataArray.getName());
}
else if(args.value<bool>(k_StandardizeSeed_Key))
{
operationNuancesStrm << "This generates THE SAME sequences of random numbers for each component in the array based on one seed.\n";
operationNuancesStrm << "The resulting array will look like | 1,1,1 | 9,9,9 | ...\n";
if(args.value<bool>(k_StandardizeSeed_Key))
{
operationNuancesStrm << fmt::format("You chose to standardize the seed for each component, but the array {} is a single component so it will not alter the randomization scheme.",
iDataArray.getName());
}
}
else
{
operationNuancesStrm << "This generates DIFFERENT sequences of random numbers for each component in the array based on x seeds all modified versions of an original seed.\n";
operationNuancesStrm << "The resulting array will look like | 1,9,5 | 7,1,6 | ...\n";
if(args.value<bool>(k_StandardizeSeed_Key))
{
operationNuancesStrm << "This generates THE SAME sequences of random numbers for each component in the array based on one seed.\n";
operationNuancesStrm << "The resulting array will look like | 1,1,1 | 9,9,9 | ...\n";
}
else
{
operationNuancesStrm << "This generates DIFFERENT sequences of random numbers for each component in the array based on x seeds all modified versions of an original seed.\n";
operationNuancesStrm << "The resulting array will look like | 1,9,5 | 7,1,6 | ...\n";
}
}

break;
Expand Down
30 changes: 16 additions & 14 deletions src/Plugins/ComplexCore/test/InitializeDataTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -518,20 +518,21 @@ TEST_CASE("ComplexCore::InitializeData 17: Boolean Multi Component Standardized-

TEST_CASE("ComplexCore::InitializeData 18: Single Component Random Initialization", "[ComplexCore][InitializeData]")
{
const complex::UnitTest::TestFileSentinel testDataSentinel(complex::unit_test::k_CMakeExecutable, complex::unit_test::k_TestFilesDir, "k_files.tar.gz", "k_files");
DataStructure dataStructure = UnitTest::LoadDataStructure(fs::path(fmt::format("{}/initialize_data_test_files/7_0_single_component_fill.dream3d", unit_test::k_TestFilesDir)));
const complex::UnitTest::TestFileSentinel testDataSentinel(complex::unit_test::k_CMakeExecutable, complex::unit_test::k_TestFilesDir, "initialize_data_test_files.tar.gz",
"initialize_data_test_files");
DataStructure dataStructure = UnitTest::LoadDataStructure(fs::path(fmt::format("{}/initialize_data_test_files/7_0_single_comp_rand.dream3d", unit_test::k_TestFilesDir)));

{
// Instantiate the filter and an Arguments Object
InitializeData filter;
Arguments args;

// Create default Parameters for the filter.
args.insertOrAssign(InitializeData::k_ArrayPath_Key, std::make_any<DataPath>(DataPath{}));
args.insertOrAssign(InitializeData::k_InitType_Key, std::make_any<uint64>(2)); // Default Seed
args.insertOrAssign(InitializeData::k_ArrayPath_Key, std::make_any<DataPath>(DataPath({"baseline"})));
args.insertOrAssign(InitializeData::k_InitType_Key, std::make_any<uint64>(2));
args.insertOrAssign(InitializeData::k_UseSeed_Key, std::make_any<bool>(true));
// omit seed value to use default seed type
// omit seed array name since it will not be used
args.insertOrAssign(InitializeData::k_SeedValue_Key, std::make_any<uint64>(5489));
args.insertOrAssign(InitializeData::k_SeedArrayName_Key, std::make_any<std::string>("InitializeData SeedValue Test"));
args.insertOrAssign(InitializeData::k_StandardizeSeed_Key, std::make_any<bool>(false));

// Preflight the filter and check result
Expand All @@ -543,25 +544,26 @@ TEST_CASE("ComplexCore::InitializeData 18: Single Component Random Initializatio
REQUIRE(executeResult.result.valid());
}

UnitTest::CompareArrays<float32>(dataStructure, DataPath({"exemplar"}), DataPath{});
UnitTest::CompareArrays<uint8>(dataStructure, DataPath({"exemplar"}), DataPath({"baseline"}));
}

TEST_CASE("ComplexCore::InitializeData 19: Multi Component Standardized-Random Initialization", "[ComplexCore][InitializeData]")
{
const complex::UnitTest::TestFileSentinel testDataSentinel(complex::unit_test::k_CMakeExecutable, complex::unit_test::k_TestFilesDir, "k_files.tar.gz", "k_files");
DataStructure dataStructure = UnitTest::LoadDataStructure(fs::path(fmt::format("{}/initialize_data_test_files/7_0_single_component_fill.dream3d", unit_test::k_TestFilesDir)));
const complex::UnitTest::TestFileSentinel testDataSentinel(complex::unit_test::k_CMakeExecutable, complex::unit_test::k_TestFilesDir, "initialize_data_test_files.tar.gz",
"initialize_data_test_files");
DataStructure dataStructure = UnitTest::LoadDataStructure(fs::path(fmt::format("{}/initialize_data_test_files/7_0_multi_comp_stand_rand.dream3d", unit_test::k_TestFilesDir)));

{
// Instantiate the filter and an Arguments Object
InitializeData filter;
Arguments args;

// Create default Parameters for the filter.
args.insertOrAssign(InitializeData::k_ArrayPath_Key, std::make_any<DataPath>(DataPath{}));
args.insertOrAssign(InitializeData::k_InitType_Key, std::make_any<uint64>(2)); // Default Seed
args.insertOrAssign(InitializeData::k_ArrayPath_Key, std::make_any<DataPath>(DataPath({"baseline"})));
args.insertOrAssign(InitializeData::k_InitType_Key, std::make_any<uint64>(2));
args.insertOrAssign(InitializeData::k_UseSeed_Key, std::make_any<bool>(true));
// omit seed value to use default seed type
// omit seed array name since it will not be used
args.insertOrAssign(InitializeData::k_SeedValue_Key, std::make_any<uint64>(5489));
args.insertOrAssign(InitializeData::k_SeedArrayName_Key, std::make_any<std::string>("InitializeData SeedValue Test"));
args.insertOrAssign(InitializeData::k_StandardizeSeed_Key, std::make_any<bool>(true));

// Preflight the filter and check result
Expand All @@ -573,7 +575,7 @@ TEST_CASE("ComplexCore::InitializeData 19: Multi Component Standardized-Random I
REQUIRE(executeResult.result.valid());
}

UnitTest::CompareArrays<float32>(dataStructure, DataPath({"exemplar"}), DataPath{});
UnitTest::CompareArrays<uint32>(dataStructure, DataPath({"exemplar"}), DataPath({"baseline"}));
}

TEST_CASE("ComplexCore::InitializeData 20: Multi Component Non-Standardized-Random Initialization", "[ComplexCore][InitializeData]")
Expand Down

0 comments on commit 21e2b9b

Please sign in to comment.