66use deep_causality:: * ;
77
88use deep_causality:: utils_test:: test_utils;
9- use deep_causality:: utils_test:: test_utils:: get_test_error_causaloid;
109
1110// Standard action that succeeds
1211fn state_action ( ) -> Result < ( ) , ActionError > {
@@ -17,6 +16,14 @@ fn get_test_action() -> CausalAction {
1716 CausalAction :: new ( state_action, "Test action" , 1 )
1817}
1918
19+ fn get_test_error_action ( ) -> CausalAction {
20+ fn err_state_action ( ) -> Result < ( ) , ActionError > {
21+ Err ( ActionError ( "Error" . to_string ( ) ) )
22+ }
23+
24+ CausalAction :: new ( err_state_action, "Test action" , 1 )
25+ }
26+
2027// Causaloid that returns a non-deterministic effect
2128fn get_test_probabilistic_causaloid ( ) -> BaseCausaloid {
2229 fn causal_fn ( _: & Evidence ) -> Result < PropagatingEffect , CausalityError > {
@@ -25,6 +32,13 @@ fn get_test_probabilistic_causaloid() -> BaseCausaloid {
2532 Causaloid :: new ( 99 , causal_fn, "Probabilistic Causaloid" )
2633}
2734
35+ fn get_test_error_causaloid ( ) -> BaseCausaloid {
36+ fn causal_fn ( _: & Evidence ) -> Result < PropagatingEffect , CausalityError > {
37+ Err ( CausalityError :: new ( "Error" . to_string ( ) ) )
38+ }
39+ Causaloid :: new ( 78 , causal_fn, "Probabilistic Causaloid" )
40+ }
41+
2842#[ test]
2943fn test_new ( ) {
3044 let id = 42 ;
@@ -199,40 +213,6 @@ fn remove_single_state_err_not_found() {
199213 assert_eq ! ( csm. len( ) , 1 ) ;
200214}
201215
202- #[ test]
203- fn eval_single_state ( ) {
204- let id = 42 ;
205- let version = 1 ;
206- let data = Evidence :: Numerical ( 0.23f64 ) ;
207- let causaloid = test_utils:: get_test_causaloid ( ) ;
208-
209- let cs = CausalState :: new ( id, version, data, causaloid) ;
210- let ca = get_test_action ( ) ;
211- let state_action = & [ ( & cs, & ca) ] ;
212- let csm = CSM :: new ( state_action) ;
213-
214- let data = test_utils:: get_test_single_data ( 0.23f64 ) ;
215- let res = csm. eval_single_state ( 23 , data) ;
216- assert ! ( res. is_err( ) )
217- }
218-
219- #[ test]
220- fn eval_single_state_error_non_deter ( ) {
221- let id = 42 ;
222- let version = 1 ;
223- let data = Evidence :: Numerical ( 0.23f64 ) ;
224- let causaloid = get_test_probabilistic_causaloid ( ) ;
225-
226- let cs = CausalState :: new ( id, version, data, causaloid) ;
227- let ca = get_test_action ( ) ;
228- let state_action = & [ ( & cs, & ca) ] ;
229- let csm = CSM :: new ( state_action) ;
230-
231- let data = test_utils:: get_test_single_data ( 0.23f64 ) ;
232- let res = csm. eval_single_state ( 23 , data) ;
233- assert ! ( res. is_err( ) )
234- }
235-
236216#[ test]
237217fn eval_single_state_error_fail_action ( ) {
238218 let id = 42 ;
@@ -241,7 +221,7 @@ fn eval_single_state_error_fail_action() {
241221 let causaloid = get_test_error_causaloid ( ) ;
242222
243223 let cs = CausalState :: new ( id, version, data, causaloid) ;
244- let ca = get_test_action ( ) ;
224+ let ca = get_test_error_action ( ) ;
245225 let state_action = & [ ( & cs, & ca) ] ;
246226 let csm = CSM :: new ( state_action) ;
247227
@@ -292,3 +272,37 @@ fn update_all_states() {
292272
293273 assert_eq ! ( csm. len( ) , 2 )
294274}
275+
276+ #[ test]
277+ fn eval_single_state ( ) {
278+ let id = 42 ;
279+ let version = 1 ;
280+ let data = Evidence :: Numerical ( 0.23f64 ) ;
281+ let causaloid = test_utils:: get_test_causaloid ( ) ;
282+
283+ let cs = CausalState :: new ( id, version, data, causaloid) ;
284+ let ca = get_test_action ( ) ;
285+ let state_action = & [ ( & cs, & ca) ] ;
286+ let csm = CSM :: new ( state_action) ;
287+
288+ let data = test_utils:: get_test_single_data ( 0.23f64 ) ;
289+ let res = csm. eval_single_state ( 23 , data) ;
290+ assert ! ( res. is_err( ) )
291+ }
292+
293+ #[ test]
294+ fn eval_single_state_error_non_deter ( ) {
295+ let id = 42 ;
296+ let version = 1 ;
297+ let data = Evidence :: Numerical ( 0.23f64 ) ;
298+ let causaloid = get_test_probabilistic_causaloid ( ) ;
299+
300+ let cs = CausalState :: new ( id, version, data, causaloid) ;
301+ let ca = get_test_action ( ) ;
302+ let state_action = & [ ( & cs, & ca) ] ;
303+ let csm = CSM :: new ( state_action) ;
304+
305+ let data = test_utils:: get_test_single_data ( 0.23f64 ) ;
306+ let res = csm. eval_single_state ( 23 , data) ;
307+ assert ! ( res. is_err( ) )
308+ }
0 commit comments