Added some basic tests for Option::unzip()
and Option::zip()
(I noticed that zip had no tests)
This commit is contained in:
parent
bc4ce79764
commit
eea3520a8f
1 changed files with 33 additions and 1 deletions
|
@ -399,7 +399,7 @@ fn test_unwrap_drop() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
pub fn option_ext() {
|
||||
fn option_ext() {
|
||||
let thing = "{{ f }}";
|
||||
let f = thing.find("{{");
|
||||
|
||||
|
@ -407,3 +407,35 @@ pub fn option_ext() {
|
|||
println!("None!");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn zip_options() {
|
||||
let x = Some(10);
|
||||
let y = Some("foo");
|
||||
let z: Option<usize> = None;
|
||||
|
||||
assert_eq!(x.zip(y), Some((10, "foo")));
|
||||
assert_eq!(x.zip(z), None);
|
||||
assert_eq!(z.zip(x), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unzip_options() {
|
||||
let x = Some((10, "foo"));
|
||||
let y = None::<(bool, i32)>;
|
||||
|
||||
assert_eq!(x.unzip(), (Some(10), Some("foo")));
|
||||
assert_eq!(y.unzip(), (None, None));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn zip_unzip_roundtrip() {
|
||||
let x = Some(10);
|
||||
let y = Some("foo");
|
||||
|
||||
let z = x.zip(y);
|
||||
assert_eq!(z, Some((10, "foo")));
|
||||
|
||||
let a = z.unzip();
|
||||
assert_eq!(a, (x, y));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue