use ndarray::Array1;
pub fn keanes_bump_constraint1(x: &Array1<f64>) -> f64 {
let product: f64 = (0..4).map(|i| x.get(i).copied().unwrap_or(0.0)).product();
0.75 - product }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn satisfied_when_first_four_product_is_large_enough() {
let x = Array1::from(vec![1.0, 1.0, 1.0, 1.0]);
assert!(keanes_bump_constraint1(&x) <= 0.0);
}
#[test]
fn short_inputs_are_treated_as_missing_zero_dimensions() {
let x = Array1::from(vec![1.0, 1.0]);
assert_eq!(keanes_bump_constraint1(&x), 0.75);
}
}