Skip to content

Commit 3d1f277

Browse files
committed
Migrate F3OF DT3 test from demos to regression tests
- Migrate F3OF DT3 decay test from demos/f3of to tests/regression/f3of - Add multi-column comparison support to compare_template.py for flap fore/aft pitch plots - Fix version detection in plots to show correct HydroChrono and Chrono versions - Standardize regression test comparison patterns for future tests - Update CMakeLists.txt with proper environment variables for version detection
1 parent baf0b26 commit 3d1f277

8 files changed

Lines changed: 19091 additions & 30 deletions

File tree

tests/regression/CMakeLists.txt

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,90 @@ if(TARGET sphere_decay_test)
7575
LABELS "regression;sphere;decay;reference;core"
7676
FIXTURES_REQUIRED sphere_decay_regression_file
7777
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/regression/sphere
78-
ENVIRONMENT "PATH=${Python3_ROOT_DIR};$ENV{PATH}"
78+
ENVIRONMENT "PATH=${Python3_ROOT_DIR};$ENV{PATH};HYDROCHRONO_BUILD_DIR=${CMAKE_BINARY_DIR}"
79+
)
80+
endif()
81+
82+
# F3OF DT3 Regression Test
83+
# ========================
84+
85+
# Create executable in model-based directory
86+
add_executable(f3of_dt3_test)
87+
88+
set(F3OF_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/f3of)
89+
set(F3OF_RELEASE_DIR ${CMAKE_BINARY_DIR}/tests/regression/Release/f3of)
90+
set(F3OF_RESULTS_DIR ${F3OF_RELEASE_DIR}/results)
91+
92+
# Use model-based source and let simulation create results automatically
93+
set_target_properties(f3of_dt3_test
94+
PROPERTIES
95+
RUNTIME_OUTPUT_DIRECTORY ${F3OF_RELEASE_DIR}
96+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${F3OF_RELEASE_DIR}
97+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${F3OF_RELEASE_DIR}
98+
)
99+
100+
target_sources(
101+
f3of_dt3_test
102+
PRIVATE
103+
${F3OF_SRC_DIR}/f3of_dt3_test.cpp
104+
)
105+
106+
if(HYDROCHRONO_ENABLE_IRRLICHT)
107+
target_compile_definitions(f3of_dt3_test
108+
PRIVATE
109+
HYDROCHRONO_HAVE_IRRLICHT=1
110+
"CHRONO_DATA_DIR=\"${CHRONO_DATA_DIR}\""
111+
)
112+
endif()
113+
114+
target_include_directories(
115+
f3of_dt3_test
116+
PRIVATE
117+
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src
118+
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/gui
119+
)
120+
121+
target_link_libraries(
122+
f3of_dt3_test
123+
PRIVATE
124+
HydroChrono
125+
HydroChronoGUI
126+
)
127+
128+
# Register as CTest test
129+
if(TARGET f3of_dt3_test)
130+
# Copy test data to the output directory
131+
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data DESTINATION ${CMAKE_BINARY_DIR}/tests/regression/Release)
132+
133+
add_test(
134+
NAME f3of_dt3_regression
135+
COMMAND ${F3OF_RELEASE_DIR}/f3of_dt3_test.exe ${HYDROCHRONO_DATA_DIR} --nogui
136+
)
137+
138+
set_tests_properties(
139+
f3of_dt3_regression
140+
PROPERTIES
141+
LABELS "regression;f3of;dt3;decay;core"
142+
FIXTURES_SETUP f3of_dt3_regression_file
143+
WORKING_DIRECTORY ${F3OF_RELEASE_DIR}
144+
ENVIRONMENT "${TEST_ENVIRONMENT}"
145+
)
146+
147+
# Reference comparison test - use the new centralized reference data location
148+
set(FILE_RST ${F3OF_RESULTS_DIR}/f3of_dt3.txt)
149+
set(FILE_REF ${CMAKE_SOURCE_DIR}/tests/regression/reference_data/f3of/dt3/f3of_dt3_hc_data.txt)
150+
151+
add_test(
152+
NAME f3of_dt3_regression_ref
153+
COMMAND python compare.py ${FILE_REF} ${FILE_RST}
154+
)
155+
156+
set_tests_properties(
157+
f3of_dt3_regression_ref
158+
PROPERTIES
159+
LABELS "regression;f3of;dt3;decay;reference;core"
160+
FIXTURES_REQUIRED f3of_dt3_regression_file
161+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/regression/f3of
162+
ENVIRONMENT "PATH=${Python3_ROOT_DIR};$ENV{PATH};HYDROCHRONO_BUILD_DIR=${CMAKE_BINARY_DIR}"
79163
)
80164
endif()

0 commit comments

Comments
 (0)