use matten_data::{MattenDataError, Table};
fn main() -> Result<(), MattenDataError> {
let csv = "\
region,sales,cost,quantity
north,100,40,5
south,150,45,7";
let table = Table::from_csv_str(csv)?;
let reordered = table.select_columns(["quantity", "sales"])?;
println!("selected names: {:?}", reordered.column_names());
assert_eq!(
reordered.column_names(),
&["quantity".to_string(), "sales".to_string()]
);
assert_eq!(reordered.column_count(), 2);
assert_eq!(reordered.row_count(), 2);
match table.select_columns(["sales", "profit"]) {
Err(MattenDataError::MissingColumn { name }) => {
println!("missing column reported: {name}");
assert_eq!(name, "profit");
}
other => panic!("expected MissingColumn, got {other:?}"),
}
println!("data_02_select_columns: OK");
Ok(())
}