Skip to content

Commit 29b9f1d

Browse files
committed
Added or improved test coverage for causable reasoning for all causable collections.
Signed-off-by: Marvin Hansen <[email protected]>
1 parent 5fedbde commit 29b9f1d

File tree

7 files changed

+513
-92
lines changed

7 files changed

+513
-92
lines changed

deep_causality/tests/extensions/causable/causable_arr_tests.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ fn test_evaluate_deterministic_propagation() {
4646

4747
// Case 1: All succeed, chain should be deterministically true.
4848
let effect_success = PropagatingEffect::Numerical(0.99);
49-
let res_success = col
50-
.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All)
51-
.unwrap();
49+
let res = col.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All);
50+
assert!(res.is_ok());
51+
let res_success = res.unwrap();
5252
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
5353

5454
// Case 2: One fails, chain should be deterministically false.
5555
let effect_fail = PropagatingEffect::Numerical(0.1);
56-
let res_fail = col
57-
.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All)
58-
.unwrap();
56+
let res = col.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All);
57+
assert!(res.is_ok());
58+
let res_fail = res.unwrap();
5959
assert_eq!(res_fail, PropagatingEffect::Deterministic(false));
6060
}
6161

@@ -73,9 +73,9 @@ fn test_evaluate_probabilistic_propagation() {
7373
// Case 2: One fails (Deterministic(false) is treated as probability 0.0).
7474
// The chain should short-circuit and return a cumulative probability of 0.0.
7575
let effect_fail = PropagatingEffect::Numerical(0.1);
76-
let res_fail = col
77-
.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5)
78-
.unwrap();
76+
let res = col.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5);
77+
assert!(res.is_ok());
78+
let res_fail = res.unwrap();
7979
assert_eq!(res_fail, PropagatingEffect::Probabilistic(0.0));
8080
}
8181

@@ -85,9 +85,9 @@ fn test_evaluate_mixed_propagation() {
8585

8686
// Case 1: All succeed, chain remains deterministically true.
8787
let effect_success = PropagatingEffect::Numerical(0.99);
88-
let res_success = col
89-
.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5)
90-
.unwrap();
88+
let res = col.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5);
89+
assert!(res.is_ok());
90+
let res_success = res.unwrap();
9191
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
9292

9393
// Case 2: One fails, chain becomes deterministically false.
@@ -107,7 +107,6 @@ fn test_explain() {
107107
assert!(res.is_ok());
108108

109109
let res = col.explain();
110-
dbg!(&res);
111110
assert!(res.is_ok());
112111
let actual = col.explain().unwrap();
113112

deep_causality/tests/extensions/causable/causable_btree_map_tests.rs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,16 @@ fn test_evaluate_deterministic_propagation() {
8787

8888
// Case 1: All succeed, chain should be deterministically true.
8989
let effect_success = PropagatingEffect::Numerical(0.99);
90-
let res_success = map
91-
.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All)
92-
.unwrap();
90+
let res = map.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All);
91+
assert!(res.is_ok());
92+
let res_success = res.unwrap();
9393
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
9494

9595
// Case 2: One fails, chain should be deterministically false.
9696
let effect_fail = PropagatingEffect::Numerical(0.1);
97-
let res_fail = map
98-
.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All)
99-
.unwrap();
97+
let res = map.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All);
98+
assert!(res.is_ok());
99+
let res_fail = res.unwrap();
100100
assert_eq!(res_fail, PropagatingEffect::Deterministic(false));
101101
}
102102

@@ -107,17 +107,17 @@ fn test_evaluate_probabilistic_propagation() {
107107
// Case 1: All succeed (Deterministic(true) is treated as probability 1.0).
108108
// The cumulative probability should be 1.0.
109109
let effect_success = PropagatingEffect::Numerical(0.99);
110-
let res_success = map
111-
.evaluate_probabilistic_propagation(&effect_success, &AggregateLogic::All, 0.5)
112-
.unwrap();
110+
let res = map.evaluate_probabilistic_propagation(&effect_success, &AggregateLogic::All, 0.5);
111+
assert!(res.is_ok());
112+
let res_success = res.unwrap();
113113
assert_eq!(res_success, PropagatingEffect::Probabilistic(1.0));
114114

115115
// Case 2: One fails (Deterministic(false) is treated as probability 0.0).
116116
// The chain should short-circuit and return a cumulative probability of 0.0.
117117
let effect_fail = PropagatingEffect::Numerical(0.1);
118-
let res_fail = map
119-
.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5)
120-
.unwrap();
118+
let res = map.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5);
119+
assert!(res.is_ok());
120+
let res_fail = res.unwrap();
121121
assert_eq!(res_fail, PropagatingEffect::Probabilistic(0.0));
122122
}
123123

@@ -127,16 +127,16 @@ fn test_evaluate_mixed_propagation() {
127127

128128
// Case 1: All succeed, chain remains deterministically true.
129129
let effect_success = PropagatingEffect::Numerical(0.99);
130-
let res_success = map
131-
.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5)
132-
.unwrap();
130+
let res = map.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5);
131+
assert!(res.is_ok());
132+
let res_success = res.unwrap();
133133
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
134134

