version: 1
tests:
- name: nested-Rows P&L report flattens to leaf rows
pipeline:
transforms:
- type: tree_flatten
config:
root: "Rows.Row"
children: "Rows.Row"
columns:
from: "ColData"
header: "Columns.Column"
header_label: "ColTitle"
value: "value"
ancestors:
field: "Header.ColData[0].value"
as: ["section"]
path_as: "group_path"
input:
- Columns:
Column:
- { ColTitle: "" }
- { ColTitle: "Jan 2024" }
- { ColTitle: "Feb 2024" }
Rows:
Row:
- Header:
ColData: [ { value: "Income" } ]
Rows:
Row:
- ColData: [ { value: "Sales" }, { value: "100" }, { value: "120" } ]
- ColData: [ { value: "Services" }, { value: "50" }, { value: "60" } ]
expect:
records:
- { section: "Income", group_path: "Income", col_0: "Sales", "Jan 2024": "100", "Feb 2024": "120" }
- { section: "Income", group_path: "Income", col_0: "Services", "Jan 2024": "50", "Feb 2024": "60" }
- name: column groups merge per leaf
pipeline:
transforms:
- type: tree_flatten
config:
root: rows
children: rows
groups:
- { from: dims, header: dimHeaders, header_label: name }
- { from: mets, header: metHeaders, header_label: name }
ancestors: { field: label, as: [section] }
input:
- dimHeaders: [ { name: date }, { name: country } ]
metHeaders: [ { name: sessions } ]
rows:
- label: Web
rows:
- { dims: [ { value: "20260901" }, { value: DE } ], mets: [ { value: "12" } ] }
- { dims: [ { value: "20260902" }, { value: FR } ], mets: [ { value: "7" } ] }
expect:
records:
- { section: Web, date: "20260901", country: DE, sessions: "12" }
- { section: Web, date: "20260902", country: FR, sessions: "7" }
- name: a group narrower than its headers fails the page
pipeline:
transforms:
- type: tree_flatten
config:
children: rows
groups:
- { from: mets, header: metHeaders, header_label: name }
input:
- metHeaders: [ { name: sessions }, { name: users } ]
mets: [ { value: "1" } ]
expect:
error: "group 'mets': 1 cell(s) but 2 header(s)"