microsoft/qdk
Publicmirrored fromhttps://github.com/microsoft/qdkAvailable
source/pip/src/generic_estimator/tests.rs
30lines · modecode
| 1 | // Copyright (c) Microsoft Corporation. |
| 2 | // Licensed under the MIT License. |
| 3 | |
| 4 | use super::factory::round_based::{ordered_bfs, OrderedBFSControl}; |
| 5 | |
| 6 | #[test] |
| 7 | fn test_ordered_bfs() { |
| 8 | let mut total_sum = 0; |
| 9 | let mut total_visits = 0; |
| 10 | |
| 11 | let elements = vec![2, 4, 6, 8, 10]; |
| 12 | ordered_bfs(&elements, 5, |v| { |
| 13 | let sum = v.iter().copied().sum::<i32>(); |
| 14 | if sum <= 10 { |
| 15 | total_sum += sum; |
| 16 | total_visits += 1; |
| 17 | if v.len() > 3 { |
| 18 | Ok(OrderedBFSControl::Terminate) |
| 19 | } else { |
| 20 | Ok(OrderedBFSControl::Continue) |
| 21 | } |
| 22 | } else { |
| 23 | Ok(OrderedBFSControl::Cutoff) |
| 24 | } |
| 25 | }) |
| 26 | .expect("BFS should complete successfully"); |
| 27 | |
| 28 | assert_eq!(total_sum, 118); |
| 29 | assert_eq!(total_visits, 16); |
| 30 | } |
| 31 | |