Package com.studentgui.tools
Class GroupedSmoke
java.lang.Object
com.studentgui.tools.GroupedSmoke
Automated smoke test for grouped chart rendering and multi-panel PNG export.
Verifies that JLineGraph correctly renders multiple stacked phase-grouped
charts (as used by assessment pages like Braille, Abacus, etc.). Generates synthetic
data with explicit phase prefixes (P1, P2, P3) and exports to PNG.
Purpose:
- Validates phase grouping logic in
JLineGraph.updateWithGroupedData(java.util.List<java.util.List<java.lang.Integer>>, java.lang.String[]) - Ensures each group renders as a separate stacked chart panel
- Verifies PNG export of multi-chart layouts
- Provides visual reference for chart appearance during development
Usage:
java -cp StudentDataGUI.jar com.studentgui.tools.GroupedSmoke
Expected Output:
Grouped smoke wrote chart to: /path/to/app_home/StudentDataFiles/Grouped_Smoke/plots/GroupedSmoke-2024-01-15.png Exists: true
Test Data Structure:
- Part codes: 9 codes with prefixes: P1 (3 items), P2 (2 items), P3 (4 items)
- Sessions: 3 synthetic sessions with deterministic scores
(i + s) % 5 - Expected output: 3 stacked chart panels (one per phase group) in a single 800×600px PNG
Output Location: app_home/StudentDataFiles/Grouped_Smoke/plots/GroupedSmoke-<ISO_DATE>.png
Validation: Inspect the generated PNG to verify:
- Three distinct chart panels labeled "P1 - 3 items", "P2 - 2 items", "P3 - 4 items"
- Each panel shows 3 line series (2 gray historical, 1 black latest)
- Colored background bands visible in all panels
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPublic no-arg constructor to document the utility nature of this class. -
Method Summary
-
Constructor Details
-
GroupedSmoke
public GroupedSmoke()Public no-arg constructor to document the utility nature of this class. Kept for completeness; all work is performed frommain(String[]).
-
-
Method Details
-
main
Entry point for the grouped smoke utility.- Parameters:
args- ignored- Throws:
Exception- on unexpected IO or charting errors
-