| 516 | |
| 517 | #[test] |
| 518 | fn update_existing_key() { |
| 519 | let mut tree = OrderStatTree::new(); |
| 520 | tree.insert(vec![1], b"alice".to_vec()); |
| 521 | tree.insert(vec![3], b"bob".to_vec()); |
| 522 | |
| 523 | assert_eq!(tree.rank(b"alice"), Some(1)); |
| 524 | assert_eq!(tree.rank(b"bob"), Some(2)); |
| 525 | |
| 526 | // Update alice's score to 5 (now she's after bob). |
| 527 | assert!(!tree.insert(vec![1], b"alice".to_vec())); // Same score = no-op, returns false. |
| 528 | tree.insert(vec![5], b"alice".to_vec()); // New score. |
| 529 | |
| 530 | assert_eq!(tree.count(), 2); |
| 531 | assert_eq!(tree.rank(b"bob"), Some(1)); // bob(3) is now first. |
| 532 | assert_eq!(tree.rank(b"alice"), Some(2)); // alice(5) is now second. |
| 533 | } |
| 534 | |
| 535 | #[test] |
| 536 | fn remove() { |