use crate::compsys::ported::_arguments::_arguments;
fn zcalc_argv() -> Vec<String> {
[
"-s",
"-w",
"-S",
":",
"-#[specify default base]:base: ",
"-f[force floating point for all expressions]",
"-e[treat command line as expressions to be output immediately]",
"-r[enable Reverse Polish Notation]",
"*:expression: ",
]
.iter()
.map(|s| s.to_string())
.collect()
}
pub fn _zcalc(_args: &[String]) -> i32 {
let _fn_scope = crate::compsys::ported::shared::FnScope::enter("_zcalc");
_arguments(&zcalc_argv())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn argv_matches_upstream_specs() {
let v = zcalc_argv();
assert_eq!(&v[..4], &["-s", "-w", "-S", ":"]);
assert_eq!(v[4], "-#[specify default base]:base: ");
assert_eq!(v[5], "-f[force floating point for all expressions]");
assert_eq!(
v[6],
"-e[treat command line as expressions to be output immediately]"
);
assert_eq!(v[7], "-r[enable Reverse Polish Notation]");
assert_eq!(v[8], "*:expression: ");
assert_eq!(v.len(), 9);
}
#[test]
fn returns_one_without_completion_context() {
use crate::ported::params::{setaparam, setiparam};
let _g = crate::test_util::global_state_lock();
setaparam("words", vec!["zcalc".to_string(), "".to_string()]);
let _ = setiparam("CURRENT", 2);
assert_eq!(_zcalc(&[]), 1);
}
}