diff --git a/mers_lib/Cargo.toml b/mers_lib/Cargo.toml index 87cd981..480ebf0 100755 --- a/mers_lib/Cargo.toml +++ b/mers_lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mers_lib" -version = "0.9.13" +version = "0.9.14" edition = "2021" license = "MIT OR Apache-2.0" description = "library to use the mers language in other projects" diff --git a/mers_lib/src/program/configs/with_math.rs b/mers_lib/src/program/configs/with_math.rs index 7ec8fae..2f8917a 100755 --- a/mers_lib/src/program/configs/with_math.rs +++ b/mers_lib/src/program/configs/with_math.rs @@ -582,19 +582,19 @@ impl Config { Ok(o) }, |a, i| { - let mut min_int = None; - let mut min_float = None; + let mut max_int = None; + let mut max_float = None; for a in a.get().iterable(&i.global).expect("called `min` on non-itereable") { let a = a?; let a = a.get(); let a = a.as_any().downcast_ref::().map(|v| Ok(v.0)).or_else(|| a.as_any().downcast_ref::().map(|v| Err(v.0))).expect("found non-Int/Float element in argument to `min`"); match a { - Ok(a) => if min_int.is_none() || a < min_int.unwrap() { min_int = Some(a); }, - Err(a) => if min_float.is_none() || a < min_float.unwrap() { min_float = Some(a); }, + Ok(a) => if max_int.is_none() || a > max_int.unwrap() { max_int = Some(a); }, + Err(a) => if max_float.is_none() || a > max_float.unwrap() { max_float = Some(a); }, } } - Ok(match (min_float, min_int) { - (Some(a), Some(b)) => if a < b as f64 { Data::new(data::float::Float(a)) } else { Data::new(data::int::Int(b))}, + Ok(match (max_float, max_int) { + (Some(a), Some(b)) => if a > b as f64 { Data::new(data::float::Float(a)) } else { Data::new(data::int::Int(b))}, (Some(a), None) => Data::new(data::float::Float(a)), (None, Some(b)) => Data::new(data::int::Int(b)), (None, None) => Data::empty_tuple(),