diff --git a/cmake/rttbMacroCreateApplicationTests.cmake b/cmake/rttbMacroCreateApplicationTests.cmake index 4ce316d..f77d6ec 100644 --- a/cmake/rttbMacroCreateApplicationTests.cmake +++ b/cmake/rttbMacroCreateApplicationTests.cmake @@ -1,80 +1,80 @@ ################################################################## # # RTTB_CREATE_APPLICATION_TESTS # #! Creates tests for a APP. #! #! USAGE: #! #! \code #! RTTB_CREATE_APPLICATION_TESTS( #! [INCLUDE_DIRS ] #! [DEPENDS ] #! [PACKAGE_DEPENDS ] #! \endcode #! #! \param APP_NAME_IN The name for the new APP # ################################################################## MACRO(RTTB_CREATE_APPLICATION_TESTS APP_NAME_IN) MACRO_PARSE_ARGUMENTS(APP "INCLUDE_DIRS;DEPENDS;PACKAGE_DEPENDS;ADDITIONAL_LIBS" "HEADER_TESTS" ${ARGN}) - SET(APP_NAME "rttb${APP_NAME_IN}Tests") + SET(APP_NAME "RTTB${APP_NAME_IN}Tests") SET(WAIT_FOR_DEPENDENCY_LIBS "Litmus") #each test depends on Litmus IF(BUILD_TESTING) MESSAGE(STATUS "configuring Tests ${APP_NAME}...") # first of all we check for the dependencies RTTB_CHECK_MODULE(_MISSING_DEP ${APP_DEPENDS}) IF(_MISSING_DEP) MESSAGE("APP ${APP_NAME} won't be built, missing dependency: ${_MISSING_DEP}") SET(APP_IS_ENABLED 0) ELSE(_MISSING_DEP) SET(APP_IS_ENABLED 1) # now check for every package if it is enabled. This overlaps a bit with # RTTB_CHECK_MODULE ... FOREACH(_package ${APP_PACKAGE_DEPENDS}) IF((DEFINED RTTB_USE_${_package}) AND NOT (RTTB_USE_${_package})) MESSAGE("APP ${APP_NAME} won't be built. Turn on RTTB_USE_${_package} if you want to use it.") SET(APP_IS_ENABLED 0) ENDIF() ENDFOREACH() SET(DEPENDS "${APP_DEPENDS}") SET(DEPENDS_BEFORE "not initialized") SET(PACKAGE_DEPENDS "${APP_PACKAGE_DEPENDS}") RTTB_USE_MODULE("${APP_DEPENDS}") # ok, now create the APP itself INCLUDE_DIRECTORIES(. ${ALL_INCLUDE_DIRECTORIES}) INCLUDE(files.cmake) SET(APP_TESTS ${CXX_TEST_PATH}/${APP_NAME}) ORGANIZE_SOURCES(SOURCE ${CPP_FILES} HEADER ${H_FILES} TXX ${TXX_FILES} DOC ${DOX_FILES} ) IF(ALL_LIBRARY_DIRS) # LINK_DIRECTORIES applies only to targets which are added after the call to LINK_DIRECTORIES LINK_DIRECTORIES(${ALL_LIBRARY_DIRS}) ENDIF(ALL_LIBRARY_DIRS) ADD_EXECUTABLE(${APP_NAME} ${CPP_FILES} ${H_FILES}) IF(ALL_LIBRARIES) TARGET_LINK_LIBRARIES(${APP_NAME} ${ALL_LIBRARIES}) ENDIF(ALL_LIBRARIES) # Necessary so the build waits for libs to build ADD_DEPENDENCIES(${APP_NAME} ${WAIT_FOR_DEPENDENCY_LIBS}) ENDIF(_MISSING_DEP) ENDIF(BUILD_TESTING) ENDMACRO(RTTB_CREATE_APPLICATION_TESTS) \ No newline at end of file diff --git a/cmake/rttbMacroCreateTestModule.cmake b/cmake/rttbMacroCreateTestModule.cmake index ebca202..278d976 100644 --- a/cmake/rttbMacroCreateTestModule.cmake +++ b/cmake/rttbMacroCreateTestModule.cmake @@ -1,175 +1,175 @@ ################################################################## # # RTTB_CREATE_MODULE # #! Creates a module for the automatic module dependency system within RTTB. #! Configurations are generated in the moduleConf directory. #! #! USAGE: #! #! \code #! RTTB_CREATE_MODULE( #! [INCLUDE_DIRS ] #! [INTERNAL_INCLUDE_DIRS ] #! [DEPENDS ] #! [PROVIDES ] #! [PACKAGE_DEPENDS ] #! [HEADER_TEST] #! \endcode #! #! \param MODULE_NAME_IN The name for the new module # ################################################################## MACRO(RTTB_CREATE_TEST_MODULE MODULE_NAME_IN) MACRO_PARSE_ARGUMENTS(MODULE "INCLUDE_DIRS;INTERNAL_INCLUDE_DIRS;DEPENDS;DEPENDS_INTERNAL;PROVIDES;PACKAGE_DEPENDS;ADDITIONAL_LIBS" "HEADER_TESTS" ${ARGN}) - SET(MODULE_NAME "${MODULE_NAME_IN}Tests") + SET(MODULE_NAME "RTTB${MODULE_NAME_IN}Tests") SET(WAIT_FOR_DEPENDENCY_LIBS "Litmus") #each test depends on Litmus # assume worst case SET(MODULE_IS_ENABLED 0) # first we check if we have an explicit module build list IF(RTTB_MODULES_TO_BUILD) LIST(FIND RTTB_MODULES_TO_BUILD ${MODULE_NAME} _MOD_INDEX) IF(_MOD_INDEX EQUAL -1) SET(MODULE_IS_EXCLUDED 1) ENDIF() ENDIF() IF(NOT MODULE_IS_EXCLUDED) MESSAGE(STATUS "configuring Tests ${MODULE_NAME}...") # first of all we check for the dependencies RTTB_CHECK_MODULE(_MISSING_DEP ${MODULE_DEPENDS}) IF(_MISSING_DEP) MESSAGE("Module ${MODULE_NAME} won't be built, missing dependency: ${_MISSING_DEP}") SET(MODULE_IS_ENABLED 0) ELSE(_MISSING_DEP) SET(MODULE_IS_ENABLED 1) # now check for every package if it is enabled. This overlaps a bit with # RTTB_CHECK_MODULE ... FOREACH(_package ${MODULE_PACKAGE_DEPENDS}) IF((DEFINED RTTB_USE_${_package}) AND NOT (RTTB_USE_${_package})) MESSAGE("Module ${MODULE_NAME} won't be built. Turn on RTTB_USE_${_package} if you want to use it.") SET(MODULE_IS_ENABLED 0) ENDIF() ENDFOREACH() IF(NOT MODULE_PROVIDES) SET(MODULE_PROVIDES ${MODULE_NAME}) ENDIF(NOT MODULE_PROVIDES) SET(DEPENDS "${MODULE_DEPENDS}") SET(DEPENDS_BEFORE "not initialized") SET(PACKAGE_DEPENDS "${MODULE_PACKAGE_DEPENDS}") RTTB_USE_MODULE("${MODULE_DEPENDS}") # ok, now create the module itself INCLUDE_DIRECTORIES(. ${ALL_INCLUDE_DIRECTORIES}) INCLUDE(files.cmake) ORGANIZE_SOURCES(SOURCE ${CPP_FILES} HEADER ${H_FILES} TXX ${TXX_FILES} DOC ${DOX_FILES} ) IF(ALL_LIBRARY_DIRS) # LINK_DIRECTORIES applies only to targets which are added after the call to LINK_DIRECTORIES LINK_DIRECTORIES(${ALL_LIBRARY_DIRS}) ENDIF(ALL_LIBRARY_DIRS) SET(coverage_sources ${CPP_FILES} ${H_FILES} ${TXX_FILES}) ADD_EXECUTABLE(${MODULE_PROVIDES} ${coverage_sources} ${CPP_FILES_GENERATED}) IF(ALL_LIBRARIES) TARGET_LINK_LIBRARIES(${MODULE_PROVIDES} ${ALL_LIBRARIES}) ENDIF(ALL_LIBRARIES) IF(MODULE_HEADER_TESTS) MESSAGE(STATUS "generating header tests ${MODULE_NAME}...") SET(HEADER_TEST_CPP "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME_IN}HeaderTests.cpp") MESSAGE(STATUS "generating header tests ${HEADER_TEST_CPP}") FILE(WRITE ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_HEADER}) FOREACH(_h_file ${H_FILES}) FILE(APPEND ${HEADER_TEST_CPP} "#include <${_h_file}>\n") ENDFOREACH() FILE(APPEND ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_FOOTER}) ADD_EXECUTABLE(${MODULE_NAME_IN}HeaderTests ${HEADER_TEST_CPP}) IF(ALL_LIBRARIES) TARGET_LINK_LIBRARIES(${MODULE_NAME_IN}HeaderTests ${ALL_LIBRARIES}) ENDIF(ALL_LIBRARIES) ENDIF(MODULE_HEADER_TESTS) # Necessary so the build waits for libs to build ADD_DEPENDENCIES(${MODULE_NAME} ${WAIT_FOR_DEPENDENCY_LIBS}) #----------------------------------------------------------------------------- IF(RTToolbox_BINARY_DIR) SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTToolbox_BINARY_DIR}) ELSE(RTToolbox_BINARY_DIR) SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTTBTesting_BINARY_DIR}) ENDIF(RTToolbox_BINARY_DIR) WRITE_FILE( "${RTToolbox_SYSTEM_INFORMATION_DIR}/testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME}/BuildNameNotes.xml" "\n" "\n" "\n" "\n" "Wed Oct 24 1:00:00 EST\n" "\n" "Here is some basic information:\n" "RTToolbox_SOURCE_DIR = ${RTToolbox_SOURCE_DIR}\n" "RTToolbox_BINARY_DIR = ${RTToolbox_BINARY_DIR}\n" "RTTBTesting_SOURCE_DIR = ${RTTBTesting_SOURCE_DIR}\n" "RTTBTesting_BINARY_DIR = ${RTTBTesting_BINARY_DIR}\n" "CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n" "CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}\n" "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n" "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}\n" "CMAKE_SYSTEM = ${CMAKE_SYSTEM}\n" "CMAKE_MAKE_PROGRAM = ${CMAKE_MAKE_PROGRAM}\n" "\n" "\n" "\n" "\n" ) ENDIF(_MISSING_DEP) ENDIF(NOT MODULE_IS_EXCLUDED) ENDMACRO(RTTB_CREATE_TEST_MODULE) SET(RTTB_HEADER_TESTS_HEADER "// -----------------------------------------------------------------------\n" "// RTToolbox - DKFZ radiotherapy quantitative evaluation library\n" "//\n" "// (c) Copyright 2007, DKFZ, Heidelberg, Germany\n" "// ALL RIGHTS RESERVED\n" "//\n" "// THIS FILE CONTAINS CONFIDENTIAL AND PROPRIETARY INFORMATION OF DKFZ.\n" "// ANY DUPLICATION, MODIFICATION, DISTRIBUTION, OR\n" "// DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY PROHIBITED\n" "// WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF DKFZ.\n" "//\n" "//------------------------------------------------------------------------\n" "// Automatically generated header test file \n" "#if defined(_MSC_VER)\n" "#pragma warning ( disable : 4786 )\n" "#endif\n" "#include \n") SET(RTTB_HEADER_TESTS_FOOTER "\nint main ( int , char* )\n" "{\n" " return EXIT_SUCCESS;\n" "}\n") diff --git a/testing/algorithms/CMakeLists.txt b/testing/algorithms/CMakeLists.txt index bc7bef1..4ac3665 100644 --- a/testing/algorithms/CMakeLists.txt +++ b/testing/algorithms/CMakeLists.txt @@ -1,20 +1,20 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(ALGORITHMS_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbAlgorithmsTests) SET(ALGORITHMS_HEADER_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbAlgorithmsHeaderTest) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(DoseStatisticsTest ${ALGORITHMS_TESTS} DoseStatisticsTest) ADD_TEST(ArithmeticTest ${ALGORITHMS_TESTS} ArithmeticTest) ADD_TEST(DoseStatisticsCalculatorTest ${ALGORITHMS_TESTS} DoseStatisticsCalculatorTest "${TEST_DATA_ROOT}/DoseStatistics/XML/dicom_heartComplex.xml" "${TEST_DATA_ROOT}/Dose/DICOM/dicompylerTestDose.dcm" "${TEST_DATA_ROOT}/StructureSet/DICOM/rtss.dcm") ADD_TEST(BinaryFunctorAccessorTest ${ALGORITHMS_TESTS} BinaryFunctorAccessorTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/dicompylerTestDose.dcm") -RTTB_CREATE_TEST_MODULE(rttbAlgorithms DEPENDS RTTBAlgorithms RTTBBoostMask RTTBDicomIO PACKAGE_DEPENDS Boost Litmus RTTBData DCMTK) +RTTB_CREATE_TEST_MODULE(Algorithms DEPENDS RTTBAlgorithms RTTBBoostMask RTTBDicomIO PACKAGE_DEPENDS Boost Litmus RTTBData DCMTK) diff --git a/testing/core/CMakeLists.txt b/testing/core/CMakeLists.txt index 1d65745..c2017ab 100644 --- a/testing/core/CMakeLists.txt +++ b/testing/core/CMakeLists.txt @@ -1,29 +1,29 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(CORE_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbCoreTests) SET(CORE_HEADER_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbCoreHeaderTest) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(GeometricInfoTest ${CORE_TESTS} GeometricInfoTest) ADD_TEST(MaskVoxelTest ${CORE_TESTS} MaskVoxelTest) ADD_TEST(GenericDoseIteratorTest ${CORE_TESTS} GenericDoseIteratorTest) ADD_TEST(GenericMaskedDoseIteratorTest ${CORE_TESTS} GenericMaskedDoseIteratorTest) ADD_TEST(DVHCalculatorTest ${CORE_TESTS} DVHCalculatorTest) ADD_TEST(DVHTest ${CORE_TESTS} DVHTest) ADD_TEST(DVHSetTest ${CORE_TESTS} DVHSetTest) ADD_TEST(StructureTest ${CORE_TESTS} StructureTest) ADD_TEST(StrVectorStructureSetGeneratorTest ${CORE_TESTS} StrVectorStructureSetGeneratorTest) ADD_TEST(StructureSetTest ${CORE_TESTS} StructureSetTest) ADD_TEST(BaseTypeTest ${CORE_TESTS} BaseTypeTest) -RTTB_CREATE_TEST_MODULE(rttbCore DEPENDS RTTBCore PACKAGE_DEPENDS Boost Litmus) +RTTB_CREATE_TEST_MODULE(Core DEPENDS RTTBCore PACKAGE_DEPENDS Boost Litmus) diff --git a/testing/examples/CMakeLists.txt b/testing/examples/CMakeLists.txt index bd9f3e5..27f9254 100644 --- a/testing/examples/CMakeLists.txt +++ b/testing/examples/CMakeLists.txt @@ -1,26 +1,26 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(CORE_TEST_EXAMPLES ${EXECUTABLE_OUTPUT_PATH}/rttbExamplesTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/Temporary) #----------------------------------------------------------------------------- ADD_TEST(RTBioModelExampleTest ${CORE_TEST_EXAMPLES} RTBioModelExampleTest "${TEST_DATA_ROOT}/DVH/XML/dvh_PTV_HIT.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT1.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT2.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT3.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_TV.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_virtuos_diff_trunk6.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_virtuos_diff_trunk8.xml") ADD_TEST(RTDoseIndexTest ${CORE_TEST_EXAMPLES} RTDoseIndexTest "${TEST_DATA_ROOT}/DVH/XML/dvh_test_TV.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT1.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT2.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT3.xml") ADD_TEST(RTDoseStatisticsDicomTest ${CORE_TEST_EXAMPLES} RTDoseStatisticsDicomTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo_withDoseGridScaling.dcm") ADD_TEST(RTDVHTest ${CORE_TEST_EXAMPLES} RTDVHTest "${TEST_DATA_ROOT}/DVH/XML/dvh_test.xml") ADD_TEST(RTBioModelScatterPlotExampleTest ${CORE_TEST_EXAMPLES} RTBioModelScatterPlotExampleTest "${TEST_DATA_ROOT}/DVH/XML/dvh_PTV_HIT.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_HT1.xml" "${TEST_DATA_ROOT}/DVH/XML/dvh_test_TV.xml") -RTTB_CREATE_TEST_MODULE(rttbExamples DEPENDS RTTBCore RTTBAlgorithms RTTBMasks RTTBBoostMask RTTBIndices RTTBDicomIO RTTBITKIO RTTBOtherIO RTTBModels PACKAGE_DEPENDS Litmus RTTBData) +RTTB_CREATE_TEST_MODULE(Examples DEPENDS RTTBCore RTTBAlgorithms RTTBMasks RTTBBoostMask RTTBIndices RTTBDicomIO RTTBITKIO RTTBOtherIO RTTBModels PACKAGE_DEPENDS Litmus RTTBData) diff --git a/testing/interpolation/CMakeLists.txt b/testing/interpolation/CMakeLists.txt index 4605dd1..a6712ea 100644 --- a/testing/interpolation/CMakeLists.txt +++ b/testing/interpolation/CMakeLists.txt @@ -1,24 +1,24 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(INTERPOLATION_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbInterpolationTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(SimpleMappableDoseAccessorTest ${INTERPOLATION_TESTS} SimpleMappableDoseAccessorTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") ADD_TEST(RosuMappableDoseAccessorTest ${INTERPOLATION_TESTS} RosuMappableDoseAccessorTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") ADD_TEST(InterpolationTest ${INTERPOLATION_TESTS} InterpolationTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") ADD_SUBDIRECTORY(InterpolationITKTransformation) IF(BUILD_InterpolationMatchPointTransformation) ADD_SUBDIRECTORY(InterpolationMatchPointTransformation) ENDIF(BUILD_InterpolationMatchPointTransformation) -RTTB_CREATE_TEST_MODULE(rttbInterpolation DEPENDS RTTBInterpolation RTTBDicomIO PACKAGE_DEPENDS Litmus RTTBData) +RTTB_CREATE_TEST_MODULE(Interpolation DEPENDS RTTBInterpolation RTTBDicomIO PACKAGE_DEPENDS Litmus RTTBData) diff --git a/testing/interpolation/InterpolationITKTransformation/CMakeLists.txt b/testing/interpolation/InterpolationITKTransformation/CMakeLists.txt index b63b924..2cb73ef 100644 --- a/testing/interpolation/InterpolationITKTransformation/CMakeLists.txt +++ b/testing/interpolation/InterpolationITKTransformation/CMakeLists.txt @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(INTERPOLATION_ITK_TRANSFORMATION_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbInterpolationITKTransformationTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(SimpleMappableDoseAccessorWithITKTest ${INTERPOLATION_ITK_TRANSFORMATION_TESTS} SimpleMappableDoseAccessorWithITKTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") -RTTB_CREATE_TEST_MODULE(rttbInterpolationITKTransformation DEPENDS RTTBInterpolation RTTBInterpolationITKTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus RTTBData ITK) +RTTB_CREATE_TEST_MODULE(InterpolationITKTransformation DEPENDS RTTBInterpolation RTTBInterpolationITKTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus RTTBData ITK) diff --git a/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt b/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt index 3a439de..7162d2d 100644 --- a/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt +++ b/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(INTERPOLATION_MP_TRANSFORMATION_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbInterpolationMPTransformationTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(SimpleMappableDoseAccessorWithMatchPointTest ${INTERPOLATION_MP_TRANSFORMATION_TESTS} SimpleMappableDoseAccessorWithMatchPointTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") -RTTB_CREATE_TEST_MODULE(rttbInterpolationMPTransformation DEPENDS RTTBInterpolation RTTBInterpolationMatchPointTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus MatchPoint RTTBData) +RTTB_CREATE_TEST_MODULE(InterpolationMPTransformation DEPENDS RTTBInterpolation RTTBInterpolationMatchPointTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus MatchPoint RTTBData) diff --git a/testing/io/dicom/CMakeLists.txt b/testing/io/dicom/CMakeLists.txt index 91912d5..217b616 100644 --- a/testing/io/dicom/CMakeLists.txt +++ b/testing/io/dicom/CMakeLists.txt @@ -1,38 +1,38 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(DICOMIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbDicomIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(DicomDoseAccessorConverterTest ${DICOMIO_TEST} DicomDoseAccessorConverterTest "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/dose_w.dcm" ) ADD_TEST(DicomDoseAccessorGeneratorTest ${DICOMIO_TEST} DicomDoseAccessorGeneratorTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantFifty.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" ) ADD_TEST(DicomFileReaderHelperTest ${DICOMIO_TEST} DicomFileReaderHelperTest "${TEST_DATA_ROOT}/Dose/DICOM/Helax/" "${TEST_DATA_ROOT}/Dose/DICOM/Helax/____mm_1_1.2.276.0.28.19.977891832855880720695789165493875543457754809556.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/Helax/____mm__1.2.276.0.28.19.142087956198378746376227895256244905653791675016.dcm" ) ADD_TEST(DicomIOTest ${DICOMIO_TEST} DicomIOTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantFifty.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/dicompylerTestDose.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/InhomogeneousGrid.dcm" ) ADD_TEST(DicomStructureSetGeneratorTest ${DICOMIO_TEST} DicomStructureSetGeneratorTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" ) -RTTB_CREATE_TEST_MODULE(rttbDicomIO DEPENDS RTTBDicomIO PACKAGE_DEPENDS Boost Litmus RTTBData DCMTK) +RTTB_CREATE_TEST_MODULE(DicomIO DEPENDS RTTBDicomIO PACKAGE_DEPENDS Boost Litmus RTTBData DCMTK) diff --git a/testing/io/helax/CMakeLists.txt b/testing/io/helax/CMakeLists.txt index f2349bf..a516d7a 100644 --- a/testing/io/helax/CMakeLists.txt +++ b/testing/io/helax/CMakeLists.txt @@ -1,23 +1,23 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(HelaxIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbHelaxIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(DicomHelaxDoseAccessorGeneratorTest ${HelaxIO_TEST} DicomHelaxDoseAccessorGeneratorTest "${TEST_DATA_ROOT}/Dose/DICOM/Helax/" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantFifty.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" ) ADD_TEST(DicomHelaxIOTest ${HelaxIO_TEST} DicomHelaxIOTest "${TEST_DATA_ROOT}/Dose/DICOM/Helax/" ) -RTTB_CREATE_TEST_MODULE(rttbHelaxIO DEPENDS RTTBHelaxIO RTTBDicomIO PACKAGE_DEPENDS BoostBinaries Litmus RTTBData DCMTK) +RTTB_CREATE_TEST_MODULE(HelaxIO DEPENDS RTTBHelaxIO RTTBDicomIO PACKAGE_DEPENDS BoostBinaries Litmus RTTBData DCMTK) diff --git a/testing/io/itk/CMakeLists.txt b/testing/io/itk/CMakeLists.txt index a109856..fe7720e 100644 --- a/testing/io/itk/CMakeLists.txt +++ b/testing/io/itk/CMakeLists.txt @@ -1,27 +1,27 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(ITKIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbITKIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(ITKDoseAccessorGeneratorTest ${ITKIO_TEST} ITKDoseAccessorGeneratorTest "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd" "${TEST_DATA_ROOT}/Images/ITK/doseAccReference.nrrd" "${TEST_DATA_ROOT}/Images/ITK/emptyImageVector.png" "${TEST_DATA_ROOT}/Images/ITK/Png2D-bw.png") ADD_TEST(ITKIOTest ${ITKIO_TEST} ITKIOTest "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd" "${TEST_DATA_ROOT}/StructureSet/ITK/voxelizedNodes.nrrd") ADD_TEST(ITKDoseAccessorConverterTest ${ITKIO_TEST} ITKDoseAccessorConverterTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd" ) ADD_TEST(ITKBioModelAccessorConverterTest ${ITKIO_TEST} ITKBioModelAccessorConverterTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm") ADD_TEST(ITKMaskAccessorGeneratorTest ${ITKIO_TEST} ITKMaskAccessorGeneratorTest "${TEST_DATA_ROOT}/StructureSet/ITK/Nodes.nrrd") ADD_TEST(ITKMaskAccessorConverterTest ${ITKIO_TEST} ITKMaskAccessorConverterTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/StructureSet/ITK/Nodes.nrrd") -RTTB_CREATE_TEST_MODULE(rttbITKIO DEPENDS RTTBITKIO RTTBDicomIO RTTBMasks RTTBBoostMask RTTBModels PACKAGE_DEPENDS Boost Litmus ITK DCMTK RTTBData) +RTTB_CREATE_TEST_MODULE(ITKIO DEPENDS RTTBITKIO RTTBDicomIO RTTBMasks RTTBBoostMask RTTBModels PACKAGE_DEPENDS Boost Litmus ITK DCMTK RTTBData) diff --git a/testing/io/models/CMakeLists.txt b/testing/io/models/CMakeLists.txt index 75a0205..69c4e24 100644 --- a/testing/io/models/CMakeLists.txt +++ b/testing/io/models/CMakeLists.txt @@ -1,16 +1,16 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(MODELSIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbModelsIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(ModelsIOTest ${MODELSIO_TEST} ModelsIOTest "${TEST_DATA_ROOT}/BioModel/XML/referenceBioModeltcpleqIOTest.xml" "${TEST_DATA_ROOT}/BioModel/XML/referenceBioModelntcplkIOTest.xml" ) -RTTB_CREATE_TEST_MODULE(rttbModelsIO DEPENDS RTTBModelsIO RTTBModels PACKAGE_DEPENDS Boost Litmus RTTBData) \ No newline at end of file +RTTB_CREATE_TEST_MODULE(ModelsIO DEPENDS RTTBModelsIO RTTBModels PACKAGE_DEPENDS Boost Litmus RTTBData) diff --git a/testing/io/other/CMakeLists.txt b/testing/io/other/CMakeLists.txt index 41c9282..fbf7349 100644 --- a/testing/io/other/CMakeLists.txt +++ b/testing/io/other/CMakeLists.txt @@ -1,17 +1,17 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(OTHERIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbOtherIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(DoseStatisticsIOTest ${OTHERIO_TEST} DoseStatisticsIOTest) ADD_TEST(DVHXMLIOTest ${OTHERIO_TEST} DVHXMLIOTest) -RTTB_CREATE_TEST_MODULE(rttbOtherIO DEPENDS RTTBOtherIO PACKAGE_DEPENDS Boost Litmus RTTBData) \ No newline at end of file +RTTB_CREATE_TEST_MODULE(OtherIO DEPENDS RTTBOtherIO PACKAGE_DEPENDS Boost Litmus RTTBData) diff --git a/testing/masks/boost/BoostMaskTest.cpp b/testing/masks/BoostMaskTest.cpp similarity index 97% rename from testing/masks/boost/BoostMaskTest.cpp rename to testing/masks/BoostMaskTest.cpp index 9582a2d..86a5868 100644 --- a/testing/masks/boost/BoostMaskTest.cpp +++ b/testing/masks/BoostMaskTest.cpp @@ -1,255 +1,255 @@ -// ----------------------------------------------------------------------- -// RTToolbox - DKFZ radiotherapy quantitative evaluation library -// -// Copyright (c) German Cancer Research Center (DKFZ), -// Software development for Integrated Diagnostics and Therapy (SIDT). -// ALL RIGHTS RESERVED. -// See rttbCopyright.txt or -// http://www.dkfz.de/en/sidt/projects/rttb/copyright.html -// -// This software is distributed WITHOUT ANY WARRANTY; without even -// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -// PURPOSE. See the above copyright notices for more information. -// -//------------------------------------------------------------------------ -/*! -// @file -// @version $Revision: 1127 $ (last changed revision) -// @date $Date: 2015-10-01 13:33:33 +0200 (Do, 01 Okt 2015) $ (last change date) -// @author $Author: hentsch $ (last changed by) -*/ - -#include -#include - -#include "litCheckMacros.h" - -#include "rttbBaseType.h" - -#include "../../core/DummyStructure.h" -#include "../../core/DummyDoseAccessor.h" -#include "rttbDicomDoseAccessor.h" -#include "rttbDicomFileDoseAccessorGenerator.h" -#include "rttbDicomFileStructureSetGenerator.h" -#include "rttbDicomFileStructureSetGenerator.h" -#include "rttbGenericDoseIterator.h" -#include "rttbDVHCalculator.h" -#include "rttbGenericMaskedDoseIterator.h" -#include "rttbBoostMask.h" -#include "rttbBoostMaskAccessor.h" -#include "rttbInvalidParameterException.h" - - -namespace rttb -{ - namespace testing - { - - /*! @brief BoostMaskRedesignTest. - 1) test constructors - 2) test getRelevantVoxelVector - 3) test getMaskAt - */ - int BoostMaskTest(int argc, char* argv[]) - { - PREPARE_DEFAULT_TEST_REPORTING; - - typedef core::Structure::Pointer StructTypePointer; - - // generate test dose. geometric info: patient position (-25, -2, 35), center of the 1st.voxel - boost::shared_ptr spTestDoseAccessor = - boost::make_shared(); - boost::shared_ptr geometricPtr = boost::make_shared - (spTestDoseAccessor->getGeometricInfo()); - - - DummyStructure myStructGenerator(spTestDoseAccessor->getGeometricInfo()); - - //generate test structure. contours are (-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); - //(-20, 0.5, 41.25); (-12.5, 0.5, 41.25); (-12.5, 10.5, 41.25); (-20, 10.5, 41.25); - core::Structure myTestStruct = myStructGenerator.CreateRectangularStructureCentered(2,3); - StructTypePointer spMyStruct = boost::make_shared(myTestStruct); - - //generate test structure 2. contours are (-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); - //(-20, 0.5, 40); (-12.5, 0.5, 40); (-12.5, 10.5, 40); (-20, 10.5, 40); - core::Structure myTestStruct2 = myStructGenerator.CreateRectangularStructureCenteredContourPlaneThicknessNotEqualDosePlaneThickness(2); - StructTypePointer spMyStruct2 = boost::make_shared(myTestStruct2); - - //generate test structure. contours are - //(-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); - //(-20, 0.5, 41.25); (-12.5, 0.5, 41.25); (-12.5, 10.5, 41.25); (-20, 10.5, 41.25); - //(-20, 0.5, 48.75); (-12.5, 0.5, 48.75); (-12.5, 10.5, 48.75); (-20, 10.5, 48.75); - //(-20, 0.5, 51.25); (-12.5, 0.5, 51.25); (-12.5, 10.5, 51.25); (-20, 10.5, 51.25); - //to test calcVoxelizationThickness bug - core::Structure myTestStruct3 = myStructGenerator.CreateRectangularStructureCentered(2, 3, 6, 7); - StructTypePointer spMyStruct3 = boost::make_shared(myTestStruct3); - - //1) test BoostMask & BoostMaskAccessor constructor - CHECK_NO_THROW(rttb::masks::boost::BoostMask(geometricPtr, spMyStruct)); - rttb::masks::boost::BoostMask boostMask = rttb::masks::boost::BoostMask( - geometricPtr, spMyStruct); - - CHECK_NO_THROW(rttb::masks::boost::BoostMaskAccessor(spMyStruct, - spTestDoseAccessor->getGeometricInfo(), true)); - rttb::masks::boost::BoostMaskAccessor boostMaskAccessor(spMyStruct, - spTestDoseAccessor->getGeometricInfo(), true); - - //2) test getRelevantVoxelVector - CHECK_NO_THROW(boostMask.getRelevantVoxelVector()); - CHECK_NO_THROW(boostMaskAccessor.getRelevantVoxelVector()); - - //3) test getMaskAt - const VoxelGridIndex3D inMask1(2, 1, 2); //corner between two contours slice -> volumeFraction = 0.25 - const VoxelGridIndex3D inMask2(3, 4, 2); //inside between two contours slice ->volumeFraction = 1 - const VoxelGridIndex3D inMask3(4, 5, 2); //side between two contours slice -> volumeFraction = 0.5 - const VoxelGridIndex3D inMask4(2, 1, 1); //corner on the first contour slice -> volumeFraction = 0.25/2 = 0.125 - const VoxelGridIndex3D inMask5(2, 1, 3); //corner on the last contour slice -> volumeFraction = 0.25/2 = 0.125 - const VoxelGridIndex3D inMask6(3, 4, 1); //inside on the first contour slice ->volumeFraction = 1 /2 = 0.5 - const VoxelGridIndex3D outMask1(7, 5, 4); - const VoxelGridIndex3D outMask2(2, 1, 0); - const VoxelGridIndex3D outMask3(2, 1, 4); - VoxelGridID testId; - double errorConstantBoostMask = 1e-7; - - core::MaskVoxel tmpMV1(0), tmpMV2(0); - CHECK(boostMaskAccessor.getMaskAt(inMask1, tmpMV1)); - geometricPtr->convert(inMask1, testId); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_CLOSE(0.25, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor.getMaskAt(inMask2, tmpMV1)); - CHECK(geometricPtr->convert(inMask2, testId)); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(1, tmpMV1.getRelevantVolumeFraction()); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor.getMaskAt(inMask3, tmpMV1)); - CHECK(geometricPtr->convert(inMask3, testId)); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_CLOSE(0.5, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor.getMaskAt(inMask4, tmpMV1)); - CHECK(geometricPtr->convert(inMask4, testId)); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_CLOSE(0.125, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor.getMaskAt(inMask5, tmpMV1)); - CHECK(geometricPtr->convert(inMask5, testId)); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_CLOSE(0.125, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor.getMaskAt(inMask6, tmpMV1)); - CHECK(geometricPtr->convert(inMask6, testId)); - CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_CLOSE(0.5, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(!boostMaskAccessor.getMaskAt(outMask1, tmpMV1)); - CHECK(geometricPtr->convert(outMask1, testId)); - CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - - CHECK(!boostMaskAccessor.getMaskAt(outMask2, tmpMV1)); - CHECK(geometricPtr->convert(outMask2, testId)); - CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - - CHECK(!boostMaskAccessor.getMaskAt(outMask3, tmpMV1)); - CHECK(geometricPtr->convert(outMask3, testId)); - CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - - rttb::masks::boost::BoostMask boostMask2 = rttb::masks::boost::BoostMask( - geometricPtr, spMyStruct2); - CHECK_NO_THROW(boostMask2.getRelevantVoxelVector()); - rttb::masks::boost::BoostMaskAccessor boostMaskAccessor2(spMyStruct2, - spTestDoseAccessor->getGeometricInfo(), true); - CHECK_NO_THROW(boostMaskAccessor2.getRelevantVoxelVector()); - - CHECK(boostMaskAccessor2.getMaskAt(inMask1, tmpMV1)); - geometricPtr->convert(inMask1, testId); - CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - //corner, the first contour weight 0.25, the second contour weights 0.5 -> volumeFraction = 0.25*0.25 + 1.25*0.5 = 0.1875 - CHECK_CLOSE(0.1875, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor2.getMaskAt(inMask2, tmpMV1)); - CHECK(geometricPtr->convert(inMask2, testId)); - CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - //inside, the first contour weight 0.25, the second contour weights 0.5 -> ->volumeFraction = 1*0.25 + 1*0.5 = 0.75 - CHECK_EQUAL(0.75, tmpMV1.getRelevantVolumeFraction()); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor2.getMaskAt(inMask3, tmpMV1)); - CHECK(geometricPtr->convert(inMask3, testId)); - CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - //side the first contour weight 0.25, the second contour weights 0.5 -> ->volumeFraction = 0.5*0.25 + 0.5*0.5 = 0.75 - CHECK_CLOSE(0.375, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor2.getMaskAt(inMask4, tmpMV1)); - CHECK(geometricPtr->convert(inMask4, testId)); - CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - //corner on the first contour slice, weight 0.25 -> volumeFraction = 0.25*0.25 = 0.0625 - CHECK_CLOSE(0.0625, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(boostMaskAccessor2.getMaskAt(inMask6, tmpMV1)); - CHECK(geometricPtr->convert(inMask6, testId)); - CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - //inside on the first contour slice, weight 0.25 ->volumeFraction = 1 * 0.25 = 0.25 - CHECK_CLOSE(0.25, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); - CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); - - CHECK(!boostMaskAccessor2.getMaskAt(outMask1, tmpMV1)); - CHECK(geometricPtr->convert(outMask1, testId)); - CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask - - CHECK(!boostMaskAccessor2.getMaskAt(outMask2, tmpMV1)); - CHECK(geometricPtr->convert(outMask2, testId)); - CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask - - CHECK(!boostMaskAccessor2.getMaskAt(outMask3, tmpMV1)); - CHECK(geometricPtr->convert(outMask3, testId)); - CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); - CHECK_EQUAL(tmpMV1, tmpMV2); - CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); - //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask - - //3) test calcVoxelizationThickness bug - rttb::masks::boost::BoostMask boostMask3 = rttb::masks::boost::BoostMask( - geometricPtr, spMyStruct3); - CHECK_NO_THROW(boostMask3.getRelevantVoxelVector()); - rttb::masks::boost::BoostMaskAccessor boostMaskAccessor3(spMyStruct3, - spTestDoseAccessor->getGeometricInfo(), true); - CHECK_NO_THROW(boostMaskAccessor3.getRelevantVoxelVector()); - - RETURN_AND_REPORT_TEST_SUCCESS; - } - }//testing -}//rttb - +// ----------------------------------------------------------------------- +// RTToolbox - DKFZ radiotherapy quantitative evaluation library +// +// Copyright (c) German Cancer Research Center (DKFZ), +// Software development for Integrated Diagnostics and Therapy (SIDT). +// ALL RIGHTS RESERVED. +// See rttbCopyright.txt or +// http://www.dkfz.de/en/sidt/projects/rttb/copyright.html +// +// This software is distributed WITHOUT ANY WARRANTY; without even +// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +// PURPOSE. See the above copyright notices for more information. +// +//------------------------------------------------------------------------ +/*! +// @file +// @version $Revision: 1127 $ (last changed revision) +// @date $Date: 2015-10-01 13:33:33 +0200 (Do, 01 Okt 2015) $ (last change date) +// @author $Author: hentsch $ (last changed by) +*/ + +#include +#include + +#include "litCheckMacros.h" + +#include "rttbBaseType.h" + +#include "../core/DummyStructure.h" +#include "../core/DummyDoseAccessor.h" +#include "rttbDicomDoseAccessor.h" +#include "rttbDicomFileDoseAccessorGenerator.h" +#include "rttbDicomFileStructureSetGenerator.h" +#include "rttbDicomFileStructureSetGenerator.h" +#include "rttbGenericDoseIterator.h" +#include "rttbDVHCalculator.h" +#include "rttbGenericMaskedDoseIterator.h" +#include "rttbBoostMask.h" +#include "rttbBoostMaskAccessor.h" +#include "rttbInvalidParameterException.h" + + +namespace rttb +{ + namespace testing + { + + /*! @brief BoostMaskRedesignTest. + 1) test constructors + 2) test getRelevantVoxelVector + 3) test getMaskAt + */ + int BoostMaskTest(int argc, char* argv[]) + { + PREPARE_DEFAULT_TEST_REPORTING; + + typedef core::Structure::Pointer StructTypePointer; + + // generate test dose. geometric info: patient position (-25, -2, 35), center of the 1st.voxel + boost::shared_ptr spTestDoseAccessor = + boost::make_shared(); + boost::shared_ptr geometricPtr = boost::make_shared + (spTestDoseAccessor->getGeometricInfo()); + + + DummyStructure myStructGenerator(spTestDoseAccessor->getGeometricInfo()); + + //generate test structure. contours are (-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); + //(-20, 0.5, 41.25); (-12.5, 0.5, 41.25); (-12.5, 10.5, 41.25); (-20, 10.5, 41.25); + core::Structure myTestStruct = myStructGenerator.CreateRectangularStructureCentered(2,3); + StructTypePointer spMyStruct = boost::make_shared(myTestStruct); + + //generate test structure 2. contours are (-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); + //(-20, 0.5, 40); (-12.5, 0.5, 40); (-12.5, 10.5, 40); (-20, 10.5, 40); + core::Structure myTestStruct2 = myStructGenerator.CreateRectangularStructureCenteredContourPlaneThicknessNotEqualDosePlaneThickness(2); + StructTypePointer spMyStruct2 = boost::make_shared(myTestStruct2); + + //generate test structure. contours are + //(-20,0.5,38.75); (-12.5,0.5,38.75); (-12.5,10.5,38.75); (-20,10.5,38.75); + //(-20, 0.5, 41.25); (-12.5, 0.5, 41.25); (-12.5, 10.5, 41.25); (-20, 10.5, 41.25); + //(-20, 0.5, 48.75); (-12.5, 0.5, 48.75); (-12.5, 10.5, 48.75); (-20, 10.5, 48.75); + //(-20, 0.5, 51.25); (-12.5, 0.5, 51.25); (-12.5, 10.5, 51.25); (-20, 10.5, 51.25); + //to test calcVoxelizationThickness bug + core::Structure myTestStruct3 = myStructGenerator.CreateRectangularStructureCentered(2, 3, 6, 7); + StructTypePointer spMyStruct3 = boost::make_shared(myTestStruct3); + + //1) test BoostMask & BoostMaskAccessor constructor + CHECK_NO_THROW(rttb::masks::boost::BoostMask(geometricPtr, spMyStruct)); + rttb::masks::boost::BoostMask boostMask = rttb::masks::boost::BoostMask( + geometricPtr, spMyStruct); + + CHECK_NO_THROW(rttb::masks::boost::BoostMaskAccessor(spMyStruct, + spTestDoseAccessor->getGeometricInfo(), true)); + rttb::masks::boost::BoostMaskAccessor boostMaskAccessor(spMyStruct, + spTestDoseAccessor->getGeometricInfo(), true); + + //2) test getRelevantVoxelVector + CHECK_NO_THROW(boostMask.getRelevantVoxelVector()); + CHECK_NO_THROW(boostMaskAccessor.getRelevantVoxelVector()); + + //3) test getMaskAt + const VoxelGridIndex3D inMask1(2, 1, 2); //corner between two contours slice -> volumeFraction = 0.25 + const VoxelGridIndex3D inMask2(3, 4, 2); //inside between two contours slice ->volumeFraction = 1 + const VoxelGridIndex3D inMask3(4, 5, 2); //side between two contours slice -> volumeFraction = 0.5 + const VoxelGridIndex3D inMask4(2, 1, 1); //corner on the first contour slice -> volumeFraction = 0.25/2 = 0.125 + const VoxelGridIndex3D inMask5(2, 1, 3); //corner on the last contour slice -> volumeFraction = 0.25/2 = 0.125 + const VoxelGridIndex3D inMask6(3, 4, 1); //inside on the first contour slice ->volumeFraction = 1 /2 = 0.5 + const VoxelGridIndex3D outMask1(7, 5, 4); + const VoxelGridIndex3D outMask2(2, 1, 0); + const VoxelGridIndex3D outMask3(2, 1, 4); + VoxelGridID testId; + double errorConstantBoostMask = 1e-7; + + core::MaskVoxel tmpMV1(0), tmpMV2(0); + CHECK(boostMaskAccessor.getMaskAt(inMask1, tmpMV1)); + geometricPtr->convert(inMask1, testId); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_CLOSE(0.25, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor.getMaskAt(inMask2, tmpMV1)); + CHECK(geometricPtr->convert(inMask2, testId)); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(1, tmpMV1.getRelevantVolumeFraction()); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor.getMaskAt(inMask3, tmpMV1)); + CHECK(geometricPtr->convert(inMask3, testId)); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_CLOSE(0.5, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor.getMaskAt(inMask4, tmpMV1)); + CHECK(geometricPtr->convert(inMask4, testId)); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_CLOSE(0.125, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor.getMaskAt(inMask5, tmpMV1)); + CHECK(geometricPtr->convert(inMask5, testId)); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_CLOSE(0.125, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor.getMaskAt(inMask6, tmpMV1)); + CHECK(geometricPtr->convert(inMask6, testId)); + CHECK(boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_CLOSE(0.5, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(!boostMaskAccessor.getMaskAt(outMask1, tmpMV1)); + CHECK(geometricPtr->convert(outMask1, testId)); + CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + + CHECK(!boostMaskAccessor.getMaskAt(outMask2, tmpMV1)); + CHECK(geometricPtr->convert(outMask2, testId)); + CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + + CHECK(!boostMaskAccessor.getMaskAt(outMask3, tmpMV1)); + CHECK(geometricPtr->convert(outMask3, testId)); + CHECK(!boostMaskAccessor.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + + rttb::masks::boost::BoostMask boostMask2 = rttb::masks::boost::BoostMask( + geometricPtr, spMyStruct2); + CHECK_NO_THROW(boostMask2.getRelevantVoxelVector()); + rttb::masks::boost::BoostMaskAccessor boostMaskAccessor2(spMyStruct2, + spTestDoseAccessor->getGeometricInfo(), true); + CHECK_NO_THROW(boostMaskAccessor2.getRelevantVoxelVector()); + + CHECK(boostMaskAccessor2.getMaskAt(inMask1, tmpMV1)); + geometricPtr->convert(inMask1, testId); + CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + //corner, the first contour weight 0.25, the second contour weights 0.5 -> volumeFraction = 0.25*0.25 + 1.25*0.5 = 0.1875 + CHECK_CLOSE(0.1875, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor2.getMaskAt(inMask2, tmpMV1)); + CHECK(geometricPtr->convert(inMask2, testId)); + CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + //inside, the first contour weight 0.25, the second contour weights 0.5 -> ->volumeFraction = 1*0.25 + 1*0.5 = 0.75 + CHECK_EQUAL(0.75, tmpMV1.getRelevantVolumeFraction()); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor2.getMaskAt(inMask3, tmpMV1)); + CHECK(geometricPtr->convert(inMask3, testId)); + CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + //side the first contour weight 0.25, the second contour weights 0.5 -> ->volumeFraction = 0.5*0.25 + 0.5*0.5 = 0.75 + CHECK_CLOSE(0.375, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor2.getMaskAt(inMask4, tmpMV1)); + CHECK(geometricPtr->convert(inMask4, testId)); + CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + //corner on the first contour slice, weight 0.25 -> volumeFraction = 0.25*0.25 = 0.0625 + CHECK_CLOSE(0.0625, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(boostMaskAccessor2.getMaskAt(inMask6, tmpMV1)); + CHECK(geometricPtr->convert(inMask6, testId)); + CHECK(boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + //inside on the first contour slice, weight 0.25 ->volumeFraction = 1 * 0.25 = 0.25 + CHECK_CLOSE(0.25, tmpMV1.getRelevantVolumeFraction(), errorConstantBoostMask); + CHECK_EQUAL(testId, tmpMV1.getVoxelGridID()); + + CHECK(!boostMaskAccessor2.getMaskAt(outMask1, tmpMV1)); + CHECK(geometricPtr->convert(outMask1, testId)); + CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask + + CHECK(!boostMaskAccessor2.getMaskAt(outMask2, tmpMV1)); + CHECK(geometricPtr->convert(outMask2, testId)); + CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask + + CHECK(!boostMaskAccessor2.getMaskAt(outMask3, tmpMV1)); + CHECK(geometricPtr->convert(outMask3, testId)); + CHECK(!boostMaskAccessor2.getMaskAt(testId, tmpMV2)); + CHECK_EQUAL(tmpMV1, tmpMV2); + CHECK_EQUAL(0, tmpMV1.getRelevantVolumeFraction()); + //CHECK_EQUAL(testId,tmpMV1.getVoxelGridID()); -> return value will not be valid outside the mask + + //3) test calcVoxelizationThickness bug + rttb::masks::boost::BoostMask boostMask3 = rttb::masks::boost::BoostMask( + geometricPtr, spMyStruct3); + CHECK_NO_THROW(boostMask3.getRelevantVoxelVector()); + rttb::masks::boost::BoostMaskAccessor boostMaskAccessor3(spMyStruct3, + spTestDoseAccessor->getGeometricInfo(), true); + CHECK_NO_THROW(boostMaskAccessor3.getRelevantVoxelVector()); + + RETURN_AND_REPORT_TEST_SUCCESS; + } + }//testing +}//rttb + diff --git a/testing/masks/CMakeLists.txt b/testing/masks/CMakeLists.txt index f4801ac..4f7e84d 100644 --- a/testing/masks/CMakeLists.txt +++ b/testing/masks/CMakeLists.txt @@ -1,8 +1,20 @@ - -MESSAGE (STATUS "Process All Mask Tests...") - -#----------------------------------------------------------------------------- -# Include sub directories -#----------------------------------------------------------------------------- - -ADD_SUBDIRECTORY(boost) +#----------------------------------------------------------------------------- +# Setup the system information test. Write out some basic failsafe +# information in case the test doesn't run. +#----------------------------------------------------------------------------- + + +SET(Boost_Mask_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbBoostMaskTests) + +SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) + + +#----------------------------------------------------------------------------- + +ADD_TEST(BoostMaskTest ${Boost_Mask_TESTS} BoostMaskTest) + +RTTB_CREATE_TEST_MODULE(BoostMask DEPENDS RTTBDicomIO RTTBMasks RTTBBoostMask PACKAGE_DEPENDS BoostBinaries Litmus DCMTK) + +IF (CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals") +ENDIF() \ No newline at end of file diff --git a/testing/masks/boost/CMakeLists.txt b/testing/masks/boost/CMakeLists.txt deleted file mode 100644 index d4ecd07..0000000 --- a/testing/masks/boost/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -#----------------------------------------------------------------------------- -# Setup the system information test. Write out some basic failsafe -# information in case the test doesn't run. -#----------------------------------------------------------------------------- - - -SET(Boost_Mask_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbBoostMaskTests) - -SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) - - -#----------------------------------------------------------------------------- - -ADD_TEST(BoostMaskTest ${Boost_Mask_TESTS} BoostMaskTest -) - -RTTB_CREATE_TEST_MODULE(rttbBoostMask DEPENDS RTTBDicomIO RTTBMasks RTTBBoostMask PACKAGE_DEPENDS BoostBinaries Litmus DCMTK) - -IF (CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals") -ENDIF() diff --git a/testing/masks/boost/files.cmake b/testing/masks/boost/files.cmake deleted file mode 100644 index d0fe3a1..0000000 --- a/testing/masks/boost/files.cmake +++ /dev/null @@ -1,13 +0,0 @@ -SET(CPP_FILES - ../../core/DummyStructure.cpp - ../../core/DummyDoseAccessor.cpp - ../../core/CreateTestStructure.cpp - BoostMaskTest.cpp - rttbBoostMaskTests.cpp -) - -SET(H_FILES - ../../core/DummyStructure.h - ../../core/CreateTestStructure.h - ../../core/DummyDoseAccessor.h -) diff --git a/testing/masks/files.cmake b/testing/masks/files.cmake new file mode 100644 index 0000000..faa8a36 --- /dev/null +++ b/testing/masks/files.cmake @@ -0,0 +1,13 @@ +SET(CPP_FILES + ../core/DummyStructure.cpp + ../core/DummyDoseAccessor.cpp + ../core/CreateTestStructure.cpp + BoostMaskTest.cpp + rttbBoostMaskTests.cpp +) + +SET(H_FILES + ../core/DummyStructure.h + ../core/CreateTestStructure.h + ../core/DummyDoseAccessor.h +) diff --git a/testing/masks/boost/rttbBoostMaskTests.cpp b/testing/masks/rttbBoostMaskTests.cpp similarity index 95% rename from testing/masks/boost/rttbBoostMaskTests.cpp rename to testing/masks/rttbBoostMaskTests.cpp index 4dfa247..a9bebe0 100644 --- a/testing/masks/boost/rttbBoostMaskTests.cpp +++ b/testing/masks/rttbBoostMaskTests.cpp @@ -1,63 +1,63 @@ -// ----------------------------------------------------------------------- -// RTToolbox - DKFZ radiotherapy quantitative evaluation library -// -// Copyright (c) German Cancer Research Center (DKFZ), -// Software development for Integrated Diagnostics and Therapy (SIDT). -// ALL RIGHTS RESERVED. -// See rttbCopyright.txt or -// http://www.dkfz.de/en/sidt/projects/rttb/copyright.html -// -// This software is distributed WITHOUT ANY WARRANTY; without even -// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -// PURPOSE. See the above copyright notices for more information. -// -//------------------------------------------------------------------------ -/*! -// @file -// @version $Revision$ (last changed revision) -// @date $Date$ (last change date) -// @author $Author$ (last changed by) -*/ - -// this file defines the rttbAlgorithmsTests for the test driver -// and all it expects is that you have a function called RegisterTests -#if defined(_MSC_VER) -#pragma warning ( disable : 4786 ) -#endif - - -#include "litMultiTestsMain.h" - -namespace rttb -{ - namespace testing - { - - void registerTests() - { - LIT_REGISTER_TEST(BoostMaskTest); - } - } -} - -int main(int argc, char* argv[]) -{ - int result = 0; - - rttb::testing::registerTests(); - - try - { - result = lit::multiTestsMain(argc, argv); - } - catch (const std::exception& /*e*/) - { - result = -1; - } - catch (...) - { - result = -1; - } - - return result; -} +// ----------------------------------------------------------------------- +// RTToolbox - DKFZ radiotherapy quantitative evaluation library +// +// Copyright (c) German Cancer Research Center (DKFZ), +// Software development for Integrated Diagnostics and Therapy (SIDT). +// ALL RIGHTS RESERVED. +// See rttbCopyright.txt or +// http://www.dkfz.de/en/sidt/projects/rttb/copyright.html +// +// This software is distributed WITHOUT ANY WARRANTY; without even +// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +// PURPOSE. See the above copyright notices for more information. +// +//------------------------------------------------------------------------ +/*! +// @file +// @version $Revision$ (last changed revision) +// @date $Date$ (last change date) +// @author $Author$ (last changed by) +*/ + +// this file defines the rttbAlgorithmsTests for the test driver +// and all it expects is that you have a function called RegisterTests +#if defined(_MSC_VER) +#pragma warning ( disable : 4786 ) +#endif + + +#include "litMultiTestsMain.h" + +namespace rttb +{ + namespace testing + { + + void registerTests() + { + LIT_REGISTER_TEST(BoostMaskTest); + } + } +} + +int main(int argc, char* argv[]) +{ + int result = 0; + + rttb::testing::registerTests(); + + try + { + result = lit::multiTestsMain(argc, argv); + } + catch (const std::exception& /*e*/) + { + result = -1; + } + catch (...) + { + result = -1; + } + + return result; +} diff --git a/testing/models/CMakeLists.txt b/testing/models/CMakeLists.txt index 53752d8..1694542 100644 --- a/testing/models/CMakeLists.txt +++ b/testing/models/CMakeLists.txt @@ -1,19 +1,19 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(MODELS_TESTS ${EXECUTABLE_OUTPUT_PATH}/rttbModelTests) SET(MODELS_HEADER_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbModelsHeaderTest) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(BioModelTest ${MODELS_TESTS} BioModelTest) ADD_TEST(BioModelScatterPlotTest ${MODELS_TESTS} BioModelScatterPlotTest) ADD_TEST(DvhBasedModelsTest ${MODELS_TESTS} DvhBasedModelsTest) ADD_TEST(LQModelAccessorTest ${MODELS_TESTS} LQModelAccessorTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") -RTTB_CREATE_TEST_MODULE(rttbModel DEPENDS RTTBModels RTTBDicomIO PACKAGE_DEPENDS Boost Litmus DCMTK RTTBData) +RTTB_CREATE_TEST_MODULE(Model DEPENDS RTTBModels RTTBDicomIO PACKAGE_DEPENDS Boost Litmus DCMTK RTTBData) diff --git a/testing/validation/CMakeLists.txt b/testing/validation/CMakeLists.txt index 52b3b1e..26a62f5 100644 --- a/testing/validation/CMakeLists.txt +++ b/testing/validation/CMakeLists.txt @@ -1,27 +1,27 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(CORE_TEST_VALIDATION ${EXECUTABLE_OUTPUT_PATH}/rttbValidationTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/Temporary) #----------------------------------------------------------------------------- ADD_TEST(VoxelizationDVHComparisonTest ${CORE_TEST_VALIDATION} VoxelizationDVHComparisonTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" "${TEST_DATA_ROOT}/DVH/XML/1.3.6.1.4.1.2452.6.2037938358.1234393433.864109958.30410275/OTBMask/" "${TEST_DATA_ROOT}/DVH/XML/1.3.6.1.4.1.2452.6.2037938358.1234393433.864109958.30410275/BoostMask_LEGACY/" "${RTTBTesting_BINARY_DIR}/validation/1.3.6.1.4.1.2452.6.2037938358.1234393433.864109958.30410275/BoostMask/") ADD_TEST(VoxelizationValidationTest ${CORE_TEST_VALIDATION} VoxelizationValidationTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncrease3D.dcm" "${TEST_DATA_ROOT}/Mask/1.3.6.1.4.1.2452.6.2037938358.1234393433.864109958.30410275/BoostMask/" "${TEST_DATA_ROOT}/Mask/1.3.6.1.4.1.2452.6.2037938358.1234393433.864109958.30410275/OTBMask/") -RTTB_CREATE_TEST_MODULE(rttbValidation DEPENDS RTTBCore RTTBBoostMask RTTBDicomIO RTTBITKIO RTTBOtherIO PACKAGE_DEPENDS Litmus ITK RTTBData) +RTTB_CREATE_TEST_MODULE(Validation DEPENDS RTTBCore RTTBBoostMask RTTBDicomIO RTTBITKIO RTTBOtherIO PACKAGE_DEPENDS Litmus ITK RTTBData) IF (CMAKE_COMPILER_IS_GNUCC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals") ENDIF()