    public void testMethodCheck()
    {
        ApiDifference[] expected = new ApiDifference[] {
            new ApiDifference("Method 'public void removedMethod(java.lang.String)' has been removed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void removedMethod(java.lang.String)", null),
            new ApiDifference("Method 'public int getPriv2()' has been removed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public int getPriv2()", null),
            new ApiDifference("Method 'public java.lang.Long getPrivSquare()' has been added in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public java.lang.Long getPrivSquare()", null),
            new ApiDifference("Method 'public void moveToSuper()' has been added in testlib.ComplexMethodMoveBase",
                    Severity.INFO, "testlib.ComplexMethodMoveBase", "public void moveToSuper()", null),
            new ApiDifference("Method 'public void moveToSuper()' is now implemented in superclass testlib.ComplexMethodMoveBase in testlib.ComplexMethodMoveSub",
                    Severity.INFO, "testlib.ComplexMethodMoveSub", "public void moveToSuper()", null),
            new ApiDifference("Abstract method 'public void method()' is now specified by implemented interface testlib.BaseInterface in testlib.AbstractImpl",
                    Severity.INFO, "testlib.AbstractImpl", "public void method()", null),
            new ApiDifference("Parameter 1 of 'protected MethodsChange(int)' has changed it's type to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "protected MethodsChange(int)", null),
            new ApiDifference("Return type of Method 'public java.lang.Number getPrivAsNumber()' has been changed to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public java.lang.Number getPrivAsNumber()", null),
            new ApiDifference("Return type of Method 'public java.lang.Integer getPrivAsInteger()' has been changed to java.lang.Number in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public java.lang.Integer getPrivAsInteger()", null),
            new ApiDifference("In Method 'public void printPriv()' the number of arguments has changed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void printPriv()", null),
            new ApiDifference("Parameter 1 of 'public void strengthenParamType(java.lang.Object)' has changed it's type to java.lang.String in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void strengthenParamType(java.lang.Object)", null),
            new ApiDifference("Parameter 1 of 'public void weakenParamType(java.lang.String)' has changed it's type to java.lang.Object in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void weakenParamType(java.lang.String)", null),
            new ApiDifference("Parameter 1 of 'public void changeParamType(java.lang.String)' has changed it's type to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void changeParamType(java.lang.String)", null),
            new ApiDifference("Method 'public void becomesDeprecated()' has been deprecated in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public void becomesDeprecated()", null),
            new ApiDifference("Method 'public void becomesUndeprecated()' is no longer deprecated in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public void becomesUndeprecated()", null),
        };
        verify(expected);
    }

    public void testMethodCheck()
    {
        ApiDifference[] expected = new ApiDifference[] {
            new ApiDifference("Method 'public void removedMethod(java.lang.String)' has been removed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void removedMethod(java.lang.String)", null),
            new ApiDifference("Method 'public int getPriv2()' has been removed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public int getPriv2()", null),
            new ApiDifference("Method 'protected MethodsChange(int, boolean)' has been added in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "protected MethodsChange(int, boolean)", null),
            new ApiDifference("Method 'public java.lang.Long getPrivSquare()' has been added in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public java.lang.Long getPrivSquare()", null),
            new ApiDifference("Method 'public void moveToSuper()' has been added in testlib.ComplexMethodMoveBase",
                    Severity.INFO, "testlib.ComplexMethodMoveBase", "public void moveToSuper()", null),
            new ApiDifference("Method 'public void moveToSuper()' is now implemented in superclass testlib.ComplexMethodMoveBase in testlib.ComplexMethodMoveSub",
                    Severity.INFO, "testlib.ComplexMethodMoveSub", "public void moveToSuper()", null),
            new ApiDifference("Abstract method 'public void method()' is now specified by implemented interface testlib.BaseInterface in testlib.AbstractImpl",
                    Severity.INFO, "testlib.AbstractImpl", "public void method()", null),
            new ApiDifference("Parameter 1 of 'protected MethodsChange(int)' has changed it's type to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "protected MethodsChange(int)", null),
            new ApiDifference("Return type of Method 'public java.lang.Number getPrivAsNumber()' has been changed to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public java.lang.Number getPrivAsNumber()", null),
            new ApiDifference("Return type of Method 'public java.lang.Integer getPrivAsInteger()' has been changed to java.lang.Number in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public java.lang.Integer getPrivAsInteger()", null),
            new ApiDifference("In Method 'public void printPriv()' the number of arguments has changed in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void printPriv()", null),
            new ApiDifference("Parameter 1 of 'public void strengthenParamType(java.lang.Object)' has changed it's type to java.lang.String in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void strengthenParamType(java.lang.Object)", null),
            new ApiDifference("Parameter 1 of 'public void weakenParamType(java.lang.String)' has changed it's type to java.lang.Object in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void weakenParamType(java.lang.String)", null),
            new ApiDifference("Parameter 1 of 'public void changeParamType(java.lang.String)' has changed it's type to java.lang.Integer in testlib.MethodsChange",
                    Severity.ERROR, "testlib.MethodsChange", "public void changeParamType(java.lang.String)", null),
            new ApiDifference("Method 'public void becomesDeprecated()' has been deprecated in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public void becomesDeprecated()", null),
            new ApiDifference("Method 'public void becomesUndeprecated()' is no longer deprecated in testlib.MethodsChange",
                    Severity.INFO, "testlib.MethodsChange", "public void becomesUndeprecated()", null),
        };
        verify(expected);
    }