135135
// Case 2: One fails, chain becomes deterministically false.
136136
let effect_fail = PropagatingEffect::Numerical(0.1);
137-
let res_fail = map
138-
.evaluate_mixed_propagation(&effect_fail, &AggregateLogic::All, 0.5)
139-
.unwrap();
137+
let res = map.evaluate_mixed_propagation(&effect_fail, &AggregateLogic::All, 0.5);
138+
assert!(res.is_ok());
139+
let res_fail = res.unwrap();
140140
assert_eq!(res_fail, PropagatingEffect::Deterministic(false));
141141
}
142142

@@ -150,7 +150,9 @@ fn test_explain() {
150150
let expected = format!(
151151
"\n * {single_explanation}\n\n * {single_explanation}\n\n * {single_explanation}\n"
152152
);
153-
let actual = map.explain().unwrap();
153+
let res = map.explain();
154+
assert!(res.is_ok());
155+
let actual = res.unwrap();
154156
assert_eq!(expected, actual);
155157
}
156158

deep_causality/tests/extensions/causable/causable_map_tests.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,16 @@ fn test_evaluate_deterministic_propagation() {
103103

104104
// Case 1: All succeed, chain should be deterministically true.
105105
let effect_success = PropagatingEffect::Numerical(0.99);
106-
let res_success = map
107-
.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All)
108-
.unwrap();
106+
let res = map.evaluate_deterministic_propagation(&effect_success, &AggregateLogic::All);
107+
assert!(res.is_ok());
108+
let res_success = res.unwrap();
109109
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
110110

111111
// Case 2: One fails, chain should be deterministically false.
112112
let effect_fail = PropagatingEffect::Numerical(0.1);
113-
let res_fail = map
114-
.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All)
115-
.unwrap();
113+
let res = map.evaluate_deterministic_propagation(&effect_fail, &AggregateLogic::All);
114+
assert!(res.is_ok());
115+
let res_fail = res.unwrap();
116116
assert_eq!(res_fail, PropagatingEffect::Deterministic(false));
117117
}
118118

@@ -123,17 +123,17 @@ fn test_evaluate_probabilistic_propagation() {
123123
// Case 1: All succeed (Deterministic(true) is treated as probability 1.0).
124124
// The cumulative probability should be 1.0.
125125
let effect_success = PropagatingEffect::Numerical(0.99);
126-
let res_success = map
127-
.evaluate_probabilistic_propagation(&effect_success, &AggregateLogic::All, 0.5)
128-
.unwrap();
126+
let res = map.evaluate_probabilistic_propagation(&effect_success, &AggregateLogic::All, 0.5);
127+
assert!(res.is_ok());
128+
let res_success = res.unwrap();
129129
assert_eq!(res_success, PropagatingEffect::Probabilistic(1.0));
130130

131131
// Case 2: One fails (Deterministic(false) is treated as probability 0.0).
132132
// The chain should short-circuit and return a cumulative probability of 0.0.
133133
let effect_fail = PropagatingEffect::Numerical(0.1);
134-
let res_fail = map
135-
.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5)
136-
.unwrap();
134+
let res = map.evaluate_probabilistic_propagation(&effect_fail, &AggregateLogic::All, 0.5);
135+
assert!(res.is_ok());
136+
let res_fail = res.unwrap();
137137
assert_eq!(res_fail, PropagatingEffect::Probabilistic(0.0));
138138
}
139139

@@ -143,9 +143,9 @@ fn test_evaluate_mixed_propagation() {
143143

144144
// Case 1: All succeed, chain remains deterministically true.
145145
let effect_success = PropagatingEffect::Numerical(0.99);
146-
let res_success = map
147-
.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5)
148-
.unwrap();
146+
let res = map.evaluate_mixed_propagation(&effect_success, &AggregateLogic::All, 0.5);
147+
assert!(res.is_ok());
148+
let res_success = res.unwrap();
149149
// All mixed cased evaluate
150150
assert_eq!(res_success, PropagatingEffect::Deterministic(true));
151151
}
@@ -156,8 +156,8 @@ fn test_evaluate_mixed_propagation_err() {
156156

157157
//
158158
let effect_fail = PropagatingEffect::Numerical(0.1);
159-
let res_fail = map.evaluate_mixed_propagation(&effect_fail, &AggregateLogic::All, 0.5);
160-
assert!(res_fail.is_err());
159+
let res = map.evaluate_mixed_propagation(&effect_fail, &AggregateLogic::All, 0.5);
160+
assert!(res.is_err());
161161
}
162162

163163
#[test]
@@ -166,7 +166,9 @@ fn test_explain() {
166166
activate_all_causes(&map);
167167

168168
let single_explanation = "Causaloid: 1 'tests whether data exceeds threshold of 0.55' evaluated to: PropagatingEffect::Deterministic(true)";
169-
let actual = map.explain().unwrap();
169+
let res = map.explain();
170+
assert!(res.is_ok());
171+
let actual = res.unwrap();
170172

171173
// HashMap iteration order is not guaranteed.
172174
// We check that the explanation for each of the 3 causes is present.

0 commit comments

Comments
 (0)