2020-05-25 17:05:26 +00:00
|
|
|
use crate::common::util::*;
|
2015-11-16 05:25:01 +00:00
|
|
|
|
2021-06-01 16:12:37 +00:00
|
|
|
#[test]
|
|
|
|
fn test_rejects_nan() {
|
2021-06-02 16:43:35 +00:00
|
|
|
new_ucmd!().args(&["NaN"]).fails().stderr_only(
|
|
|
|
"seq: invalid 'not-a-number' argument: 'NaN'\nTry 'seq --help' for more information.",
|
|
|
|
);
|
2021-06-01 16:12:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_rejects_non_floats() {
|
2021-06-02 16:43:35 +00:00
|
|
|
new_ucmd!().args(&["foo"]).fails().stderr_only(
|
|
|
|
"seq: invalid floating point argument: 'foo'\nTry 'seq --help' for more information.",
|
|
|
|
);
|
2021-06-01 16:12:37 +00:00
|
|
|
}
|
|
|
|
|
2021-05-31 18:49:02 +00:00
|
|
|
// ---- Tests for the big integer based path ----
|
|
|
|
|
2015-11-16 05:25:01 +00:00
|
|
|
#[test]
|
|
|
|
fn test_count_up() {
|
2016-08-23 11:52:43 +00:00
|
|
|
new_ucmd!()
|
2020-04-13 18:36:03 +00:00
|
|
|
.args(&["10"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");
|
2015-11-16 05:25:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_count_down() {
|
2016-08-23 11:52:43 +00:00
|
|
|
new_ucmd!()
|
2020-04-13 18:36:03 +00:00
|
|
|
.args(&["--", "5", "-1", "1"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("5\n4\n3\n2\n1\n");
|
2021-01-02 09:14:18 +00:00
|
|
|
new_ucmd!()
|
2020-12-19 10:17:41 +00:00
|
|
|
.args(&["5", "-1", "1"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("5\n4\n3\n2\n1\n");
|
2015-11-16 05:25:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_separator_and_terminator() {
|
2016-08-23 11:52:43 +00:00
|
|
|
new_ucmd!()
|
2020-04-13 18:36:03 +00:00
|
|
|
.args(&["-s", ",", "-t", "!", "2", "6"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("2,3,4,5,6!");
|
2021-05-31 19:19:19 +00:00
|
|
|
new_ucmd!()
|
|
|
|
.args(&["-s", ",", "2", "6"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("2,3,4,5,6\n");
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["-s", "\n", "2", "6"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("2\n3\n4\n5\n6\n");
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["-s", "\\n", "2", "6"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("2\\n3\\n4\\n5\\n6\n");
|
2015-11-16 05:25:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_equalize_widths() {
|
2016-08-23 11:52:43 +00:00
|
|
|
new_ucmd!()
|
2020-04-13 18:36:03 +00:00
|
|
|
.args(&["-w", "5", "10"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("05\n06\n07\n08\n09\n10\n");
|
2015-11-16 05:25:01 +00:00
|
|
|
}
|
2020-10-20 20:35:19 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_seq_wrong_arg() {
|
|
|
|
new_ucmd!().args(&["-w", "5", "10", "33", "32"]).fails();
|
|
|
|
}
|
2021-02-18 21:10:53 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_zero_step() {
|
|
|
|
new_ucmd!().args(&["10", "0", "32"]).fails();
|
|
|
|
}
|
2021-05-31 18:49:02 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_big_numbers() {
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&[
|
|
|
|
"1000000000000000000000000000",
|
|
|
|
"1000000000000000000000000001",
|
|
|
|
])
|
|
|
|
.succeeds()
|
|
|
|
.stdout_only("1000000000000000000000000000\n1000000000000000000000000001\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---- Tests for the floating point based path ----
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_count_up_floats() {
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["10.0"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_count_down_floats() {
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["--", "5", "-1.0", "1"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("5.0\n4.0\n3.0\n2.0\n1.0\n");
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["5", "-1", "1.0"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("5\n4\n3\n2\n1\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_separator_and_terminator_floats() {
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["-s", ",", "-t", "!", "2.0", "6"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("2.0,3.0,4.0,5.0,6.0!");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_equalize_widths_floats() {
|
|
|
|
new_ucmd!()
|
|
|
|
.args(&["-w", "5", "10.0"])
|
|
|
|
.run()
|
|
|
|
.stdout_is("05\n06\n07\n08\n09\n10\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_seq_wrong_arg_floats() {
|
|
|
|
new_ucmd!().args(&["-w", "5", "10.0", "33", "32"]).fails();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_zero_step_floats() {
|
|
|
|
new_ucmd!().args(&["10.0", "0", "32"]).fails();
|
|
|
|
}
|