diff --git a/prelude.jq b/prelude.jq index 78bf095..a442f68 100644 --- a/prelude.jq +++ b/prelude.jq @@ -2,6 +2,7 @@ def not: if . then false else true end; def select(f): if f then . else empty end; def map(f): [.[] | f]; def map_values(f): .[] |= f; +def abs: if . < 0 then - . else . end; def isfinite: isinfinite | not; def nulls: select(type == "null"); diff --git a/tests/from_manual/functions.rs b/tests/from_manual/functions.rs index 37a2f19..d1e2dfb 100644 --- a/tests/from_manual/functions.rs +++ b/tests/from_manual/functions.rs @@ -1,5 +1,18 @@ use crate::test; +test!( + abs1, + r#" + map(abs) + "#, + r#" + [-10, -1.1, -1e-1] + "#, + r#" + [10,1.1,1e-1] + "# +); + test!( length1, r#"