1
use lts::branching_bisim_sigref;
2
use lts::branching_bisim_sigref_naive;
3
use lts::strong_bisim_sigref;
4
use lts::strong_bisim_sigref_naive;
5
use test_case::test_case;
6
use utilities::Timing;
7

            
8
use io::io_aut::read_aut;
9

            
10
9
#[test_case(include_str!("../../../examples/lts/abp.aut") ; "abp.aut")]
11
#[test_case(include_str!("../../../examples/lts/cwi_1_2.aut") ; "cwi_1_2.aut")]
12
#[test_case(include_str!("../../../examples/lts/cwi_3_14.aut") ; "cwi_3_14.aut")]
13
#[test_case(include_str!("../../../examples/lts/selfloops.aut") ; "selfloops.aut")]
14
#[test_case(include_str!("../../../examples/lts/vasy_0_1.aut") ; "vasy_0_1.aut")]
15
#[test_case(include_str!("../../../examples/lts/vasy_1_4.aut") ; "vasy_1_4.aut")]
16
#[test_case(include_str!("../../../examples/lts/vasy_5_9.aut") ; "vasy_5_9.aut")]
17
#[test_case(include_str!("../../../examples/lts/vasy_8_24.aut") ; "vasy_8_24.aut")]
18
#[test_case(include_str!("../../../examples/lts/vasy_25_25.aut") ; "vasy_25_25.aut")]
19
9
fn test_strong_bisimilation_reduction(input: &str) {
20
9
    let _ = env_logger::builder().is_test(true).try_init();
21
9

            
22
9
    let lts = read_aut(input.as_bytes(), vec![]).unwrap();
23
9
    let mut timing = Timing::new();
24
9

            
25
9
    let reduced = strong_bisim_sigref(&lts, &mut timing);
26
9
    let naive_reduced = strong_bisim_sigref_naive(&lts, &mut timing);
27
9

            
28
9
    assert_eq!(reduced, naive_reduced, "The partitions are not equal");
29
9
}
30

            
31
9
#[test_case(include_str!("../../../examples/lts/abp.aut") ; "abp.aut")]
32
#[test_case(include_str!("../../../examples/lts/cwi_1_2.aut") ; "cwi_1_2.aut")]
33
#[test_case(include_str!("../../../examples/lts/cwi_3_14.aut") ; "cwi_3_14.aut")]
34
#[test_case(include_str!("../../../examples/lts/selfloops.aut") ; "selfloops.aut")]
35
#[test_case(include_str!("../../../examples/lts/vasy_0_1.aut") ; "vasy_0_1.aut")]
36
#[test_case(include_str!("../../../examples/lts/vasy_1_4.aut") ; "vasy_1_4.aut")]
37
#[test_case(include_str!("../../../examples/lts/vasy_5_9.aut") ; "vasy_5_9.aut")]
38
#[test_case(include_str!("../../../examples/lts/vasy_8_24.aut") ; "vasy_8_24.aut")]
39
#[test_case(include_str!("../../../examples/lts/vasy_25_25.aut") ; "vasy_25_25.aut")]
40
9
fn test_branching_bisimilation_reduction(input: &str) {
41
9
    let _ = env_logger::builder().is_test(true).try_init();
42
9

            
43
9
    let lts = read_aut(input.as_bytes(), vec!["tau".into(), "i".into()]).unwrap();
44
9
    let mut timing = Timing::new();
45
9

            
46
9
    let reduced = branching_bisim_sigref(&lts, &mut timing);
47
9
    let naive_reduced = branching_bisim_sigref_naive(&lts, &mut timing);
48
9

            
49
9
    assert_eq!(reduced, naive_reduced, "The partitions are not equal");
50
9
}