修复大错误移动到prop

This commit is contained in:
2026-08-20 23:04:59 +08:00
parent e67161c90d
commit 81204fc188
51 changed files with 685 additions and 403 deletions
+14 -14
View File
@@ -15,9 +15,9 @@ std::unique_ptr<Object> build_axis() {
TEST(axis_dispatch, numeric_axis_public_shell_reads_final_private_state) {
using Object = Impl<Numeric_Axis>;
auto axis = build_axis<Object>();
axis->update_state<&Abs_Axis::State::position>(Point_F{10.0, 0.0});
axis->update_state<&Abs_Axis::State::pixel_length>(200.0);
axis->update_state<&Numeric_Axis::State::coordinate_range>(Axis_Range{0.0, 20.0});
axis->set<&Abs_Axis::Prop::position>(Point_F{10.0, 0.0});
axis->set<&Abs_Axis::Prop::pixel_length>(200.0);
axis->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 20.0});
axis->advance();
EXPECT_EQ(axis->coordinate_range(), (Axis_Range{0.0, 20.0}));
EXPECT_DOUBLE_EQ(axis->coordinate_to_pixel(5.0), 60.0);
@@ -30,10 +30,10 @@ TEST(axis_dispatch, numeric_axis_public_shell_reads_final_private_state) {
TEST(axis_dispatch, point_conversion_uses_current_orientation) {
using Object = Impl<Numeric_Axis>;
auto axis = build_axis<Object>();
axis->update_state<&Abs_Axis::State::position>(Point_F{0.0, 20.0});
axis->update_state<&Abs_Axis::State::pixel_length>(100.0);
axis->update_state<&Abs_Axis::State::orientation>(Axis_Orientation::vertical);
axis->update_state<&Numeric_Axis::State::coordinate_range>(Axis_Range{0.0, 10.0});
axis->set<&Abs_Axis::Prop::position>(Point_F{0.0, 20.0});
axis->set<&Abs_Axis::Prop::pixel_length>(100.0);
axis->set<&Abs_Axis::Prop::orientation>(Axis_Orientation::vertical);
axis->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 10.0});
axis->advance();
EXPECT_DOUBLE_EQ(axis->point_to_coordinate({90.0, 70.0}), 5.0);
}
@@ -60,9 +60,9 @@ TEST(axis_render, scene_prepares_and_paints_axis_cache) {
initialize_runtime(2);
auto axis = build_axis<Object>();
auto scene = build_axis<Scene_Object>();
axis->update_state<&Abs_Axis::State::position>(Point_F{8.0, 8.0});
axis->update_state<&Abs_Axis::State::canvas_size>(Size{160, 64});
axis->update_state<&Abs_Axis::State::pixel_length>(120.0);
axis->set<&Abs_Axis::Prop::position>(Point_F{8.0, 8.0});
axis->set<&Abs_Axis::Prop::canvas_size>(Size{160, 64});
axis->set<&Abs_Axis::Prop::pixel_length>(120.0);
ASSERT_TRUE((scene->edit_dependency_graph<Prepare_Data_Tag, Paint_Tag>([&](auto& prepare, auto& paint) {
prepare.add(axis.get());
paint.add(axis.get());
@@ -80,9 +80,9 @@ TEST(axis_render, scene_prepares_and_paints_axis_cache) {
TEST(axis_event, numeric_axis_wheel_zoom_and_drag_update_authoritative_range) {
using Object = Impl<Numeric_Axis>;
auto axis = build_axis<Object>();
axis->update_state<&Abs_Axis::State::position>(Point_F{0.0, 0.0});
axis->update_state<&Abs_Axis::State::pixel_length>(100.0);
axis->update_state<&Numeric_Axis::State::coordinate_range>(Axis_Range{0.0, 10.0});
axis->set<&Abs_Axis::Prop::position>(Point_F{0.0, 0.0});
axis->set<&Abs_Axis::Prop::pixel_length>(100.0);
axis->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 10.0});
axis->advance();
Wheel_Event wheel;
wheel.position = {50.0, 0.0};
@@ -105,7 +105,7 @@ TEST(axis_event, numeric_axis_wheel_zoom_and_drag_update_authoritative_range) {
TEST(axis_state, invalid_numeric_range_is_rejected_without_poisoning_pending_state) {
using Object = Impl<Numeric_Axis>;
auto axis = build_axis<Object>();
EXPECT_THROW((axis->update_state<&Numeric_Axis::State::coordinate_range>(Axis_Range{1.0, 1.0})), std::invalid_argument);
EXPECT_THROW((axis->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{1.0, 1.0})), std::invalid_argument);
axis->advance();
EXPECT_EQ(axis->coordinate_range(), (Axis_Range{0.0, 20.0}));
}