use of edu.cmu.tetrad.sem.SemIm in project tetrad by cmu-phil.
the class TestDM method test3.
@Test
public void test3() {
// setting seed for debug.
RandomUtil.getInstance().setSeed(29483818483L);
Graph graph = emptyGraph(12);
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X2"));
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X3"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X2"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X3"));
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X6"));
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X7"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X6"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X7"));
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X11"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X11"));
graph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("X6"));
graph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("X7"));
graph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("X6"));
graph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("X7"));
graph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("X11"));
graph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("X11"));
graph.addDirectedEdge(new ContinuousVariable("X8"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X8"), new ContinuousVariable("X11"));
graph.addDirectedEdge(new ContinuousVariable("X9"), new ContinuousVariable("X10"));
graph.addDirectedEdge(new ContinuousVariable("X9"), new ContinuousVariable("X11"));
SemPm pm = new SemPm(graph);
SemIm im = new SemIm(pm);
DataSet data = im.simulateData(100000, false);
DMSearch search = new DMSearch();
search.setInputs(new int[] { 0, 1, 4, 5, 8, 9 });
search.setOutputs(new int[] { 2, 3, 6, 7, 10, 11 });
search.setData(data);
search.setTrueInputs(search.getInputs());
Graph foundGraph = search.search();
print("Test Case 3");
Graph trueGraph = new EdgeListGraph();
trueGraph.addNode(new ContinuousVariable("X0"));
trueGraph.addNode(new ContinuousVariable("X1"));
trueGraph.addNode(new ContinuousVariable("X2"));
trueGraph.addNode(new ContinuousVariable("X3"));
trueGraph.addNode(new ContinuousVariable("X4"));
trueGraph.addNode(new ContinuousVariable("X5"));
trueGraph.addNode(new ContinuousVariable("X6"));
trueGraph.addNode(new ContinuousVariable("X7"));
trueGraph.addNode(new ContinuousVariable("X8"));
trueGraph.addNode(new ContinuousVariable("X9"));
trueGraph.addNode(new ContinuousVariable("X10"));
trueGraph.addNode(new ContinuousVariable("X11"));
trueGraph.addNode(new ContinuousVariable("L0"));
trueGraph.addNode(new ContinuousVariable("L1"));
trueGraph.addNode(new ContinuousVariable("L2"));
trueGraph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("L1"));
trueGraph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("L1"));
trueGraph.addDirectedEdge(new ContinuousVariable("L1"), new ContinuousVariable("X2"));
trueGraph.addDirectedEdge(new ContinuousVariable("L1"), new ContinuousVariable("X3"));
trueGraph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("L2"));
trueGraph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("L2"));
trueGraph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("L2"));
trueGraph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("L2"));
trueGraph.addDirectedEdge(new ContinuousVariable("L2"), new ContinuousVariable("X6"));
trueGraph.addDirectedEdge(new ContinuousVariable("L2"), new ContinuousVariable("X7"));
trueGraph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("X4"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("X5"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("X8"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("X9"), new ContinuousVariable("L0"));
trueGraph.addDirectedEdge(new ContinuousVariable("L0"), new ContinuousVariable("X10"));
trueGraph.addDirectedEdge(new ContinuousVariable("L0"), new ContinuousVariable("X11"));
assertTrue(foundGraph.equals(trueGraph));
}
Aggregations