minerva 0.2.0

Causal ordering for distributed systems
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use super::{arb_ops, run};
use proptest::prelude::*;

proptest! {
    /// Base change distributes over survivor-law merge.
    #[test]
    fn prop_restrict_commutes_with_merge(
        ops in arb_ops(), roster in prop::collection::vec(0u32..5, 0..5),
    ) {
        let (live, _) = run(&ops);
        let (a, b) = (&live[0], &live[2]);
        prop_assert_eq!(
            a.merge(b).restrict(roster.iter().copied()),
            a.restrict(roster.iter().copied())
                .merge(&b.restrict(roster.iter().copied()))
        );
    }
}