forked from genewildish/Mainline
- Add comparison_presets.toml with 20+ preset configurations - Add comparison_capture.py for frame capture and comparison - Add run_comparison.py for running comparisons - Add test_comparison_framework.py with comprehensive tests - Add capture_upstream_comparison.py for upstream frame capture - Add tomli to dev dependencies for TOML parsing The framework supports: - Multiple preset configurations (basic, effects, camera, source, viewport) - Frame-by-frame comparison with detailed diff analysis - Performance metrics comparison - HTML report generation - Integration with sideline branch for regression testing
254 lines
6.1 KiB
TOML
254 lines
6.1 KiB
TOML
# Comparison Presets for Upstream vs Sideline Testing
|
|
# These presets are designed to test various pipeline configurations
|
|
# to ensure visual equivalence and performance parity
|
|
|
|
# ============================================
|
|
# CORE PIPELINE TESTS (Basic functionality)
|
|
# ============================================
|
|
|
|
[presets.comparison-basic]
|
|
description = "Comparison: Basic pipeline, no effects"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-with-message-overlay]
|
|
description = "Comparison: Basic pipeline with message overlay"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = true
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# EFFECT TESTS (Various effect combinations)
|
|
# ============================================
|
|
|
|
[presets.comparison-single-effect]
|
|
description = "Comparison: Single effect (border)"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = ["border"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-multiple-effects]
|
|
description = "Comparison: Multiple effects chain"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = ["border", "tint", "hud"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-all-effects]
|
|
description = "Comparison: All available effects"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = ["border", "tint", "hud", "fade", "noise", "glitch"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# CAMERA MODE TESTS (Different viewport behaviors)
|
|
# ============================================
|
|
|
|
[presets.comparison-camera-feed]
|
|
description = "Comparison: Feed camera mode"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-camera-scroll]
|
|
description = "Comparison: Scroll camera mode"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "scroll"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
camera_speed = 0.5
|
|
|
|
[presets.comparison-camera-horizontal]
|
|
description = "Comparison: Horizontal camera mode"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "horizontal"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# SOURCE TESTS (Different data sources)
|
|
# ============================================
|
|
|
|
[presets.comparison-source-headlines]
|
|
description = "Comparison: Headlines source"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-source-poetry]
|
|
description = "Comparison: Poetry source"
|
|
source = "poetry"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-source-empty]
|
|
description = "Comparison: Empty source (blank canvas)"
|
|
source = "empty"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# DIMENSION TESTS (Different viewport sizes)
|
|
# ============================================
|
|
|
|
[presets.comparison-small-viewport]
|
|
description = "Comparison: Small viewport"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 60
|
|
viewport_height = 20
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-large-viewport]
|
|
description = "Comparison: Large viewport"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 120
|
|
viewport_height = 40
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-wide-viewport]
|
|
description = "Comparison: Wide viewport"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 160
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# COMPREHENSIVE TESTS (Combined scenarios)
|
|
# ============================================
|
|
|
|
[presets.comparison-comprehensive-1]
|
|
description = "Comparison: Headlines + Effects + Message Overlay"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = ["border", "tint"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = true
|
|
frame_count = 30
|
|
|
|
[presets.comparison-comprehensive-2]
|
|
description = "Comparison: Poetry + Camera Scroll + Effects"
|
|
source = "poetry"
|
|
display = "null"
|
|
camera = "scroll"
|
|
effects = ["fade", "noise"]
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
camera_speed = 0.3
|
|
|
|
[presets.comparison-comprehensive-3]
|
|
description = "Comparison: Headlines + Horizontal Camera + All Effects"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "horizontal"
|
|
effects = ["border", "tint", "hud", "fade"]
|
|
viewport_width = 100
|
|
viewport_height = 30
|
|
enable_message_overlay = true
|
|
frame_count = 30
|
|
|
|
# ============================================
|
|
# REGRESSION TESTS (Specific edge cases)
|
|
# ============================================
|
|
|
|
[presets.comparison-regression-empty-message]
|
|
description = "Regression: Empty message overlay"
|
|
source = "empty"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 24
|
|
enable_message_overlay = true
|
|
frame_count = 30
|
|
|
|
[presets.comparison-regression-narrow-viewport]
|
|
description = "Regression: Very narrow viewport with long text"
|
|
source = "headlines"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 40
|
|
viewport_height = 24
|
|
enable_message_overlay = false
|
|
frame_count = 30
|
|
|
|
[presets.comparison-regression-tall-viewport]
|
|
description = "Regression: Tall viewport with few items"
|
|
source = "empty"
|
|
display = "null"
|
|
camera = "feed"
|
|
effects = []
|
|
viewport_width = 80
|
|
viewport_height = 60
|
|
enable_message_overlay = false
|
|
frame_count = 30
|