From aa469a994cced0db89fc889322430d41fa6f40eb Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 21 Aug 2015 10:58:32 -0400 Subject: [PATCH] add final test case, correct one of the others (both versions produced same result) --- .../transitive_relation.rs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/librustc_data_structures/transitive_relation.rs b/src/librustc_data_structures/transitive_relation.rs index 738e516f22e..abd9b0a331e 100644 --- a/src/librustc_data_structures/transitive_relation.rs +++ b/src/librustc_data_structures/transitive_relation.rs @@ -535,7 +535,7 @@ fn mubs_scc_3() { let mut relation = TransitiveRelation::new(); relation.add("a", "c"); relation.add("c", "d"); - relation.add("e", "e"); + relation.add("d", "e"); relation.add("e", "c"); relation.add("b", "d"); relation.add("b", "e"); @@ -543,6 +543,24 @@ fn mubs_scc_3() { assert_eq!(relation.minimal_upper_bounds(&"a", &"b"), vec![&"c"]); } -/* - "digraph { a -> c -> d -> e -> c; a -> d; b -> e; }" -*/ +#[test] +fn mubs_scc_4() { + // +---------+ + // v | + // a -> c -> d -> e + // | ^ ^ + // +---------+ | + // | + // b ---+ + + // "digraph { a -> c -> d -> e -> c; a -> d; b -> e; }" + let mut relation = TransitiveRelation::new(); + relation.add("a", "c"); + relation.add("c", "d"); + relation.add("d", "e"); + relation.add("e", "c"); + relation.add("a", "d"); + relation.add("b", "e"); + + assert_eq!(relation.minimal_upper_bounds(&"a", &"b"), vec![&"c"]); +}