From ff7943ee3abad16eac28eacb40fd0b12bfbcc5ca Mon Sep 17 00:00:00 2001 From: Andreas Naumann <andreas.naumann@tu-dresden.de> Date: Wed, 1 Dec 2010 15:22:29 +0000 Subject: [PATCH] added tester, look for testing later --- AMDiS/test/CMakeLists.txt | 1 + AMDiS/test/datacreation/CMakeLists.txt | 7 ++--- .../src/ProjectList.cpp | 13 --------- .../src/creator_base.cpp | 1 + AMDiS/test/demoimpl/src/Project.h | 2 -- AMDiS/test/demotest/CMakeLists.txt | 22 +++++++++++++++ AMDiS/test/demotest/init | 1 + AMDiS/test/demotest/macro | 1 + AMDiS/test/demotest/src/Comparer.cpp | 16 +++++++++++ AMDiS/test/demotest/src/tester_base.cpp | 27 +++++++++++++++++++ 10 files changed, 73 insertions(+), 18 deletions(-) rename AMDiS/test/{demoimpl => datacreation}/src/ProjectList.cpp (63%) rename AMDiS/test/{demoimpl => datacreation}/src/creator_base.cpp (91%) create mode 100644 AMDiS/test/demotest/CMakeLists.txt create mode 120000 AMDiS/test/demotest/init create mode 120000 AMDiS/test/demotest/macro create mode 100644 AMDiS/test/demotest/src/Comparer.cpp create mode 100644 AMDiS/test/demotest/src/tester_base.cpp diff --git a/AMDiS/test/CMakeLists.txt b/AMDiS/test/CMakeLists.txt index 5f6979a3..8a78070a 100644 --- a/AMDiS/test/CMakeLists.txt +++ b/AMDiS/test/CMakeLists.txt @@ -1,3 +1,4 @@ project(tests) add_subdirectory(demoimpl) +add_subdirectory(demotest) add_subdirectory(datacreation EXCLUDE_FROM_ALL) diff --git a/AMDiS/test/datacreation/CMakeLists.txt b/AMDiS/test/datacreation/CMakeLists.txt index 7cd35571..fd31128d 100644 --- a/AMDiS/test/datacreation/CMakeLists.txt +++ b/AMDiS/test/datacreation/CMakeLists.txt @@ -1,17 +1,18 @@ project(testdatacreation) include_directories(${AMDiS_SOURCE_DIR}) - file(GLOB PROJECTFILES src/*Project.cpp) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src) + file(GLOB PROJECTFILES ${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src/*Project.cpp) set(CREATELINE "") foreach(projectfile ${PROJECTFILES}) #create creatorname get_filename_component(CppName ${projectfile} NAME_WE) string(REPLACE "Project" "" creatorsuffix ${CppName}) - set(PROJECTINCLUDE "${CppName}.h") + set(PROJECTINCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src/${CppName}.h") set(CURRENTPROJECTTYPE "${creatorsuffix}demo") string(TOLOWER "${creatorsuffix}" creatorsuffix_lower) set(BASENAME "${creatorsuffix_lower}") configure_file(src/creator_base.cpp src/creator${creatorsuffix}.cpp @ONLY) - add_executable(creator${creatorsuffix} src/creator${creatorsuffix}.cpp src/ProjectList.cpp ${projectfile}) + add_executable(creator${creatorsuffix} src/creator${creatorsuffix}.cpp src/ProjectList.cpp) target_link_libraries(creator${creatorsuffix} ${AMDiS_LIBS} demoimpl) file(GLOB initfiles RELATIVE ${CMAKE_CURRENT_BINARY_DIR} init/${creatorsuffix_lower}*.dat*) foreach(initfile ${initfiles}) diff --git a/AMDiS/test/demoimpl/src/ProjectList.cpp b/AMDiS/test/datacreation/src/ProjectList.cpp similarity index 63% rename from AMDiS/test/demoimpl/src/ProjectList.cpp rename to AMDiS/test/datacreation/src/ProjectList.cpp index 3f06026b..54714092 100644 --- a/AMDiS/test/demoimpl/src/ProjectList.cpp +++ b/AMDiS/test/datacreation/src/ProjectList.cpp @@ -20,16 +20,3 @@ void write(SolutionInformation& info, std::string filename) { assert(false); } -bool compare(SolutionInformation& info, std::string filename) { - if(info.sysVec != NULL) { - assert(false); - }else if(info.dofVec != NULL) { - DOFVector< double > fileVec(info.dofVec->getFeSpace(), "fileVec"); - Mesh fileMesh("",2); - fileMesh = *(info.dofVec->getFeSpace()->getMesh()); - ArhReader::read(filename, &fileMesh, &fileVec); - }else - assert(false); - return false; -} - diff --git a/AMDiS/test/demoimpl/src/creator_base.cpp b/AMDiS/test/datacreation/src/creator_base.cpp similarity index 91% rename from AMDiS/test/demoimpl/src/creator_base.cpp rename to AMDiS/test/datacreation/src/creator_base.cpp index 9b9ab64a..6a3809cc 100644 --- a/AMDiS/test/demoimpl/src/creator_base.cpp +++ b/AMDiS/test/datacreation/src/creator_base.cpp @@ -3,6 +3,7 @@ #include "@PROJECTINCLUDE@" typedef @CURRENTPROJECTTYPE@ ProjectType; std::string basename="@BASENAME@"; +void write(SolutionInformation& info, std::string filename); int main(int argc, char** argv) { if(argc < 2) { std::cout<<" need initfile "<<basename<<"*\n"; diff --git a/AMDiS/test/demoimpl/src/Project.h b/AMDiS/test/demoimpl/src/Project.h index c3a12d0e..fcfe6126 100644 --- a/AMDiS/test/demoimpl/src/Project.h +++ b/AMDiS/test/demoimpl/src/Project.h @@ -20,8 +20,6 @@ struct SolutionInformation { }; -void write(SolutionInformation&, std::string filename); -bool compare(SolutionInformation&, std::string filename); class Project { public: virtual void create(std::string& ) = 0; diff --git a/AMDiS/test/demotest/CMakeLists.txt b/AMDiS/test/demotest/CMakeLists.txt new file mode 100644 index 00000000..7bc4fe65 --- /dev/null +++ b/AMDiS/test/demotest/CMakeLists.txt @@ -0,0 +1,22 @@ +project(demotest) + include_directories(${AMDiS_SOURCE_DIR}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src) + file(GLOB PROJECTFILES ${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src/*Project.cpp) + foreach(projectfile ${PROJECTFILES}) + #create creatorname + get_filename_component(CppName ${projectfile} NAME_WE) + string(REPLACE "Project" "" creatorsuffix ${CppName}) + set(PROJECTINCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../demoimpl/src/${CppName}.h") + set(CURRENTPROJECTTYPE "${creatorsuffix}demo") + string(TOLOWER "${creatorsuffix}" creatorsuffix_lower) + set(BASENAME "${creatorsuffix_lower}") + configure_file(src/tester_base.cpp src/tester${creatorsuffix}.cpp @ONLY) + add_executable(tester${creatorsuffix} src/tester${creatorsuffix}.cpp src/Comparer.cpp) + target_link_libraries(tester${creatorsuffix} ${AMDiS_LIBS} demoimpl) + file(GLOB initfiles RELATIVE ${CMAKE_CURRENT_BINARY_DIR} init/${creatorsuffix_lower}*.dat*) + foreach(initfile ${initfiles}) + get_filename_component(initfile_ext ${initfile} EXT) + string(REPLACE ".dat." "" initfile_ext "${initfile_ext}") + set(curoutputdatafile "../testdata/${creatorsuffix_lower}_${initfile_ext}.arh") + endforeach(initfile) + endforeach(projectfile) diff --git a/AMDiS/test/demotest/init b/AMDiS/test/demotest/init new file mode 120000 index 00000000..13f09ccb --- /dev/null +++ b/AMDiS/test/demotest/init @@ -0,0 +1 @@ +../testdata/init \ No newline at end of file diff --git a/AMDiS/test/demotest/macro b/AMDiS/test/demotest/macro new file mode 120000 index 00000000..3ee9fb64 --- /dev/null +++ b/AMDiS/test/demotest/macro @@ -0,0 +1 @@ +../testdata/macro \ No newline at end of file diff --git a/AMDiS/test/demotest/src/Comparer.cpp b/AMDiS/test/demotest/src/Comparer.cpp new file mode 100644 index 00000000..84983f83 --- /dev/null +++ b/AMDiS/test/demotest/src/Comparer.cpp @@ -0,0 +1,16 @@ +#include "Project.h" +#include "io/ArhReader.h" +bool compare(SolutionInformation& info, std::string filename) +{ + if(info.sysVec != NULL) { + assert(false); + }else if(info.dofVec != NULL) { + DOFVector< double > fileVec(info.dofVec->getFeSpace(), "fileVec"); + Mesh fileMesh("",2); + fileMesh = *(info.dofVec->getFeSpace()->getMesh()); + ArhReader::read(filename, &fileMesh, &fileVec); + DOFVector< double > nsolvec(*(info.dofVec)); + }else + assert(false); + return false; +} diff --git a/AMDiS/test/demotest/src/tester_base.cpp b/AMDiS/test/demotest/src/tester_base.cpp new file mode 100644 index 00000000..f436ba7d --- /dev/null +++ b/AMDiS/test/demotest/src/tester_base.cpp @@ -0,0 +1,27 @@ +#include "Parameters.h" +#include "Project.h" +#include "@PROJECTINCLUDE@" +bool compare(SolutionInformation& info, std::string filename); +typedef @CURRENTPROJECTTYPE@ ProjectType; +std::string basename="@BASENAME@"; +int main(int argc, char** argv) { + if(argc < 2) { + std::cout<<" need initfile "<<basename<<"*\n"; + return 1; + } + if(argc < 3) { + std::cout<<" also need a destination file "<<basename<<"*\n"; + return 2; + } + std::string initfile(argv[1]); + std::string destinationfile(argv[2]); + AMDiS::Parameters::init(false, initfile); + ProjectType project; + ProjectInfo info(&project, initfile, destinationfile); + info.create(); + SolutionInformation solinfo; + info.solve(solinfo); + if(compare(solinfo, info.getFilename())) + return 0; + return 1; +} -- GitLab