| lambda$1(ASTNode, ASTNode) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| inferKind(ASTNode) |   | 63% |   | 50% | 2 | 4 | 3 | 7 | 0 | 1 |
| extractSource(String, ASTNode) |   | 83% |   | 50% | 2 | 3 | 1 | 5 | 0 | 1 |
| isAncestor(ASTNode, ASTNode) |   | 90% |   | 50% | 3 | 5 | 0 | 5 | 0 | 1 |
| refineToStatements(FileDiff) |   | 96% |   | 75% | 3 | 7 | 1 | 15 | 0 | 1 |
| parseCompilationUnit(String) |   | 95% |   | 50% | 1 | 2 | 1 | 12 | 0 | 1 |
| refineHunk(String, DiffHunk, CompilationUnit, CompilationUnit, String, String) |   | 98% |   | 75% | 1 | 3 | 1 | 21 | 0 | 1 |
| deduplicateNodes(List) |  | 100% |   | 83% | 1 | 4 | 0 | 10 | 0 | 1 |
| computeChangedLines(int, int) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| findNodesForLines(CompilationUnit, Set) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$0(ASTNode, ASTNode) |  | 100% |  | 100% | 0 | 3 | 0 | 1 | 0 | 1 |
| isJavaFile(String) |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| DiffHunkRefiner() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |