Skip to content

Commit a429b0a

Browse files
committed
Creating Unit test that only tests the basic functionality
A deeper unit test that has exemplar output images needs to be created.
1 parent 0290fd8 commit a429b0a

2 files changed

Lines changed: 106 additions & 48 deletions

File tree

Source/SIMPLib/CoreFilters/GenerateTiltSeries.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66

77
#include <thread>
88

9+
#define GTS_GENERATE_DEBUG_ARRAYS 0
10+
// If we are writing out all the arrays for debugging then we MUST be single threaded.
11+
#if(GTS_GENERATE_DEBUG_ARRAYS == 1)
12+
#undef SIMPL_USE_PARALLEL_ALGORITHMS
13+
#endif
14+
915
#ifdef SIMPL_USE_PARALLEL_ALGORITHMS
1016
#include <tbb/task_group.h>
1117
#include <tbb/task_scheduler_init.h>
@@ -51,8 +57,6 @@ static const double epsijkd = -1.0;
5157

5258
#endif
5359

54-
#define GTS_GENERATE_DEBUG_ARRAYS 1
55-
5660
namespace Detail
5761
{
5862

@@ -420,6 +424,10 @@ void GenerateTiltSeries::execute()
420424
size_t gridIndex = 0;
421425
for(float currentDeg = 0.0f; currentDeg < 180.0f; currentDeg += increment)
422426
{
427+
QString msg;
428+
QTextStream out(&msg);
429+
out << "Generating Tilt " << currentDeg << " (Deg)";
430+
notifyStatusMessage(msg);
423431
QString gridDCName = QString(Detail::k_ImageGridNamePattern).arg(gridIndex);
424432
DataContainer::Pointer gridDC = dca->getDataContainer(gridDCName);
425433

Source/SIMPLib/CoreFilters/Testing/Cxx/GenerateTiltSeriesTest.cpp

Lines changed: 96 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55

66
#include <QtCore/QCoreApplication>
77
#include <QtCore/QFile>
8+
#include <QtCore/QString>
89

910
#include "SIMPLib/Common/SIMPLibSetGetMacros.h"
11+
#include "SIMPLib/CoreFilters/CreateDataArray.h"
12+
#include "SIMPLib/CoreFilters/CreateDataContainer.h"
13+
#include "SIMPLib/CoreFilters/CreateGeometry.h"
14+
#include "SIMPLib/CoreFilters/DataContainerWriter.h"
1015
#include "SIMPLib/CoreFilters/GenerateTiltSeries.h"
1116
#include "SIMPLib/DataArrays/DataArray.hpp"
1217
#include "SIMPLib/Filtering/FilterFactory.hpp"
@@ -17,58 +22,103 @@
1722
#include "SIMPLib/Plugin/SIMPLibPluginLoader.h"
1823
#include "SIMPLib/SIMPLib.h"
1924

20-
#include "UnitTestSupport.hpp"
21-
25+
// These Headers are generated into the build directory
2226
#include "SIMPLib/Testing/SIMPLTestFileLocations.h"
27+
#include "SIMPLib/Testing/UnitTestSupport.hpp"
2328

24-
class GenerateTiltSeriesTest
29+
// -----------------------------------------------------------------------------
30+
QTextStream& operator<<(QTextStream& out, const FilterPipeline::ExecutionResult& result)
2531
{
32+
out << static_cast<unsigned int>(result);
33+
return out;
34+
}
2635

27-
public:
28-
GenerateTiltSeriesTest() = default;
29-
~GenerateTiltSeriesTest() = default;
30-
GenerateTiltSeriesTest(const GenerateTiltSeriesTest&) = delete; // Copy Constructor
31-
GenerateTiltSeriesTest(GenerateTiltSeriesTest&&) = delete; // Move Constructor
32-
GenerateTiltSeriesTest& operator=(const GenerateTiltSeriesTest&) = delete; // Copy Assignment
33-
GenerateTiltSeriesTest& operator=(GenerateTiltSeriesTest&&) = delete; // Move Assignment
34-
35-
// -----------------------------------------------------------------------------
36-
//
37-
// -----------------------------------------------------------------------------
38-
void RemoveTestFiles()
39-
{
36+
// -----------------------------------------------------------------------------
37+
class GenerateTiltSeriesTest
38+
{
39+
const DataArrayPath k_DCName = DataArrayPath("Data Container", "", "");
40+
const DataArrayPath k_CellDataArray = DataArrayPath("Data Container", "Cell Data", "FeatureIds");
41+
42+
public:
43+
GenerateTiltSeriesTest() = default;
44+
~GenerateTiltSeriesTest() = default;
45+
GenerateTiltSeriesTest(const GenerateTiltSeriesTest&) = delete; // Copy Constructor
46+
GenerateTiltSeriesTest(GenerateTiltSeriesTest&&) = delete; // Move Constructor
47+
GenerateTiltSeriesTest& operator=(const GenerateTiltSeriesTest&) = delete; // Copy Assignment
48+
GenerateTiltSeriesTest& operator=(GenerateTiltSeriesTest&&) = delete; // Move Assignment
49+
50+
// -----------------------------------------------------------------------------
51+
//
52+
// -----------------------------------------------------------------------------
53+
void RemoveTestFiles()
54+
{
4055
#if REMOVE_TEST_FILES
4156
QFile::remove(UnitTest::GenerateTiltSeriesTest::TestFile1);
4257
QFile::remove(UnitTest::GenerateTiltSeriesTest::TestFile2);
4358
#endif
44-
}
45-
46-
// -----------------------------------------------------------------------------
47-
//
48-
// -----------------------------------------------------------------------------
49-
int TestGenerateTiltSeriesTest()
50-
{
51-
52-
int foo = 0;
53-
DREAM3D_REQUIRE_EQUAL(foo, 0)
54-
55-
return EXIT_SUCCESS;
56-
}
57-
58-
// -----------------------------------------------------------------------------
59-
//
60-
// -----------------------------------------------------------------------------
61-
void operator()()
62-
{
63-
int err = EXIT_SUCCESS;
64-
65-
DREAM3D_REGISTER_TEST(TestGenerateTiltSeriesTest())
66-
67-
DREAM3D_REGISTER_TEST(RemoveTestFiles())
68-
}
69-
70-
private:
71-
72-
59+
}
60+
61+
// -----------------------------------------------------------------------------
62+
//
63+
// -----------------------------------------------------------------------------
64+
int TestGenerateTiltSeriesTest()
65+
{
66+
CreateDataContainer::Pointer createDataContainer = CreateDataContainer::New();
67+
createDataContainer->setDataContainerName(k_DCName);
68+
69+
CreateGeometry::Pointer createGeometry = CreateGeometry::New();
70+
IntVec3Type dims(500, 500, 500);
71+
createGeometry->setDimensions(dims);
72+
FloatVec3Type spacing(0.25f, 0.5f, 1.2f);
73+
createGeometry->setSpacing(spacing);
74+
FloatVec3Type origin(-100.34f, 234.947f, 1823.3f);
75+
createGeometry->setOrigin(origin);
76+
createGeometry->setDataContainerName(k_DCName);
77+
createGeometry->setImageCellAttributeMatrixName("Cell Data");
78+
79+
CreateDataArray::Pointer createDataArray = CreateDataArray::New();
80+
createDataArray->setScalarType(SIMPL::ScalarTypes::Type::Int32);
81+
createDataArray->setNumberOfComponents(1);
82+
createDataArray->setNewArray(k_CellDataArray);
83+
84+
GenerateTiltSeries::Pointer generateTiltSeries = GenerateTiltSeries::New();
85+
generateTiltSeries->setRotationAxis(0);
86+
generateTiltSeries->setIncrement(1.0f);
87+
FloatVec3Type sampleSpacing(0.1f, 0.4f, 1.5f);
88+
generateTiltSeries->setSpacing(sampleSpacing);
89+
generateTiltSeries->setInputDataArrayPath(k_CellDataArray);
90+
91+
DataContainerWriter::Pointer writer = DataContainerWriter::New();
92+
writer->setOutputFile(UnitTest::GenerateTiltSeriesTest::TestFile1);
93+
94+
FilterPipeline::Pointer pipeline = FilterPipeline::New();
95+
pipeline->pushBack(createDataContainer);
96+
pipeline->pushBack(createGeometry);
97+
pipeline->pushBack(createDataArray);
98+
pipeline->pushBack(generateTiltSeries);
99+
pipeline->pushBack(writer);
100+
101+
int err = pipeline->preflightPipeline();
102+
DREAM3D_REQUIRED(err, >=, 0)
103+
104+
pipeline->execute();
105+
FilterPipeline::ExecutionResult result = pipeline->getExecutionResult();
106+
DREAM3D_REQUIRE_EQUAL(result, FilterPipeline::ExecutionResult::Completed)
107+
108+
return EXIT_SUCCESS;
109+
}
110+
111+
// -----------------------------------------------------------------------------
112+
//
113+
// -----------------------------------------------------------------------------
114+
void operator()()
115+
{
116+
int err = EXIT_SUCCESS;
117+
118+
DREAM3D_REGISTER_TEST(TestGenerateTiltSeriesTest())
119+
120+
DREAM3D_REGISTER_TEST(RemoveTestFiles())
121+
}
122+
123+
private:
73124
};
74-

0 commit comments

Comments
 (0)