Closed mtshiba closed 1 year ago
This may not matter much. I modified the test code. When I run the test, it fails
#[cfg(test)] mod test { use crate::{ set, tsort::{Node, _reorder_by_idx}, }; #[test] fn test() -> Result<(), ()> { let v = vec!["e", "d", "b", "a", "c"]; let idx = vec![3, 2, 4, 1, 0]; assert_eq!(vec!["a", "b", "c", "d", "e"], _reorder_by_idx(v, idx)); let en_0 = Node::new("even n", (), set!["odd n (decl)", "odd 0"]); let o0_1 = Node::new("odd 0", (), set![]); let on_2 = Node::new("odd n", (), set!["even 0", "even n"]); let e0_3 = Node::new("even 0", (), set![]); let ond_4 = Node::new("odd n (decl)", (), set![]); let sorted = vec![ ond_4.clone(), o0_1.clone(), en_0.clone(), e0_3.clone(), on_2.clone(), ]; let dag = vec![en_0, o0_1, on_2, e0_3, ond_4]; assert_eq!(sorted, crate::tsort::tsort(dag)?); Ok(()) } }
- result
thread 'tsort::test::test' panicked at 'assertion failed: `(left == right)` left: `[Node { id: "odd n (decl)", data: (), depends_on: {} }, Node { id: "odd 0", data: (), depends_on: {} }, Node { id: "even n", data: (), depends_on: {"odd 0", "odd n (decl)"} }, Node { id: "even 0", data: (), depends_on: {} }, Node { id: "odd n", data: (), depends_on: {"even 0", "even n"} }]`, right: `[Node { id: "odd 0", data: (), depends_on: {} }, Node { id: "odd n (decl)", data: (), depends_on: {} }, Node { id: "even n", data: (), depends_on: {"odd 0", "odd n (decl)"} }, Node { id: "even 0", data: (), depends_on: {} }, Node { id: "odd n", data: (), depends_on: {"even 0", "even n"} }]`', compiler\erg_common\tsort.rs:113:9
I didn't take into account the arbitrary nature of topological sorting. Fixed the test.
This may not matter much. I modified the test code. When I run the test, it fails