use crate::posix::helpers::*;
#[test]
fn posix_expr_addition() {
let result = run(&["expr", "2", "+", "3"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "5");
}
#[test]
fn posix_expr_subtraction() {
let result = run(&["expr", "10", "-", "3"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "7");
}
#[test]
fn posix_expr_multiplication() {
let result = run(&["expr", "4", "*", "5"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "20");
}
#[test]
fn posix_expr_division() {
let result = run(&["expr", "15", "/", "3"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "5");
}
#[test]
fn posix_expr_modulo() {
let result = run(&["expr", "17", "%", "5"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "2");
}
#[test]
fn posix_expr_equal() {
let result = run(&["expr", "5", "=", "5"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "1");
let result = run(&["expr", "5", "=", "6"]);
assert_eq!(result.0, 1);
assert_eq!(result.1.trim(), "0"); }
#[test]
fn posix_expr_not_equal() {
let result = run(&["expr", "5", "!=", "6"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "1");
}
#[test]
fn posix_expr_less_than() {
let result = run(&["expr", "3", "<", "5"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "1");
}
#[test]
fn posix_expr_greater_than() {
let result = run(&["expr", "5", ">", "3"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "1");
}
#[test]
fn posix_expr_length() {
let result = run(&["expr", "length", "hello"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "5");
}
#[test]
fn posix_expr_substr() {
let result = run(&["expr", "substr", "hello", "2", "3"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "ell");
}
#[test]
fn posix_expr_index() {
let result = run(&["expr", "index", "hello", "l"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "3");
}
#[test]
fn posix_expr_match() {
let result = run(&["expr", "hello", ":", "hel"]);
assert_eq!(result.0, 0);
assert_eq!(result.1.trim(), "3");
}
#[test]
fn posix_expr_exit_nonzero_result() {
let result = run(&["expr", "1", "+", "1"]);
assert_eq!(result.0, 0);
}
#[test]
fn posix_expr_exit_zero_result() {
let result = run(&["expr", "0"]);
assert_eq!(result.0, 1);
}
#[test]
fn posix_expr_exit_error() {
let result = run(&["expr", "1", "/", "0"]);
assert_eq!(result.0, 2);
}