File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ = Reversibility Testing
2+
3+ This document describes how reversibility-related behaviour is tested.
4+
5+ == Overview
6+
7+ Testing focuses on verifying identity properties and invariants.
8+
9+ == Property-Based Testing
10+
11+ Reversibility is tested using property-based tests.
12+
13+ Example:
14+
15+ [source,rust]
16+ ----
17+ #[test]
18+ fn test_config_undo() {
19+ let mut config = Config::new();
20+ let original = config.clone();
21+
22+ config.set("key", "new_value");
23+ config.undo();
24+
25+ assert_eq!(config, original);
26+ }
27+ ----
28+
29+ == Coverage
30+
31+ Tests include:
32+
33+ - Identity properties (forward + reverse)
34+ - Multi-variable interactions
35+ - Boundary conditions
36+
37+ == Status
38+
39+ - Partial coverage
40+ - Focused on specific subsystems
41+ - Not comprehensive across entire language
42+
43+ == Limitations
44+
45+ - No full-program reversibility testing
46+ - No formal linkage to proof system
47+ - Some behaviours assumed rather than enforced
48+
49+ == Summary
50+
51+ Reversibility testing exists but is incomplete and scoped to selected cases.
You can’t perform that action at this time.
0 commit comments