本文整理汇总了Java中com.google.javascript.jscomp.graph.UndiGraph类的典型用法代码示例。如果您正苦于以下问题:Java UndiGraph类的具体用法?Java UndiGraph怎么用?Java UndiGraph使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UndiGraph类属于com.google.javascript.jscomp.graph包,在下文中一共展示了UndiGraph类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testUndirectedSimple
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedSimple() {
UndiGraph<String, String> graph =
new LinkedUndirectedGraph<String, String>();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.connect("a", "--", "b");
assertTrue(graph.hasNode("a"));
assertTrue(graph.hasNode("b"));
assertTrue(graph.hasNode("c"));
assertFalse(graph.hasNode("d"));
assertTrue(graph.isConnected("a", "b"));
assertTrue(graph.isConnected("b", "a"));
assertFalse(graph.isConnected("a", "c"));
assertFalse(graph.isConnected("b", "c"));
assertFalse(graph.isConnected("c", "a"));
assertFalse(graph.isConnected("c", "b"));
assertFalse(graph.isConnected("a", "a"));
assertFalse(graph.isConnected("b", "b"));
assertFalse(graph.isConnected("b", "c"));
// Removal.
graph.disconnect("a", "b");
assertFalse(graph.isConnected("a", "b"));
assertFalse(graph.isConnected("b", "a"));
}
示例2: testUndirectedNeighbors
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedNeighbors() {
UndiGraph<String, String> graph =
new LinkedUndirectedGraph<String, String>();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.createNode("d");
graph.connect("a", "-", "b");
graph.connect("a", "--", "b");
graph.connect("a", "---", "b");
graph.connect("a", "-", "c");
graph.connect("c", "-", "d");
assertSetEquals(graph.getNeighborNodes("a"), "b", "c");
assertSetEquals(graph.getNeighborNodes("b"), "a");
assertSetEquals(graph.getNeighborNodes("c"), "a", "d");
assertListCount(graph.getNeighborNodes("a"), "b", 3);
// Removal.
graph.disconnect("a", "b");
assertFalse(graph.isConnected("a", "b"));
}
示例3: testSimpleSubGraph
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testSimpleSubGraph() {
UndiGraph<String, String> graph =
new LinkedUndirectedGraph<String, String>();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.connect("a", "--", "b");
SubGraph<String, String> subGraph = graph.newSubGraph();
subGraph.addNode("a");
subGraph.addNode("b");
try {
subGraph.addNode("d");
fail("SubGraph should not allow add for node that is not in graph.");
} catch (IllegalArgumentException e) {
// exception expected
}
assertFalse(subGraph.isIndependentOf("a"));
assertFalse(subGraph.isIndependentOf("b"));
assertTrue(subGraph.isIndependentOf("c"));
}
示例4: testUndirectedSimple
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedSimple() {
UndiGraph<String, String> graph =
LinkedUndirectedGraph.create();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.connect("a", "--", "b");
assertTrue(graph.hasNode("a"));
assertTrue(graph.hasNode("b"));
assertTrue(graph.hasNode("c"));
assertFalse(graph.hasNode("d"));
assertTrue(graph.isConnected("a", "b"));
assertTrue(graph.isConnected("b", "a"));
assertFalse(graph.isConnected("a", "c"));
assertFalse(graph.isConnected("b", "c"));
assertFalse(graph.isConnected("c", "a"));
assertFalse(graph.isConnected("c", "b"));
assertFalse(graph.isConnected("a", "a"));
assertFalse(graph.isConnected("b", "b"));
assertFalse(graph.isConnected("b", "c"));
// Removal.
graph.disconnect("a", "b");
assertFalse(graph.isConnected("a", "b"));
assertFalse(graph.isConnected("b", "a"));
}
示例5: testUndirectedNeighbors
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedNeighbors() {
UndiGraph<String, String> graph =
LinkedUndirectedGraph.create();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.createNode("d");
graph.connect("a", "-", "b");
graph.connect("a", "--", "b");
graph.connect("a", "---", "b");
graph.connect("a", "-", "c");
graph.connect("c", "-", "d");
assertSetEquals(graph.getNeighborNodes("a"), "b", "c");
assertSetEquals(graph.getNeighborNodes("b"), "a");
assertSetEquals(graph.getNeighborNodes("c"), "a", "d");
assertListCount(graph.getNeighborNodes("a"), "b", 3);
// Removal.
graph.disconnect("a", "b");
assertFalse(graph.isConnected("a", "b"));
}
示例6: testSimpleSubGraph
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testSimpleSubGraph() {
UndiGraph<String, String> graph =
LinkedUndirectedGraph.create();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.connect("a", "--", "b");
SubGraph<String, String> subGraph = graph.newSubGraph();
subGraph.addNode("a");
subGraph.addNode("b");
try {
subGraph.addNode("d");
fail("SubGraph should not allow add for node that is not in graph.");
} catch (IllegalArgumentException e) {
// exception expected
}
assertFalse(subGraph.isIndependentOf("a"));
assertFalse(subGraph.isIndependentOf("b"));
assertTrue(subGraph.isIndependentOf("c"));
}
示例7: enterScope
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
@Override
public void enterScope(NodeTraversal t) {
// TODO(user): We CAN do this in the global scope, just need to be
// careful when something is exported. Liveness uses bit-vector for live
// sets so I don't see compilation time will be a problem for running this
// pass in the global scope.
Scope scope = t.getScope();
if (scope.isGlobal()) {
return;
}
ControlFlowGraph<Node> cfg = t.getControlFlowGraph();
LiveVariablesAnalysis liveness =
new LiveVariablesAnalysis(cfg, scope, compiler);
liveness.analyze();
UndiGraph<Var, Void> interferenceGraph =
computeVariableNamesInterferenceGraph(
t, cfg, liveness.getEscapedLocals());
GraphColoring<Var, Void> coloring =
new GreedyGraphColoring<Var, Void>(interferenceGraph,
coloringTieBreaker);
coloring.color();
colorings.push(coloring);
}
示例8: connectIfCrossed
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
void connectIfCrossed(UndiGraph<Var, Void> interferenceGraph) {
if (callback1.crossed || callback2.crossed) {
Var v1 = callback1.getDef();
Var v2 = callback2.getDef();
interferenceGraph.connectIfNotFound(v1, null, v2);
}
}
示例9: testUndirectedSelfLoop
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedSelfLoop() {
UndiGraph<String, String> graph =
new LinkedUndirectedGraph<String, String>();
graph.createNode("a");
graph.createNode("b");
graph.connect("a", "--", "a");
assertTrue(graph.isConnected("a", "a"));
assertFalse(graph.isConnected("a", "b"));
assertFalse(graph.isConnected("b", "a"));
// Removal.
graph.disconnect("a", "a");
assertFalse(graph.isConnected("a", "a"));
}
示例10: enterScope
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
@Override
public void enterScope(NodeTraversal t) {
// TODO(user): We CAN do this in the global scope, just need to be
// careful when something is exported. Liveness uses bit-vector for live
// sets so I don't see compilation time will be a problem for running this
// pass in the global scope.
if (t.inGlobalScope()) {
return;
}
Scope scope = t.getScope();
ControlFlowGraph<Node> cfg = t.getControlFlowGraph();
LiveVariablesAnalysis liveness =
new LiveVariablesAnalysis(cfg, scope, compiler);
// If the function has exactly 2 params, mark them as escaped. This is
// a work-around for an IE bug where it throws an exception if you
// write to the parameters of the callback in a sort(). See:
// http://code.google.com/p/closure-compiler/issues/detail?id=58
if (scope.getRootNode().getFirstChild().getNext().getChildCount() == 2) {
liveness.markAllParametersEscaped();
}
liveness.analyze();
UndiGraph<Var, Void> interferenceGraph =
computeVariableNamesInterferenceGraph(
t, cfg, liveness.getEscapedLocals());
GraphColoring<Var, Void> coloring =
new GreedyGraphColoring<Var, Void>(interferenceGraph,
coloringTieBreaker);
coloring.color();
colorings.push(coloring);
}
示例11: enterScope
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
@Override
public void enterScope(NodeTraversal t) {
Scope scope = t.getScope();
if (!shouldOptimizeScope(scope)) {
return;
}
ControlFlowGraph<Node> cfg = t.getControlFlowGraph();
LiveVariablesAnalysis liveness =
new LiveVariablesAnalysis(cfg, scope, compiler);
// If the function has exactly 2 params, mark them as escaped. This is
// a work-around for an IE bug where it throws an exception if you
// write to the parameters of the callback in a sort(). See:
// http://code.google.com/p/closure-compiler/issues/detail?id=58
if (scope.getRootNode().getFirstChild().getNext().getChildCount() == 2) {
liveness.markAllParametersEscaped();
}
liveness.analyze();
UndiGraph<Var, Void> interferenceGraph =
computeVariableNamesInterferenceGraph(
t, cfg, liveness.getEscapedLocals());
GraphColoring<Var, Void> coloring =
new GreedyGraphColoring<Var, Void>(interferenceGraph,
coloringTieBreaker);
coloring.color();
colorings.push(coloring);
}
示例12: connectIfCrossed
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
boolean connectIfCrossed(UndiGraph<Var, Void> interferenceGraph) {
if (callback1.crossed || callback2.crossed) {
Var v1 = callback1.getDef();
Var v2 = callback2.getDef();
interferenceGraph.connectIfNotFound(v1, null, v2);
return true;
}
return false;
}
示例13: testUndirectedSelfLoop
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedSelfLoop() {
UndiGraph<String, String> graph =
LinkedUndirectedGraph.create();
graph.createNode("a");
graph.createNode("b");
graph.connect("a", "--", "a");
assertTrue(graph.isConnected("a", "a"));
assertFalse(graph.isConnected("a", "b"));
assertFalse(graph.isConnected("b", "a"));
// Removal.
graph.disconnect("a", "a");
assertFalse(graph.isConnected("a", "a"));
}
示例14: testUndirectedGetFirstEdge
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
public void testUndirectedGetFirstEdge() {
UndiGraph<String, String> graph =
LinkedUndirectedGraph.create();
graph.createNode("a");
graph.createNode("b");
graph.createNode("c");
graph.connect("a", "-", "b");
assertEquals(graph.getFirstEdge("a", "b").getValue(), "-");
assertEquals(graph.getFirstEdge("b", "a").getValue(), "-");
assertNull(graph.getFirstEdge("a", "c"));
}
示例15: connectIfCrossed
import com.google.javascript.jscomp.graph.UndiGraph; //导入依赖的package包/类
boolean connectIfCrossed(UndiGraph<Var, Void> interferenceGraph) {
if (callback1.crossed || callback2.crossed) {
Var v1 = callback1.def;
Var v2 = callback2.def;
interferenceGraph.connectIfNotFound(v1, null, v2);
return true;
}
return false;
}