Skip to content

Commit

Permalink
Test case for drop/take key selection for ordered maps.
Browse files Browse the repository at this point in the history
  • Loading branch information
horned-sphere committed Nov 22, 2024
1 parent c6767d0 commit 73695c6
Showing 1 changed file with 49 additions and 9 deletions.
58 changes: 49 additions & 9 deletions server/swimos_agent/src/lanes/map/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// limitations under the License.

use std::borrow::Cow;
use std::collections::{HashMap, VecDeque};
use std::collections::{BTreeMap, HashMap, VecDeque};
use std::fmt::Debug;

use bytes::BytesMut;
Expand Down Expand Up @@ -1122,35 +1122,75 @@ fn drop_take_choose_keys() {
.collect::<HashMap<_, _>>();

assert_eq!(
drop_or_take(&map, super::DropOrTake::Drop, 2),
drop_or_take(&map, DropOrTake::Drop, 2),
VecDeque::from(vec![1, 2])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Take, 3),
drop_or_take(&map, DropOrTake::Take, 3),
VecDeque::from(vec![4])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Drop, 4),
drop_or_take(&map, DropOrTake::Drop, 4),
VecDeque::from(vec![1, 2, 3, 4])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Take, 4),
drop_or_take(&map, DropOrTake::Take, 4),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Drop, 10),
drop_or_take(&map, DropOrTake::Drop, 10),
VecDeque::from(vec![1, 2, 3, 4])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Take, 10),
drop_or_take(&map, DropOrTake::Take, 10),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Drop, 0),
drop_or_take(&map, DropOrTake::Drop, 0),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, super::DropOrTake::Take, 0),
drop_or_take(&map, DropOrTake::Take, 0),
VecDeque::from(vec![1, 2, 3, 4])
);
}

#[test]
fn drop_take_choose_keys_ordered() {
let map = [(1, 2), (2, 4), (3, 6), (4, 8)]
.into_iter()
.collect::<BTreeMap<_, _>>();

assert_eq!(
drop_or_take(&map, DropOrTake::Drop, 2),
VecDeque::from(vec![1, 2])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Take, 3),
VecDeque::from(vec![4])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Drop, 4),
VecDeque::from(vec![1, 2, 3, 4])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Take, 4),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Drop, 10),
VecDeque::from(vec![1, 2, 3, 4])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Take, 10),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Drop, 0),
VecDeque::from(vec![])
);
assert_eq!(
drop_or_take(&map, DropOrTake::Take, 0),
VecDeque::from(vec![1, 2, 3, 4])
);
}
Expand Down

0 comments on commit 73695c6

Please sign in to comment.