Added some basic tests for Option::unzip() and Option::zip() (I noticed that zip had no tests)

This commit is contained in:
Chase Wilson 2021-07-30 13:13:59 -05:00
parent bc4ce79764
commit eea3520a8f
No known key found for this signature in database
GPG key ID: 190140C6730EB7E1

View file

@ -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));
}