This commit is contained in:
2026-08-24 10:45:26 +08:00
parent 4f21169ade
commit cb9822074b
31 changed files with 363 additions and 536 deletions
+24 -5
View File
@@ -78,9 +78,11 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
const std::array<Plot_Value, 4> second_block{-80.0, -50.0, -20.0, -5.0};
const std::array<Plot_Value, 4> replacement_block{-70.0, -40.0, -15.0, -2.0};
sweep->submit_stream<Sweep_Spectrum_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(first_block.begin(), first_block.end()));
std::make_shared<const Sweep_Spectrum_Block>(Sweep_Spectrum_Block{
0, {first_block.begin(), first_block.end()}}));
sweep->submit_stream<Sweep_Spectrum_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(second_block.begin(), second_block.end()));
std::make_shared<const Sweep_Spectrum_Block>(Sweep_Spectrum_Block{
1, {second_block.begin(), second_block.end()}}));
sweep->mark_dirty<Prepare_Data_Tag>();
auto scene = build_scene<Scene>(trace.get(), sweep.get());
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
@@ -89,13 +91,19 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
EXPECT_EQ(trace->access_rendering_stream<Frequency_Trace_Stream_Tag>(
[](std::span<Frequency_Trace_Sample> samples) { return samples.size(); }), 3u);
EXPECT_EQ(sweep->access_rendering_stream<Sweep_Spectrum_Stream_Tag>(
[](std::span<std::shared_ptr<const std::vector<Plot_Value>>> blocks) { return blocks.size(); }), 2u);
[](std::span<std::shared_ptr<const Sweep_Spectrum_Block>> blocks) { return blocks.size(); }), 2u);
sweep->submit_stream<Sweep_Spectrum_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(replacement_block.begin(), replacement_block.end()));
std::make_shared<const Sweep_Spectrum_Block>(Sweep_Spectrum_Block{
0, {replacement_block.begin(), replacement_block.end()}}));
trace->submit_stream<Frequency_Trace_Stream_Tag>(
Frequency_Trace_Sample{time->append_time({4'000}), 60.0});
trace->mark_dirty<Prepare_Data_Tag>();
sweep->mark_dirty<Prepare_Data_Tag>();
render_once(scene.get());
EXPECT_EQ(trace->access_rendering_stream<Frequency_Trace_Stream_Tag>(
[](std::span<Frequency_Trace_Sample> samples) { return samples.size(); }), 4u);
EXPECT_EQ(sweep->access_query_stream<Sweep_Spectrum_Stream_Tag>(
[](std::span<const std::shared_ptr<const std::vector<Plot_Value>>> blocks) { return blocks.size(); }), 2u);
[](std::span<const std::shared_ptr<const Sweep_Spectrum_Block>> blocks) { return blocks.size(); }), 2u);
}
TEST(plottable_migration, raster_plots_share_partitioned_color_blocks) {
@@ -139,6 +147,17 @@ TEST(plottable_migration, raster_plots_share_partitioned_color_blocks) {
[](std::span<std::shared_ptr<const std::vector<Plot_Value>>> spectra) { return spectra.size(); }), 1u);
EXPECT_EQ(waterfall->access_rendering_stream<Waterfall_Stream_Tag>(
[](std::span<std::shared_ptr<const Waterfall_Row>> rows) { return rows.size(); }), 2u);
glow->submit_stream<Afterglow_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(row.begin(), row.end()));
glow->mark_dirty<Prepare_Data_Tag>();
waterfall->submit_stream<Waterfall_Stream_Tag>(std::make_shared<const Waterfall_Row>(
Waterfall_Row{time->append_time({3'000}), {row.begin(), row.end()}}));
waterfall->mark_dirty<Prepare_Data_Tag>();
render_once(scene.get());
EXPECT_EQ(glow->access_rendering_stream<Afterglow_Stream_Tag>(
[](std::span<std::shared_ptr<const std::vector<Plot_Value>>> spectra) { return spectra.size(); }), 2u);
EXPECT_EQ(waterfall->access_rendering_stream<Waterfall_Stream_Tag>(
[](std::span<std::shared_ptr<const Waterfall_Row>> rows) { return rows.size(); }), 3u);
}
TEST(plottable_migration, direct_overlay_and_constellation_build_and_render) {