[Demonstration 1]

[Buggy Method]
public Object evalNonAggregateValue(MdAttributeIndicatorDAOIF _mdAttributeIndicator, ComponentDAOIF _componentDAOIF) {
    MdAttributePrimitiveDAOIF mdAttrPrim = this.getMdAttributePrimitive();
    AttributeIF attribute = _componentDAOIF.getAttributeIF(mdAttrPrim.definesAttribute());
    if (attribute instanceof AttributeNumericalIF) {
        EnumerationItemDAOIF function = this.getAggregateFunction();
        String functionName = function.getValue(AggregationFunctionInfo.NAME);
        if (functionName.equals(AggregationFunctionInfo.COUNT)) {
            return new Integer(1);
        } else {
            AttributeNumericalIF attributeNumerical = (AttributeNumericalIF) attribute;
            return attributeNumerical.getTypeSafeValue();
        }
    } else {
        return null;
    }
}

[Buggy Hunk]
return new Integer(1);

[Patch]
return new Double(1);

[Demonstration 2]

[Buggy Method]
@Override
public void disprovedEdge(SDGEdge e) {
    Platform.runLater(() -> {
        labelSomeOtherData.setText("disproved summary edge " + e.toString());
        int selectedIndex = listViewSummaryEdges.getSelectionModel().getSelectedIndex();
        currentIndexToNodeTuple.remove(selectedIndex);
        itemIndexToSummaryEdge.remove(selectedIndex);
        for (int i = selectedIndex + 1; i < listViewSummaryEdges.getItems().size(); ++i) {
            SDGEdge currentEdge = itemIndexToSummaryEdge.remove(i);
            itemIndexToSummaryEdge.put(i - 1, currentEdge);
            SDGNodeTuple currentRemovedNodeTuple = currentIndexToNodeTuple.remove(i);
            currentIndexToNodeTuple.put(i - 1, currentRemovedNodeTuple);
        }
        clearCodeAreaForNewCode(methodCodeArea, "");
        clearCodeAreaForNewCode(loopInvariantCodeArea, "");
        clearCodeAreaForNewCode(keyContractCodeArea, "");
        resetListView(listViewLoopsInSE);
        resetListView(listViewFormalInoutPairs);
        resetListView(listViewCalledMethodsInSE);
        listViewSummaryEdges.getItems().removeIf((s) -> {
            return s.startsWith(e.toString());
        });
        listViewSummaryEdges.getSelectionModel().clearSelection();
        listViewSummaryEdges.getSelectionModel().select(0);
    });
}

[Buggy Hunk]
labelSomeOtherData.setText("disproved summary edge " + e.toString());

[Patch]
labelSomeOtherData.setText("Disproved summary edge " + e.toString() + ".");

[Demonstration 3]

[Buggy Method]
@Test(expected = RuntimeException.class)
public void malformedASTShouldThrowException() throws Exception {
    Path home_dir = Paths.get("resources/python/malformed_subset/");
    new TreeEditDistanceArray(home_dir, "python").compute();
}

[Buggy Hunk]
new TreeEditDistanceArray(home_dir, "python").compute();

[Patch]
System.out.print(new TreeEditDistanceArray(home_dir, "python").compute());