use matten_data::Table;
fn main() -> Result<(), matten_data::MattenDataError> {
let csv = "\
region,sales,cost,active
north,100,40.5,true
south,150,,true
east,120,55.0,false";
let table = Table::from_csv_str(csv)?;
println!("rows : {}", table.row_count());
println!("columns : {}", table.column_count());
println!("names : {:?}", table.column_names());
let summary = table.schema_summary();
print!("{summary}");
println!("--- per-column ---");
for col in summary.column_summaries() {
println!(
"{:<8} kind={:<7} missing={}",
col.name, col.kind, col.missing
);
}
let cost = summary
.column_summaries()
.iter()
.find(|c| c.name == "cost")
.expect("cost column exists");
assert_eq!(cost.missing, 1);
assert_eq!(table.row_count(), 3);
assert_eq!(table.column_count(), 4);
println!("data_01_schema_summary: OK");
Ok(())
}