我是Junit测试的新手。我编写了一个测试类来检查一个可以反转输入图的函数。 我对原始图进行了硬编码,然后对两个图进行了硬编码,以检查postDominator树类中的功能反向图。
import static org.junit.Assert.assertEquals;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import slicer.util.cfg.Node;
import slicer.util.cfg.ProgramGraph;
class PostDominatorTreeTest {
@Test
void test_reverseGraph() {
final ProgramGraph pg = new ProgramGraph();
final Node n1 = new Node("n1");
final Node n2 = new Node("n2");
final Node n3 = new Node("n3");
final Node n4 = new Node("n4");
pg.addNode(n1);
pg.addNode(n2);
pg.addNode(n3);
pg.addNode(n4);
pg.addEdge(n1, n2);
pg.addEdge(n2, n3);
pg.addEdge(n3, n4);
final ProgramGraph pg_reversed_expected = new ProgramGraph();
pg_reversed_expected.addNode(n1);
pg_reversed_expected.addNode(n2);
pg_reversed_expected.addNode(n3);
pg_reversed_expected.addNode(n4);
pg_reversed_expected.addEdge(n2, n1);
pg_reversed_expected.addEdge(n3, n2);
pg_reversed_expected.addEdge(n4, n3);
PostDominatorTree PostDominatorGraph = new PostDominatorTree(pg);
final ProgramGraph pg_reversed = PostDominatorGraph.reverseGraph(pg);
assertEquals(pg_reversed,pg_reversed_expected);
}
}
我失败了
java.lang.AssertionError: expected: slicer.util.cfg.ProgramGraph<digraph cfg{
"n2"->"n1"
"n3"->"n2"
"n4"->"n3"
}> but was: slicer.util.cfg.ProgramGraph<digraph cfg{
"n2"->"n1"
"n3"->"n2"
"n4"->"n3"
}>
我看到两个图是相等的!有人可以告诉我我在这里错过了什么吗?