This commit is contained in:
2026-08-24 09:37:04 +08:00
parent 1d3847d454
commit 4f21169ade
42 changed files with 1371 additions and 833 deletions
+11 -5
View File
@@ -49,9 +49,11 @@ TEST(spectrum_data, publishes_samples_and_interpolates_power) {
EXPECT_EQ(missing.error(), Spectrum::Power_At_Result::no_samples);
spectrum->set<&Spectrum::Prop::frequency_range>(Axis_Range{0.0, 100.0});
const double samples[]{-100.0, -50.0, 0.0};
spectrum->update_samples(samples);
spectrum->pending_buffer<Spectrum_Frame_Tag>() =
Spectrum_Frame{std::vector<Spectrum_Power>(std::begin(samples), std::end(samples))};
spectrum->mark_dirty<Prepare_Data_Tag>();
spectrum->advance();
EXPECT_EQ(spectrum->sample_count(), 3u);
EXPECT_EQ(spectrum->current_buffer<Spectrum_Frame_Tag>().samples.size(), 3u);
const auto value = spectrum->power_at(25.0);
ASSERT_TRUE(value.has_value());
EXPECT_DOUBLE_EQ(*value, -75.0);
@@ -111,7 +113,9 @@ TEST(render_scene_2d, composites_axes_and_spectrum_into_final_frame) {
spectrum->set<&Spectrum::Prop::sweep_region_visible>(true);
spectrum->set<&Spectrum::Prop::max_hold_visible>(true);
const double samples[]{-90.0, -65.0, -20.0, -45.0, -75.0};
spectrum->update_samples(samples);
spectrum->pending_buffer<Spectrum_Frame_Tag>() =
Spectrum_Frame{std::vector<Spectrum_Power>(std::begin(samples), std::end(samples))};
spectrum->mark_dirty<Prepare_Data_Tag>();
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
scene->set<&Render_Scene_2D::Prop::background>(Color::transparent());
scene->activate_view();
@@ -127,7 +131,7 @@ TEST(render_scene_2d, composites_axes_and_spectrum_into_final_frame) {
EXPECT_TRUE(cache_graph.depends_on(spectrum.get(), frequency.get()));
EXPECT_TRUE(cache_graph.depends_on(spectrum.get(), power.get()));
auto output_frame = render_frame(scene.get());
EXPECT_GT(spectrum->rendered_point_count(), 0u);
EXPECT_GT(spectrum->read_state<Spectrum::Base_Tag>().rendered_point_count, 0u);
const auto& render_state = spectrum->read_state<Renderable::Base_Tag>();
EXPECT_EQ(render_state.prepare_task_count, 4u);
EXPECT_EQ(render_state.paint_task_count, 1u);
@@ -153,7 +157,9 @@ TEST(render_scene_2d, composites_axes_and_spectrum_into_final_frame) {
EXPECT_FALSE(spectrum->dirty<Paint_Cache_Tag>());
EXPECT_TRUE(spectrum->read_state<Renderable::Base_Tag>().prepare_executed);
spectrum->set<&Spectrum::Prop::partition_count>(2u);
spectrum->update_samples(samples);
spectrum->pending_buffer<Spectrum_Frame_Tag>() =
Spectrum_Frame{std::vector<Spectrum_Power>(std::begin(samples), std::end(samples))};
spectrum->mark_dirty<Prepare_Data_Tag>();
output_frame = render_frame(scene.get());
const auto& rebuilt_state = spectrum->read_state<Renderable::Base_Tag>();
EXPECT_TRUE(rebuilt_state.prepare_graph_rebuilt);