Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkPhotoacousticVesselTreeTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include <mitkTestFixture.h>
14 #include <mitkTestingMacros.h>
15 
16 #include <mitkImageReadAccessor.h>
17 
18 #include "mitkPAVesselTree.h"
20 
21 using namespace mitk::pa;
22 
23 class mitkPhotoacousticVesselTreeTestSuite : public mitk::TestFixture
24 {
25  CPPUNIT_TEST_SUITE(mitkPhotoacousticVesselTreeTestSuite);
26  MITK_TEST(testVesselTreeInitialBehavior);
27  MITK_TEST(testCallStepMethod);
28  CPPUNIT_TEST_SUITE_END();
29 
30 private:
31 
32 public:
33 
34  VesselTree::Pointer m_Tree;
35  VesselProperties::Pointer m_VesselProperties;
37  InSilicoTissueVolume::Pointer m_TestInSilicoVolume;
38 
39  void setUp() override
40  {
41  m_VesselProperties = VesselProperties::New();
42  m_Tree = VesselTree::New(m_VesselProperties);
44  auto rng = std::mt19937();
45  m_TestInSilicoVolume = InSilicoTissueVolume::New(createTestVolumeParameters(), &rng);
46  }
47 
48  TissueGeneratorParameters::Pointer createTestVolumeParameters()
49  {
50  auto returnParameters =
52 
53  returnParameters->SetXDim(10);
54  returnParameters->SetYDim(10);
55  returnParameters->SetZDim(10);
56  returnParameters->SetMinBackgroundAbsorption(0);
57  returnParameters->SetMaxBackgroundAbsorption(0);
58  returnParameters->SetBackgroundScattering(0);
59  returnParameters->SetBackgroundAnisotropy(0);
60  return returnParameters;
61  }
62 
63  void testVesselTreeInitialBehavior()
64  {
65  CPPUNIT_ASSERT(m_Tree->IsFinished() == true);
66  }
67 
68  void testCallStepMethod()
69  {
70  //really bad test atm.. The only thing that is tested is that the method can be called without a crash.
71  //But hey - it is something :P
72  m_VesselProperties->SetRadiusInVoxel(2);
73  std::mt19937 rng;
74  rng.seed(1);
75  m_Tree = VesselTree::New(m_VesselProperties);
76  m_Tree->Step(m_TestInSilicoVolume, m_StraightLine, 0, &rng);
77 
78  rng.seed(1);
79  auto secondTree = VesselTree::New(m_VesselProperties);
80  secondTree->Step(m_TestInSilicoVolume, m_StraightLine, 0, &rng);
81 
82  CPPUNIT_ASSERT(Equal(m_Tree, secondTree, 1e-6, true));
83 
84  secondTree->Step(m_TestInSilicoVolume, m_StraightLine, 0, &rng);
85 
86  CPPUNIT_ASSERT(!Equal(m_Tree, secondTree, 1e-6, true));
87 
88  int i = 0;
89  for (; i < 1000; i++)
90  {
91  secondTree->Step(m_TestInSilicoVolume, m_StraightLine, 0, &rng);
92  if (secondTree->IsFinished())
93  break;
94  }
95 
96  CPPUNIT_ASSERT(i < 999);
97  }
98 
99  void tearDown() override
100  {
101  }
102 };
103 
104 MITK_TEST_SUITE_REGISTRATION(mitkPhotoacousticVesselTree)
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
static InSilicoTissueVolume::Pointer New(mitk::pa::Volume::Pointer absorptionVolume, Volume::Pointer scatteringVolume, Volume::Pointer anisotropyVolume, Volume::Pointer segmentationVolume, TissueGeneratorParameters::Pointer tissueParameters, mitk::PropertyList::Pointer propertyList)
MITKPHOTOACOUSTICSLIB_EXPORT bool Equal(const MonteCarloThreadHandler::Pointer leftHandSide, const MonteCarloThreadHandler::Pointer rightHandSide, double eps, bool verbose)
Equal A function comparing two thread handlers for beeing equal.
Test fixture for parameterized tests.
void CalculateNewDirectionVectorInStraightLine(Vector::Pointer direction, double bendingFactor, std::mt19937 *rng)
CalculateNewPositionInStraightLine calculates the new position by just following the direction vector...
void(VesselMeanderStrategy::* CalculateNewVesselPositionCallback)(Vector::Pointer, double, std::mt19937 *)
Definition: mitkPAVessel.h:41