| CompilationUnit |   | 13% |   | 8% | 118 | 133 | 188 | 231 | 60 | 73 | 0 | 1 |
| Node |   | 37% |   | 23% | 133 | 191 | 197 | 319 | 52 | 97 | 0 | 1 |
| ObservationTest |  | 0% | | n/a | 8 | 8 | 163 | 163 | 8 | 8 | 1 | 1 |
| ListObservationTest |  | 0% |  | 0% | 20 | 20 | 129 | 129 | 17 | 17 | 1 | 1 |
| NodeList |   | 24% |   | 17% | 84 | 107 | 117 | 165 | 52 | 72 | 0 | 1 |
| NodeListTest |  | 0% | | n/a | 13 | 13 | 67 | 67 | 13 | 13 | 1 | 1 |
| NodeTest |  | 0% | | n/a | 13 | 13 | 91 | 91 | 13 | 13 | 1 | 1 |
| CompilationUnitTest |  | 0% | | n/a | 10 | 10 | 54 | 54 | 10 | 10 | 1 | 1 |
| NodeListTest.IteratorTest.ObserversTest |  | 0% |  | 0% | 10 | 10 | 66 | 66 | 7 | 7 | 1 | 1 |
| WalkFindTest |  | 0% |  | 0% | 22 | 22 | 81 | 81 | 19 | 19 | 1 | 1 |
| AncestorDescendantTests |  | 0% | | n/a | 5 | 5 | 97 | 97 | 5 | 5 | 1 | 1 |
| ArrayCreationLevel |   | 35% |   | 17% | 22 | 30 | 34 | 59 | 9 | 16 | 0 | 1 |
| DataKeyTest |  | 0% | | n/a | 7 | 7 | 30 | 30 | 7 | 7 | 1 | 1 |
| ImportDeclaration |   | 34% |   | 20% | 22 | 30 | 28 | 52 | 11 | 18 | 0 | 1 |
| NodeList.NodeListIterator |   | 15% |  | 0% | 13 | 16 | 30 | 37 | 9 | 12 | 0 | 1 |
| CompilationUnit.Storage |  | 0% | | n/a | 16 | 16 | 32 | 32 | 16 | 16 | 1 | 1 |
| NodePositionTest |  | 0% |  | 0% | 14 | 14 | 33 | 33 | 12 | 12 | 1 | 1 |
| NodeTest.PostOrderIteratorTest |  | 0% | | n/a | 5 | 5 | 16 | 16 | 5 | 5 | 1 | 1 |
| NodeTest.PreOrderIteratorTest |  | 0% | | n/a | 5 | 5 | 16 | 16 | 5 | 5 | 1 | 1 |
| PackageDeclaration |   | 41% |   | 18% | 18 | 25 | 27 | 52 | 7 | 14 | 0 | 1 |
| ListObservationTest.new AstObserver() {...} |  | 0% | | n/a | 5 | 5 | 10 | 10 | 5 | 5 | 1 | 1 |
| NodeListTest.IteratorTest.ObserversTest.new AstObserver() {...} |  | 0% | | n/a | 5 | 5 | 19 | 19 | 5 | 5 | 1 | 1 |
| FindNodeTest |  | 0% |  | 0% | 7 | 7 | 43 | 43 | 4 | 4 | 1 | 1 |
| Modifier |   | 27% | | 50% | 20 | 25 | 22 | 35 | 19 | 24 | 0 | 1 |
| NodeListTest.IteratorTest.SingleItemIteratorTest |  | 0% | | n/a | 9 | 9 | 28 | 28 | 9 | 9 | 1 | 1 |
| ParseResultTest |  | 0% | | n/a | 3 | 3 | 18 | 18 | 3 | 3 | 1 | 1 |
| NodeListTest.IteratorTest.EmptyIteratorTest |  | 0% | | n/a | 8 | 8 | 24 | 24 | 8 | 8 | 1 | 1 |
| Node.PostOrderIterator |  | 0% |  | 0% | 10 | 10 | 22 | 22 | 6 | 6 | 1 | 1 |
| ReplaceNodeTest |  | 0% | | n/a | 3 | 3 | 15 | 15 | 3 | 3 | 1 | 1 |
| Node.PostOrderIterator.Level |  | 0% |  | 0% | 7 | 7 | 13 | 13 | 6 | 6 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 3 | 3 | 5 | 5 | 3 | 3 | 1 | 1 |
| AccessSpecifier |  | 0% | | n/a | 3 | 3 | 9 | 9 | 3 | 3 | 1 | 1 |
| NodeListTest.IteratorTest.AddRemoveListIteratorTest |  | 0% | | n/a | 3 | 3 | 10 | 10 | 3 | 3 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| Node.BreadthFirstIterator |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 3 | 3 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ObservationTest.new AstObserverAdapter() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| Node.ParentsVisitor |  | 0% | | n/a | 3 | 3 | 6 | 6 | 3 | 3 | 1 | 1 |
| Node.DirectChildrenIterator |  | 0% | | n/a | 3 | 3 | 5 | 5 | 3 | 3 | 1 | 1 |
| DataKey |  | 15% |  | 0% | 4 | 5 | 2 | 3 | 2 | 3 | 0 | 1 |
| NodeListTest.IteratorTest | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| DataKeyTest.new DataKey() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| DataKeyTest.new DataKey() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| DataKeyTest.new DataKey() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| DataKeyTest.new DataKey() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Modifier.Keyword |  | 100% | | n/a | 0 | 3 | 0 | 20 | 0 | 3 | 0 | 1 |
| Node.PreOrderIterator |  | 100% |  | 100% | 0 | 5 | 0 | 10 | 0 | 3 | 0 | 1 |
| Node.TreeTraversal |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 | 0 | 1 |
| Node.ObserverRegistrationMode |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| Node.Parsedness |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 0 | 1 |
| Node.new DataKey() {...} | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| Node.new DataKey() {...} | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| Node.new DataKey() {...} | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| Node.new DataKey() {...} | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |