summaryrefslogtreecommitdiff
path: root/packages/doc/src/vector_clock.rs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/doc/src/vector_clock.rs')
-rw-r--r--packages/doc/src/vector_clock.rs47
1 files changed, 0 insertions, 47 deletions
diff --git a/packages/doc/src/vector_clock.rs b/packages/doc/src/vector_clock.rs
index f6ded56..5e0b669 100644
--- a/packages/doc/src/vector_clock.rs
+++ b/packages/doc/src/vector_clock.rs
@@ -22,11 +22,6 @@ impl VectorClock {
m.insert(actor_id.clone(), self.get(actor_id) + 1);
VectorClock(m)
}
-
- /// Returns true if this clock is concurrent with another (neither happens before the other)
- pub fn is_concurrent_with(&self, other: &VectorClock) -> bool {
- self.partial_cmp(other).is_none()
- }
}
impl PartialOrd for VectorClock {
@@ -111,46 +106,4 @@ mod tests {
assert!(!(clock_a > clock_b));
assert!(!(clock_a < clock_b));
}
-
- #[test]
- fn concurrent_clocks() {
- let alice_id = Uuid::now_v7();
- let bob_id = Uuid::now_v7();
- let carol_id = Uuid::now_v7();
-
- // Equal clocks are not concurrent
- let clock1 = VectorClock::new();
- let clock2 = VectorClock::new();
- assert!(!clock1.is_concurrent_with(&clock2));
-
- // Causally ordered clocks are not concurrent
- let clock_before = VectorClock::new().inc(&alice_id);
- let clock_after = VectorClock::new().inc(&alice_id).inc(&bob_id);
- assert!(!clock_before.is_concurrent_with(&clock_after));
- assert!(!clock_after.is_concurrent_with(&clock_before));
-
- // Clocks from different actors are concurrent
- let alice_clock = VectorClock::new().inc(&alice_id);
- let bob_clock = VectorClock::new().inc(&bob_id);
- assert!(alice_clock.is_concurrent_with(&bob_clock));
- assert!(bob_clock.is_concurrent_with(&alice_clock));
-
- // Complex concurrent case: diverged branches
- let clock_a = VectorClock::new()
- .inc(&alice_id)
- .inc(&alice_id)
- .inc(&bob_id)
- .inc(&carol_id);
-
- let clock_b = VectorClock::new()
- .inc(&alice_id)
- .inc(&alice_id)
- .inc(&bob_id)
- .inc(&bob_id);
-
- // clock_a: {alice: 2, bob: 1, carol: 1}
- // clock_b: {alice: 2, bob: 2}
- // carol: 1 > 0, but bob: 1 < 2 → concurrent
- assert!(clock_a.is_concurrent_with(&clock_b));
- }
}