34 lines
633 B
Rust
34 lines
633 B
Rust
// Rewrite the factorial function using a `while` loop.
|
|
pub fn factorial(n: u32) -> u32 {
|
|
// The `todo!()` macro is a placeholder that the compiler
|
|
// interprets as "I'll get back to this later", thus
|
|
// suppressing type errors.
|
|
// It panics at runtime.
|
|
todo!()
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use crate::factorial;
|
|
|
|
#[test]
|
|
fn first() {
|
|
assert_eq!(factorial(0), 1);
|
|
}
|
|
|
|
#[test]
|
|
fn second() {
|
|
assert_eq!(factorial(1), 1);
|
|
}
|
|
|
|
#[test]
|
|
fn third() {
|
|
assert_eq!(factorial(2), 2);
|
|
}
|
|
|
|
#[test]
|
|
fn fifth() {
|
|
assert_eq!(factorial(5), 120);
|
|
}
|
|
}
|