Multi-dimensional data modeling terminal application with:
- Core data model: categories, items, groups, sparse cell store
- Formula system: recursive-descent parser, named formulas, WHERE clauses
- View system: Row/Column/Page axes, tile-based pivot, page slicing
- JSON import wizard (interactive TUI + headless auto-mode)
- Command layer: all mutations via typed Command enum for headless replay
- TUI: Ratatui grid, tile bar, formula/category/view panels, help overlay
- Persistence: .improv (JSON), .improv.gz (gzip), CSV export, autosave
- Static binary via x86_64-unknown-linux-musl + nix flake devShell
- Headless mode: --cmd '{"op":"..."}' and --script file.jsonl
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
1.4 KiB
JSON
23 lines
1.4 KiB
JSON
# Smoke test — one JSON command per line
|
|
{"op":"AddCategory","name":"Region"}
|
|
{"op":"AddCategory","name":"Product"}
|
|
{"op":"AddCategory","name":"Measure"}
|
|
{"op":"AddItem","category":"Region","item":"East"}
|
|
{"op":"AddItem","category":"Region","item":"West"}
|
|
{"op":"AddItem","category":"Product","item":"Shirts"}
|
|
{"op":"AddItem","category":"Product","item":"Pants"}
|
|
{"op":"AddItem","category":"Measure","item":"Revenue"}
|
|
{"op":"AddItem","category":"Measure","item":"Cost"}
|
|
{"op":"SetCell","coords":[["Region","East"],["Product","Shirts"],["Measure","Revenue"]],"number":1200}
|
|
{"op":"SetCell","coords":[["Region","East"],["Product","Shirts"],["Measure","Cost"]],"number":400}
|
|
{"op":"SetCell","coords":[["Region","East"],["Product","Pants"],["Measure","Revenue"]],"number":800}
|
|
{"op":"SetCell","coords":[["Region","East"],["Product","Pants"],["Measure","Cost"]],"number":300}
|
|
{"op":"SetCell","coords":[["Region","West"],["Product","Shirts"],["Measure","Revenue"]],"number":950}
|
|
{"op":"SetCell","coords":[["Region","West"],["Product","Shirts"],["Measure","Cost"]],"number":320}
|
|
{"op":"AddFormula","raw":"Profit = Revenue - Cost","target_category":"Measure"}
|
|
{"op":"CreateView","name":"By Region"}
|
|
{"op":"SetAxis","category":"Region","axis":"column"}
|
|
{"op":"SetAxis","category":"Product","axis":"row"}
|
|
{"op":"SetAxis","category":"Measure","axis":"page"}
|
|
{"op":"Save","path":"/tmp/smoke_test.improv"}
|