private void assertLva(ControlFlowGraph actualCfg, LiveVariablesAnalysis actualLva) {
debugDotNotation = CfgPrinter.toDot(actualCfg);
assertThat(actualCfg.blocks())
.withFailMessage(buildDebugMessage("size", "CFG"))
.hasSize(expectedCfg.size());
for (CfgBlock actualBlock : actualCfg.blocks()) {
if (actualBlock.equals(actualCfg.end())) {
continue;
}
String blockTestId = expectedCfg.testId(actualBlock);
LiveVariablesAnalysis.LiveVariables actualLiveVariables = actualLva.getLiveVariables(actualBlock);
assertVariablesAreEqual("Gen Variables", actualLiveVariables.getGen(), expectedCfg.expectedGenVariables(actualBlock), blockTestId);
assertVariablesAreEqual("Killed Variables", actualLiveVariables.getKill(), expectedCfg.expectedKilledVariables(actualBlock), blockTestId);
assertVariablesAreEqual("Live In Variables", actualLiveVariables.getIn(), expectedCfg.expectedLiveInVariables(actualBlock), blockTestId);
assertVariablesAreEqual("Live Out Variables", actualLiveVariables.getOut(), expectedCfg.expectedLiveOutVariables(actualBlock), blockTestId);
}
}