[Demonstration 1]

[Buggy Method]
public static void main(String[] args) {
    //Main.intervalArray.forEach(n -> Main.partA(Main.funcA, 1, 10, n));
    //Main.stepArray.forEach(h -> Main.partB(Main.funcB, 0, 1, h, 1));
    Main.partB(Main.funcB, 0, Math.PI, 0.05 * Math.PI, 1);
    //testGraphs();
}

[Buggy Hunk]
Main.partB(Main.funcB, 0, Math.PI, 0.05*Math.PI, 1);

[Patch]
Main.partB(slidesRunge, 0, Math.PI, 0.05*Math.PI, 1);

[Demonstration 2]

[Buggy Method]
private void computeLeft() {
    for (int i = 1; i < this.root + 1; i++) {
        Level prevLevel = this.levels.get(i - 1);
        SensorUpdate newSu = this.aggregate(prevLevel.getFirstPair().getL(), prevLevel.getFirstPair().getR());
        this.levels.get(i).setFirst(newSu);
    }
}

[Buggy Hunk]
for(int i = 1; i < this.root + 1; i++){

[Patch]
for(int i = 1; i <= this.root; i++){

[Demonstration 3]

[Buggy Method]
private Symbol startState() {
    Symbol symbol = input.next();
    char c = symbol.getCharacter();
    if (!Character.isWhitespace(c) && whitespace.peek() == BOL) {
        input.rollback();
        whitespace.pop();
        stack.push(new Token("", SCOPE_CLOSE, symbol.getLine(), symbol.getColumn()));
        return symbol;
    }
    switch(c) {
        case '=':
            stack.push(new Token(symbol, ASSIGN));
            equalsState(String.valueOf(c));
            rollbackWhileError();
            return symbol;
        case ':':
            stack.push(new Token(symbol, COLON));
            return symbol;
        case ',':
            stack.push(new Token(symbol, COMMA));
            return symbol;
        case '#':
            stack.push(new Token(symbol, HASH));
            return symbol;
        case '(':
            stack.push(new Token(symbol, LPAR));
            return symbol;
        case ')':
            stack.push(new Token(symbol, RPAR));
            return symbol;
        case '[':
            stack.push(new Token(symbol, LBRACKET));
            return symbol;
        case ']':
            stack.push(new Token(symbol, RBRACKET));
            return symbol;
        case '*':
            stack.push(new Token(symbol, MULTIPLY));
            return symbol;
        case '/':
            stack.push(new Token(symbol, DIVIDE));
            return symbol;
        case '%':
            stack.push(new Token(symbol, MODULO));
            return symbol;
        case '+':
            stack.push(new Token(symbol, PLUS));
            return symbol;
        case '-':
            stack.push(new Token(symbol, MINUS));
            return symbol;
        case '&':
            stack.push(new Token(symbol, BIT_AND));
            return symbol;
        case '|':
            stack.push(new Token(symbol, BIT_OR));
            return symbol;
        case '^':
            stack.push(new Token(symbol, BIT_XOR));
            return symbol;
        case '<':
            stack.push(new Token(symbol, LESS_THAN));
            smallerState(String.valueOf(c));
            rollbackWhileError();
            return symbol;
        case '>':
            stack.push(new Token(symbol, GREATER_THAN));
            biggerState(String.valueOf(c));
            rollbackWhileError();
            return symbol;
        case '!':
            bangState(String.valueOf(c));
            rollbackWhileError();
            return symbol;
        case ' ':
            if (whitespace.peek() == BOL) {
                spaceState(SPACE_WIDTH);
            } else {
                stack.push(TOKEN_SKIP);
            }
            return symbol;
        case '\t':
            if (whitespace.peek() == BOL) {
                spaceState(TAB_WIDTH);
            } else {
                stack.push(TOKEN_SKIP);
            }
            return symbol;
        case '\n':
            whitespace.push(-1);
            stack.push(new Token("\n", EOL, symbol.getLine(), symbol.getColumn()));
            return symbol;
    }
    if (alpha(c)) {
        stack.push(new Token(symbol, ID));
        keywordState(String.valueOf(c));
        rollbackWhileError();
    } else if (numeric(c)) {
        stack.push(new Token(symbol, ID));
        numericState(String.valueOf(c));
        rollbackWhileError();
    }
    return symbol;
}

[Buggy Hunk]
stack.push(new Token(symbol, ID));

[Patch]
stack.push(new Token(symbol, NUM));