chore: initial project scaffold from architecture design

- Add CLAUDE.md with project overview, tech stack, build commands,
  architecture description, coding standards, and sample images section
- Add full directory structure: src/, docs/, tests/, import/
- Add CMakeLists.txt with C++20, OpenCV/LibRaw/Qt6 dependencies,
  converter_core static lib, optional GUI, and GTest tests
- Add architecture documentation: ARCHITECTURE.md, PIPELINE.md, MODULES.md
- Add source skeletons for all pipeline stages:
  RawLoader, Preprocessor, NegativeDetector, Inverter, ColorCorrector,
  CropProcessor, OutputWriter, Pipeline, MainWindow, CliRunner, main.cpp
- Add initial test stubs for pipeline and rawloader
- Add sample ARW files in import/ for integration testing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Christoph K.
2026-03-14 09:28:32 +01:00
commit 65b411b23d
34 changed files with 3191 additions and 0 deletions

47
tests/CMakeLists.txt Normal file
View File

@@ -0,0 +1,47 @@
find_package(GTest REQUIRED)
# ──────────────────────────────────────────────
# Pipeline unit tests
# ──────────────────────────────────────────────
add_executable(test_pipeline
test_pipeline.cpp
)
target_link_libraries(test_pipeline PRIVATE
converter_core
GTest::gtest
GTest::gtest_main
)
target_include_directories(test_pipeline PRIVATE
${CMAKE_SOURCE_DIR}/src
)
add_test(NAME PipelineTests COMMAND test_pipeline)
# ──────────────────────────────────────────────
# RawLoader integration tests
# ──────────────────────────────────────────────
add_executable(test_rawloader
test_rawloader.cpp
)
target_link_libraries(test_rawloader PRIVATE
converter_core
GTest::gtest
GTest::gtest_main
)
target_include_directories(test_rawloader PRIVATE
${CMAKE_SOURCE_DIR}/src
)
add_test(NAME RawLoaderTests COMMAND test_rawloader)
# Make test data path available
target_compile_definitions(test_pipeline PRIVATE
TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/import"
)
target_compile_definitions(test_rawloader PRIVATE
TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/import"
)