From c5296f00d05b62a6f8340a495d51594d0f54e5b3 Mon Sep 17 00:00:00 2001 From: Roy Ivy III Date: Thu, 8 Oct 2020 22:45:02 -0500 Subject: [PATCH] tests/factor ~ test first 100000 integers for expected results --- Cargo.toml | 1 + tests/by-util/test_factor.rs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 0f2b63cb5..9c8887431 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -333,6 +333,7 @@ filetime = "0.2" libc = "0.2" rand = "0.7" regex = "1.0" +sha1 = { version="0.6", features=["std"] } tempfile = "3.1" time = "0.1" unindent = "0.1" diff --git a/tests/by-util/test_factor.rs b/tests/by-util/test_factor.rs index d0eaebac8..33c184ba0 100644 --- a/tests/by-util/test_factor.rs +++ b/tests/by-util/test_factor.rs @@ -21,6 +21,27 @@ const LOG_PRIMES: f64 = 14.0; // ceil(log2(NUM_PRIMES)) const NUM_TESTS: usize = 100; +#[test] +fn test_first_100000_integers() { + extern crate sha1; + + let n_integers = 100_000; + let mut instring = String::new(); + for i in 0..=n_integers { + instring.push_str(&(format!("{} ", i))[..]); + } + + println!("STDIN='{}'", instring); + let result = new_ucmd!().pipe_in(instring.as_bytes()).run(); + let stdout = result.stdout; + + assert!(result.success); + + // `seq 0 100000 | factor | sha1sum` => "4ed2d8403934fa1c76fe4b84c5d4b8850299c359" + let hash_check = sha1::Sha1::from(stdout.as_bytes()).hexdigest(); + assert_eq!(hash_check, "4ed2d8403934fa1c76fe4b84c5d4b8850299c359"); +} + #[test] fn test_random() { let primes = Sieve::primes().take(NUM_PRIMES).collect::>();