completed test part
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
DON'T EDIT THIS FILE!
|
DON'T EDIT THIS FILE!
|
||||||
|
|
||||||
tests1
|
iterators1
|
||||||
|
|
||||||
intro1
|
intro1
|
||||||
intro2
|
intro2
|
||||||
@@ -69,3 +69,6 @@ quiz3
|
|||||||
lifetimes1
|
lifetimes1
|
||||||
lifetimes2
|
lifetimes2
|
||||||
lifetimes3
|
lifetimes3
|
||||||
|
tests1
|
||||||
|
tests2
|
||||||
|
tests3
|
||||||
@@ -8,7 +8,7 @@ struct Book<'a> {
|
|||||||
|
|
||||||
// Will the strings pointed to by book still be valid?
|
// Will the strings pointed to by book still be valid?
|
||||||
fn main() {
|
fn main() {
|
||||||
let book = Book {
|
// let book = Book {
|
||||||
author: "George Orwell",
|
author: "George Orwell",
|
||||||
title: "1984",
|
title: "1984",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,11 +13,12 @@ fn main() {
|
|||||||
mod tests {
|
mod tests {
|
||||||
// TODO: Import `is_even`. You can use a wildcard to import everything in
|
// TODO: Import `is_even`. You can use a wildcard to import everything in
|
||||||
// the outer module.
|
// the outer module.
|
||||||
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn you_can_assert() {
|
fn you_can_assert() {
|
||||||
// TODO: Test the function `is_even` with some values.
|
// TODO: Test the function `is_even` with some values.
|
||||||
assert!();
|
assert!(is_even(32));
|
||||||
assert!();
|
assert!(is_even(12));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn you_can_assert_eq() {
|
fn you_can_assert_eq() {
|
||||||
// TODO: Test the function `power_of_2` with some values.
|
// TODO: Test the function `power_of_2` with some values.
|
||||||
assert_eq!();
|
assert_eq!(power_of_2(3), 8);
|
||||||
assert_eq!();
|
assert_eq!(power_of_2(4), 16);
|
||||||
assert_eq!();
|
assert_eq!(power_of_2(3), 8);
|
||||||
assert_eq!();
|
assert_eq!(power_of_2(2), 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,13 +29,14 @@ mod tests {
|
|||||||
// TODO: This test should check if the rectangle has the size that we
|
// TODO: This test should check if the rectangle has the size that we
|
||||||
// pass to its constructor.
|
// pass to its constructor.
|
||||||
let rect = Rectangle::new(10, 20);
|
let rect = Rectangle::new(10, 20);
|
||||||
assert_eq!(todo!(), 10); // Check width
|
assert_eq!(rect.width, 10); // Check width
|
||||||
assert_eq!(todo!(), 20); // Check height
|
assert_eq!(rect.height, 20); // Check height
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This test should check if the program panics when we try to create
|
// TODO: This test should check if the program panics when we try to create
|
||||||
// a rectangle with negative width.
|
// a rectangle with negative width.
|
||||||
#[test]
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
fn negative_width() {
|
fn negative_width() {
|
||||||
let _rect = Rectangle::new(-10, 10);
|
let _rect = Rectangle::new(-10, 10);
|
||||||
}
|
}
|
||||||
@@ -43,6 +44,7 @@ mod tests {
|
|||||||
// TODO: This test should check if the program panics when we try to create
|
// TODO: This test should check if the program panics when we try to create
|
||||||
// a rectangle with negative height.
|
// a rectangle with negative height.
|
||||||
#[test]
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
fn negative_height() {
|
fn negative_height() {
|
||||||
let _rect = Rectangle::new(10, -10);
|
let _rect = Rectangle::new(10, -10);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,24 @@
|
|||||||
fn main() {
|
// Tests are important to ensure that your code does what you think it should
|
||||||
// DON'T EDIT THIS SOLUTION FILE!
|
// do.
|
||||||
// It will be automatically filled after you finish the exercise.
|
|
||||||
|
fn is_even(n: i64) -> bool {
|
||||||
|
n % 2 == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// You can optionally experiment here.
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
// When writing unit tests, it is common to import everything from the outer
|
||||||
|
// module (`super`) using a wildcard.
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn you_can_assert() {
|
||||||
|
assert!(is_even(0));
|
||||||
|
assert!(!is_even(-1));
|
||||||
|
// ^ You can assert `false` using the negation operator `!`.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,22 @@
|
|||||||
fn main() {
|
// Calculates the power of 2 using a bit shift.
|
||||||
// DON'T EDIT THIS SOLUTION FILE!
|
// `1 << n` is equivalent to "2 to the power of n".
|
||||||
// It will be automatically filled after you finish the exercise.
|
fn power_of_2(n: u8) -> u64 {
|
||||||
|
1 << n
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// You can optionally experiment here.
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn you_can_assert_eq() {
|
||||||
|
assert_eq!(power_of_2(0), 1);
|
||||||
|
assert_eq!(power_of_2(1), 2);
|
||||||
|
assert_eq!(power_of_2(2), 4);
|
||||||
|
assert_eq!(power_of_2(3), 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,45 @@
|
|||||||
fn main() {
|
struct Rectangle {
|
||||||
// DON'T EDIT THIS SOLUTION FILE!
|
width: i32,
|
||||||
// It will be automatically filled after you finish the exercise.
|
height: i32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Rectangle {
|
||||||
|
// Don't change this function.
|
||||||
|
fn new(width: i32, height: i32) -> Self {
|
||||||
|
if width <= 0 || height <= 0 {
|
||||||
|
// Returning a `Result` would be better here. But we want to learn
|
||||||
|
// how to test functions that can panic.
|
||||||
|
panic!("Rectangle width and height must be positive");
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle { width, height }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// You can optionally experiment here.
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn correct_width_and_height() {
|
||||||
|
let rect = Rectangle::new(10, 20);
|
||||||
|
assert_eq!(rect.width, 10); // Check width
|
||||||
|
assert_eq!(rect.height, 20); // Check height
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic] // Added this attribute to check that the test panics.
|
||||||
|
fn negative_width() {
|
||||||
|
let _rect = Rectangle::new(-10, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic] // Added this attribute to check that the test panics.
|
||||||
|
fn negative_height() {
|
||||||
|
let _rect = Rectangle::new(10, -10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user