#include "zeroerr/assert.h" #include "zeroerr/unittest.h" #include "editing/EditingCommandTypes.h" #include "editing/EditingAuthority.h" #include "editing/EditingGraph.h" #include "editing/EditingIds.h" #include "editing/EditingProperty.h" #include "editing/EditingProtocol.h" #include "editing/EditingResult.h" #include "editing/EditingSelection.h" #include "editing/EditingTargetOperations.h" #include "editing/EditingTaskService.h" #include "editing/EditingValue.h" #include "editing/EditingVolume.h" #include "editing/EditableTarget.h" #include "definitions_editing/DefinitionTarget.h" #include "definitions_editor/EditorDefinitionTarget.h" #include "editor/EditorAuthority.h" #include "avatar_editor/EditorAvatarTarget.h" #include "biome_editor/EditorBiomeTarget.h" #include "camera_editor/EditorCameraTarget.h" #include "animation_editor/EditorAnimationClip.h" #include "editor/EditorCommandTypes.h" #include "material_editor/EditorGraph.h" #include "fluids_editor/EditorFluidTarget.h" #include "hd2d_editor/EditorHd2dTarget.h" #include "housegen_editor/EditorHouseGenTarget.h" #include "input_editor/EditorInputMapTarget.h" #include "lighting_editor/EditorLightingTarget.h" #include "editor/EditorIds.h" #include "map_editor/EditorMapDocument.h" #include "material_editor/EditorMaterialTarget.h" #include "particles_editor/EditorParticleGraph.h" #include "editor/EditorProperty.h" #include "editor/EditorProtocol.h" #include "physics_editor/EditorPhysicsAsset.h" #include "physics_editor/EditorPhysicsTarget.h" #include "editor/EditorResult.h" #include "editor/EditorSelection.h" #include "scene_editor/EditorSceneTarget.h" #include "fluids_editor/EditorSurfaceFluidTarget.h" #include "editor/EditorTarget.h" #include "editor/EditorTaskService.h" #include "ui_editor/EditorUiDocumentTarget.h" #include "editor/EditorValue.h" #include "virtualgeometry_editor/EditorVirtualGeometryTarget.h" #include "editor/EditorVolumeTarget.h" #include "voxel_editor/EditorVoxelPaletteTarget.h" #include "physics_editing/PhysicsColliderAsset.h" #include "physics_editing/PhysicsTarget.h" #include "map_editing/MapDocument.h" #include "material_editing/MaterialGraph.h" #include "material_editing/MaterialTarget.h" #include "particles_editing/ParticleGraph.h" #include "procgen_editing/TextureRecipeTarget.h" #include "procgen_editor/EditorTextureRecipeTarget.h" #include "animation_editing/AnimationClip.h" #include "avatar_editing/AvatarTarget.h" #include "biome_editing/BiomeTarget.h" #include "camera_editing/CameraTarget.h" #include "building_editing/BuildingTarget.h" #include "crowd_editing/CrowdDocument.h" #include "localization_editing/LocalizationDocument.h" #include "social_editing/SocialDocument.h" #include "building_editor/EditorBuildingTarget.h" #include "crowd_editor/EditorCrowdDocument.h" #include "localization_editor/EditorLocalization.h" #include "social_editor/EditorSocialDocument.h" #include "scene_editing/SceneTarget.h" #include "sceneloader_editing/SceneImportTarget.h" #include "sceneloader_editor/EditorSceneImportTarget.h" #include "ui_editing/UiDocument.h" #include "input_editing/InputMapTarget.h" #include "hd2d_editing/Hd2dTarget.h" #include "housegen_editing/HouseGenTarget.h" #include "fluids_editing/FluidTarget.h" #include "fluids_editing/SurfaceFluidTarget.h" #include "lighting_editing/LightingTarget.h" #include "virtualgeometry_editing/VirtualGeometryTarget.h" #include "voxel_editing/VoxelPaletteTarget.h" #include "voxel_editing/VoxelWorldTarget.h" #include "network_editing/NetworkTelemetry.h" #include "profiler_editing/ProfilerModel.h" #include "queue_editing/QueueInspector.h" #include "graphics_editing/OffscreenPreview.h" #include "domain_gizmo_editing/DomainGizmoPreview.h" #include "network_editor/EditorNetworkTelemetry.h" #include "profiler_editor/EditorProfiler.h" #include "queue_editor/EditorQueueInspector.h" #include "graphics_editor/EditorOffscreenPreview.h" #include "domain_gizmo_editor/EditorGizmoPreview.h" #include #include static_assert(!std::is_convertible_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert( std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert( std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(!std::is_copy_constructible_v>); static_assert(!std::is_copy_constructible_v>); TEST_CASE("editing.contracts.ids_values_and_editor_compatibility") { using namespace eve::editing; const CommandId command("scene.object.create"); CHECK_EQ(command.value(), std::string("scene.object.create")); CHECK_EQ(eve::editor::CommandId("scene.object.create"), command); Value::Object root; root["name"] = "Station"; root["position"] = Value::Array{1.0, 2.0, 3.0}; const Value value(std::move(root)); CHECK_EQ(static_cast(value.type()), static_cast(Value::Type::Object)); CHECK(value.isWithinLimits(4, 16, 128)); CHECK(!value.isWithinLimits(1, 16, 128)); } TEST_CASE("editing.contracts.property_path_is_textual") { using namespace eve::editing; const PropertyPath left("layout.size"); const PropertyPath same("layout.size"); const PropertyPath right("layout.position"); CHECK(left == same); CHECK(left != right); CHECK_EQ(left.value(), std::string("layout.size")); } TEST_CASE("editing.contracts.structured_result") { using namespace eve::editing; const auto accepted = eve::editing::applied(Value("ready")); CHECK(accepted.ok()); CHECK_EQ(*accepted.value().getIf(), std::string("ready")); const auto rejected = eve::editing::failed(Status::Rejected, RuleId("authoring.invalid"), "invalid input"); CHECK(!rejected.ok()); CHECK_EQ(rejected.diagnostics().size(), size_t{1}); CHECK_EQ(eve::editing::diagnosticRule(rejected.diagnostics().front()).value(), std::string("authoring.invalid")); rejected.ignore(); }