use scirs2_core::ndarray::array;
use scirs2_stats::gini_coefficient;
#[allow(dead_code)]
fn main() {
let equaldata = array![100.0, 100.0, 100.0, 100.0, 100.0];
let gini_equal = gini_coefficient(&equaldata.view()).expect("Operation failed");
println!("Gini coefficient (perfect equality): {}", gini_equal);
let unequaldata = array![0.0, 0.0, 0.0, 0.0, 100.0];
let gini_unequal = gini_coefficient(&unequaldata.view()).expect("Operation failed");
println!("Gini coefficient (perfect inequality): {}", gini_unequal);
let incomedata = array![
20000.0, 25000.0, 30000.0, 35000.0, 40000.0, 45000.0, 50000.0, 60000.0, 80000.0, 150000.0
];
let gini_income = gini_coefficient(&incomedata.view()).expect("Operation failed");
println!(
"Gini coefficient (realistic income distribution): {}",
gini_income
);
let data_with_negative = array![10.0, -5.0, 20.0, 30.0, -10.0];
match gini_coefficient(&data_with_negative.view()) {
Ok(gini) => println!("Gini coefficient (with negative values): {}", gini),
Err(e) => println!("Error: {}", e),
}
}