Skip to content

Commit 75fb8e6

Browse files
Create reversibility.adoc
1 parent 30ee989 commit 75fb8e6

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

docs/testing/reversibility.adoc

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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.

0 commit comments

Comments
 (0)