Extract image import route planning

This commit is contained in:
2026-06-03 11:41:28 +02:00
parent 888e94a77c
commit ef50f4a361
8 changed files with 226 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
#include "app_core/document_import.h"
#include "test_harness.h"
namespace {
void import_plan_detects_wide_equirectangular_images(pp::tests::Harness& harness)
{
const auto plan = pp::app::plan_document_image_import(4096, 2048);
PP_EXPECT(harness, plan);
if (plan) {
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::import_equirectangular);
PP_EXPECT(harness, plan.value().imports_equirectangular);
PP_EXPECT(harness, !plan.value().enters_transform_mode);
}
}
void import_plan_detects_legacy_vertical_cube_strips(pp::tests::Harness& harness)
{
const auto plan = pp::app::plan_document_image_import(512, 3072);
PP_EXPECT(harness, plan);
if (plan) {
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::import_equirectangular);
PP_EXPECT(harness, plan.value().imports_equirectangular);
PP_EXPECT(harness, !plan.value().enters_transform_mode);
}
}
void import_plan_places_regular_images_as_transform_sources(pp::tests::Harness& harness)
{
const auto plan = pp::app::plan_document_image_import(1024, 1024);
PP_EXPECT(harness, plan);
if (plan) {
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::place_transform);
PP_EXPECT(harness, !plan.value().imports_equirectangular);
PP_EXPECT(harness, plan.value().enters_transform_mode);
}
}
void import_plan_rejects_invalid_dimensions(pp::tests::Harness& harness)
{
PP_EXPECT(harness, !pp::app::plan_document_image_import(0, 1024));
PP_EXPECT(harness, !pp::app::plan_document_image_import(1024, 0));
PP_EXPECT(harness, !pp::app::plan_document_image_import(-1, 1024));
}
}
int main()
{
pp::tests::Harness harness;
harness.run("import plan detects wide equirectangular images", import_plan_detects_wide_equirectangular_images);
harness.run("import plan detects legacy vertical cube strips", import_plan_detects_legacy_vertical_cube_strips);
harness.run("import plan places regular images as transform sources", import_plan_places_regular_images_as_transform_sources);
harness.run("import plan rejects invalid dimensions", import_plan_rejects_invalid_dimensions);
return harness.finish();
}