### Question:
Frame { @Override public boolean equals(Object o) { if(this == o) { return true; } if(o == null || getClass() != o.getClass()) { return false; } Frame frame = (Frame) o; return lineNumber == frame.lineNumber && Objects.equals(className, frame.className) && Objects.equals(methodName, frame.methodName) && Objects.equals(fileName, frame.fileName); } Frame(String className, String methodName);  Frame(String className, String methodName, String fileName, int lineNumber); String getClassName(); void setClassName(String className); String getMethodName(); void setMethodName(String methodName); String getFileName(); int getLineNumber(); void setLocation(String fileName, int lineNumber); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString(); boolean isNative(); boolean isUnknown(); static final int IS_NATIVE; static final int IS_UNKNOWN; }### Answer:
@Test public void testEquals() { String className = "clazz"; String method = "method"; String fileName = "file.java"; int lineNumber = 42; Frame frame = new Frame(className, method, fileName, lineNumber); assertThat(frame.equals(frame), is(true)); assertThat(frame.equals(new Frame(className, method, fileName, lineNumber)), is(true)); assertThat(frame.equals(new Frame("other", method, fileName, lineNumber)), is(false)); assertThat(frame.equals(new Frame(className, "other", fileName, lineNumber)), is(false)); assertThat(frame.equals(new Frame(className, method, "other", lineNumber)), is(false)); assertThat(frame.equals(new Frame(className, method, fileName, 24)), is(false)); assertThat(frame.equals(new Frame(className, method)), is(false)); }