0.1.0 |
|
---|
#47 in #predicate
4KB
unique
版权所有 (c) 2020 Ronnie Song
这是一个基于Rust的“unique”库crate,用于从一个满足谓词的迭代器中找到唯一的值。
使用方法
检查4是否在nums中是唯一的。
use unique::Unique;
let mut nums = vec![];
let num: fn(&&usize) -> bool = |&&n| n == 4;
nums.push(4);
assert_eq!(Some(&4), nums.iter().unique(even)); //true
运行示例
要运行示例程序,请输入以下命令
$ cargo run --example example
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running `target/debug/examples/example`
None
None
Some(0)
Some(1)
None
None
Some(3)
None
Some("Ronnie")
Some("David")
Some("Ronnie")
None
一切顺利!它检查并找到了满足谓词的唯一值,没有问题,并成功按预期打印了结果。
测试
要测试库crate,请输入以下命令
$ cargo test
Compiling unique v0.1.0 (/mnt/c/Users/ronsong/Desktop/Docs/Rust Programming/unique)
Finished dev [unoptimized + debuginfo] target(s) in 1.71s
Running target/debug/deps/test-e7e23989fe7c65fd
running 8 tests
test test_cases::empty ... ok
test test_cases::unique_even ... ok
test test_cases::unique_odd ... ok
test test_cases::nonunique_even_or_odd ... ok
test test_cases::unique_number ... ok
test test_cases::nonunique_number ... ok
test test_cases::unique_name ... ok
test test_cases::nonunique_name ... ok
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
所有测试均通过,没有问题。
测试放在tests/test.rs文件中,该文件使用std assert_eq!()来测试该文件中unique()特质的实际结果和预期结果是否相等。
Github Action CI正在运行来自动测试。
许可证
本程序受“MIT许可证”许可。请参阅本软件源分布中的LICENSE
文件中的许可证条款。