Documentation
use ndarray::Array2;
use rust_c3::C3;

fn main() {
    let c_3 = C3::new();
    let ce_test = c_3.color_entropy(7271);
    println!("Color Entropy Test: {}", ce_test);

    let related_terms = c_3.color_related_terms(7271, Some(10), None, None);
    println!("Related Terms Test: {:?}", related_terms);

    let cosine_test = c_3.color_cosine(2173, 7271);
    println!("Cosine Test: {}", cosine_test);

    let color_index_test = c_3.color_index([60.3, 98.2, -60.8]);
    println!("Color Index Test: {:?}", color_index_test);

    let palette = Array2::from_shape_vec(
        (3, 3),
        vec![
            60.32273214,
            98.2353325,
            -60.84232404,
            79.42618245,
            -1.22650957,
            -19.14108948,
            66.88027726,
            43.42296322,
            71.85391542,
        ],
    )
    .unwrap();

    let analyzed_palette = c_3.analyze_palette(palette.clone());
    println!("Analyzed Palette: {:?}", analyzed_palette);

    let palette_terms = c_3.get_palette_terms(palette.clone(), 10);
    println!("Analyzed Palette Terms: {:?}", palette_terms);

    let cosine_matrix = c_3.compute_color_name_distance_matrix(&analyzed_palette);
    println!("Cosine Matrix: {:?}", cosine_matrix[[2, 1]]);
    println!("Cosine Matrix: {:?}", cosine_matrix.shape());
}