package edu.brown.graphs;
import java.io.File;
import org.voltdb.catalog.Table;
import edu.brown.catalog.conflicts.ConflictGraph;
import edu.brown.catalog.conflicts.ConflictGraph.ConflictEdge;
import edu.brown.catalog.conflicts.ConflictGraph.ConflictVertex;
import edu.brown.designer.DependencyGraph;
import edu.brown.designer.DesignerEdge;
import edu.brown.designer.DesignerVertex;
import edu.brown.designer.generators.DependencyGraphGenerator;
import edu.brown.utils.*;
import edu.brown.BaseTestCase;
public class TestGraphvizExport extends BaseTestCase {
@Override
protected void setUp() throws Exception {
super.setUp(ProjectType.TM1, true);
// this.applyParameterMappings(ProjectType.TPCC);
}
/**
* testExportDependencyGraph
*/
public void testExportDependencyGraph() throws Exception {
DependencyGraph graph = DependencyGraphGenerator.generate(catalogContext);
assertNotNull(graph);
assertTrue(graph.getVertexCount() > 0);
assertTrue(graph.getEdgeCount() > 0);
GraphvizExport<DesignerVertex, DesignerEdge> graphviz = new GraphvizExport<DesignerVertex, DesignerEdge>(graph);
String output = graphviz.export("tm1");
for (Table catalog_tbl : catalogContext.getDataTables()) {
if (catalog_tbl.getSystable()) continue;
assert(output.contains(catalog_tbl.getName()));
} // FOR
}
/**
* testExportConflictGraph
*/
public void testExportConflictGraph() throws Exception {
ConflictGraph graph = new ConflictGraph(catalogContext.database);
assertNotNull(graph);
assertTrue(graph.getVertexCount() > 0);
assertTrue(graph.getEdgeCount() > 0);
GraphvizExport<ConflictVertex, ConflictEdge> graphviz = new GraphvizExport<ConflictVertex, ConflictEdge>(graph);
String output = graphviz.export("tm1");
// File f = FileUtil.writeStringToFile(new File("/tmp/tm1-conflict.dot"), output);
// System.err.println("CONFLICT GRAPH: " + f);
// for (Table catalog_tbl : catalogContext.getDataTables()) {
// if (catalog_tbl.getSystable()) continue;
// assert(output.contains(catalog_tbl.getName()));
// } // FOR
}
}