30 CPPUNIT_TEST_SUITE(mitkMCThreadHandlerTestSuite);
33 MITK_TEST(testCorrectNumberOfPhotonsWithUnevenPackageSize);
34 MITK_TEST(testCorrectNumberOfPhotonsWithTooLargePackageSize);
35 CPPUNIT_TEST_SUITE_END();
39 mitk::pa::MonteCarloThreadHandler::Pointer m_MonteCarloThreadHandler;
40 long m_NumberOrTime = 500;
48 void testConstructorBehavior()
50 auto threadHandler1 = mitk::pa::MonteCarloThreadHandler::New(m_NumberOrTime,
true,
true);
51 auto threadHandler2 = mitk::pa::MonteCarloThreadHandler::New(m_NumberOrTime,
true);
53 CPPUNIT_ASSERT(
mitk::pa::Equal(threadHandler1, threadHandler2, 1e-6,
true));
56 void testCorrectNumberOfPhotons()
58 m_MonteCarloThreadHandler = mitk::pa::MonteCarloThreadHandler::New(m_NumberOrTime,
false,
false);
59 m_MonteCarloThreadHandler->SetPackageSize(100);
60 long numberOfPhotonsSimulated = 0;
61 long nextWorkPackage = 0;
62 while ((nextWorkPackage = m_MonteCarloThreadHandler->GetNextWorkPackage()) > 0)
64 numberOfPhotonsSimulated += nextWorkPackage;
66 CPPUNIT_ASSERT(numberOfPhotonsSimulated == m_NumberOrTime);
69 void testCorrectNumberOfPhotonsWithUnevenPackageSize()
71 m_MonteCarloThreadHandler = mitk::pa::MonteCarloThreadHandler::New(m_NumberOrTime,
false,
false);
72 m_MonteCarloThreadHandler->SetPackageSize(77);
73 long numberOfPhotonsSimulated = 0;
74 long nextWorkPackage = 0;
75 while ((nextWorkPackage = m_MonteCarloThreadHandler->GetNextWorkPackage()) > 0)
77 numberOfPhotonsSimulated += nextWorkPackage;
79 CPPUNIT_ASSERT(numberOfPhotonsSimulated == m_NumberOrTime);
82 void testCorrectNumberOfPhotonsWithTooLargePackageSize()
84 m_MonteCarloThreadHandler = mitk::pa::MonteCarloThreadHandler::New(m_NumberOrTime,
false,
false);
85 m_MonteCarloThreadHandler->SetPackageSize(10000);
86 long numberOfPhotonsSimulated = 0;
87 long nextWorkPackage = 0;
88 while ((nextWorkPackage = m_MonteCarloThreadHandler->GetNextWorkPackage()) > 0)
90 numberOfPhotonsSimulated += nextWorkPackage;
92 CPPUNIT_ASSERT(numberOfPhotonsSimulated == m_NumberOrTime);
95 void tearDown()
override 97 m_MonteCarloThreadHandler =
nullptr;
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
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.