删除impl

This commit is contained in:
2026-08-27 13:32:46 +08:00
parent d4dba2c340
commit ecf24cbe50
60 changed files with 1507 additions and 1216 deletions
+13 -13
View File
@@ -9,7 +9,7 @@ using namespace aethera;
using namespace aethera::render_2d;
template <typename Object>
std::unique_ptr<Object> build_axis() {
auto result = typename Object::Builder{}.build();
auto result = typename Object::template Builder<Object>{}.build();
if (!result) std::terminate();
return std::move(result).value();
}
@@ -34,7 +34,7 @@ TEST(event_routing_rule, keeps_layered_targets_before_nearest_scored_targets) {
EXPECT_EQ(targets, (std::vector<int>{1, 3, 4, 2}));
}
TEST(axis_dispatch, numeric_axis_public_shell_reads_final_private_state) {
using Object = Impl<Numeric_Axis>;
using Object = Numeric_Axis;
auto axis = build_axis<Object>();
axis->set<&Abs_Axis::Prop::position>(Point_F{10.0, 0.0});
axis->set<&Abs_Axis::Prop::pixel_length>(200.0);
@@ -53,7 +53,7 @@ TEST(axis_dispatch, numeric_axis_public_shell_reads_final_private_state) {
EXPECT_DOUBLE_EQ(axis->pixel_to_coordinate(-40.0), 5.0);
}
TEST(axis_dispatch, point_conversion_uses_current_orientation) {
using Object = Impl<Numeric_Axis>;
using Object = Numeric_Axis;
auto axis = build_axis<Object>();
axis->set<&Abs_Axis::Prop::position>(Point_F{0.0, 20.0});
axis->set<&Abs_Axis::Prop::pixel_length>(100.0);
@@ -80,8 +80,8 @@ TEST(render_cache, copy_owns_independent_pixels) {
EXPECT_TRUE(contains_color);
}
TEST(axis_render, scene_prepares_and_paints_uncached_axis_into_frame) {
using Object = Impl<Numeric_Axis>;
using Scene_Object = Impl<Render_Scene_2D>;
using Object = Numeric_Axis;
using Scene_Object = Render_Scene_2D;
initialize_runtime({.workers = 2});
auto axis = build_axis<Object>();
auto scene = build_axis<Scene_Object>();
@@ -114,8 +114,8 @@ TEST(axis_render, scene_prepares_and_paints_uncached_axis_into_frame) {
EXPECT_TRUE(contains_color);
}
TEST(axis_event, numeric_axis_wheel_zoom_and_drag_update_authoritative_range) {
using Object = Impl<Numeric_Axis>;
using Scene_Object = Impl<Render_Scene_2D>;
using Object = Numeric_Axis;
using Scene_Object = Render_Scene_2D;
initialize_runtime({.workers = 2});
auto axis = build_axis<Object>();
auto scene = build_axis<Scene_Object>();
@@ -145,8 +145,8 @@ TEST(axis_event, numeric_axis_wheel_zoom_and_drag_update_authoritative_range) {
EXPECT_EQ(axis->coordinate_range(), (Axis_Range{-0.4, 8.6}));
}
TEST(axis_event, scene_routes_pointer_interaction_to_the_nearest_axis_segment) {
using Axis_Object = Impl<Numeric_Axis>;
using Scene_Object = Impl<Render_Scene_2D>;
using Axis_Object = Numeric_Axis;
using Scene_Object = Render_Scene_2D;
initialize_runtime({.workers = 2});
auto horizontal = build_axis<Axis_Object>();
auto vertical = build_axis<Axis_Object>();
@@ -183,14 +183,14 @@ TEST(axis_event, scene_routes_pointer_interaction_to_the_nearest_axis_segment) {
EXPECT_DOUBLE_EQ(vertical->coordinate_range().size(), 9.0);
}
TEST(axis_state, invalid_numeric_range_is_rejected_without_poisoning_pending_state) {
using Object = Impl<Numeric_Axis>;
using Object = Numeric_Axis;
auto axis = build_axis<Object>();
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}));
}
TEST(axis_label, frequency_axis_selects_engineering_unit) {
using Object = Impl<Frequency_Axis>;
using Object = Frequency_Axis;
auto axis = build_axis<Object>();
axis->advance();
EXPECT_EQ(axis->tick_label(250.0), "250 Hz");
@@ -198,7 +198,7 @@ TEST(axis_label, frequency_axis_selects_engineering_unit) {
EXPECT_EQ(axis->tick_label(2'500'000.0), "2.5 MHz");
}
TEST(axis_time, sample_state_drives_range_lookup_and_label_without_snapshot) {
using Object = Impl<Time_Axis>;
using Object = Time_Axis;
auto axis = build_axis<Object>();
EXPECT_EQ(axis->append_time({3'723'004}), 0);
EXPECT_EQ(axis->time_point_count(), 0u);
@@ -214,7 +214,7 @@ TEST(axis_time, sample_state_drives_range_lookup_and_label_without_snapshot) {
EXPECT_FALSE(axis->tick_to_time(99).valid());
}
TEST(axis_time, appending_each_time_sample_invalidates_tick_preparation) {
using Object = Impl<Time_Axis>;
using Object = Time_Axis;
auto axis = build_axis<Object>();
axis->advance();
axis->template take_dirty<Prepare_Data_Tag>();