| DOMDifferenceEngineTest |  | 0% | | n/a | 42 | 42 | 651 | 651 | 42 | 42 | 1 | 1 |
| ElementSelectorsTest |  | 0% | | n/a | 50 | 50 | 369 | 369 | 50 | 50 | 1 | 1 |
| DefaultComparisonFormatterTest |  | 0% |  | 0% | 35 | 35 | 338 | 338 | 32 | 32 | 1 | 1 |
| XPathContextTest |  | 0% | | n/a | 14 | 14 | 241 | 241 | 14 | 14 | 1 | 1 |
| DefaultComparisonFormatter |  | 0% |  | 0% | 70 | 71 | 189 | 190 | 20 | 21 | 0 | 1 |
| DOMDifferenceEngine |   | 40% |   | 14% | 76 | 90 | 125 | 222 | 11 | 25 | 0 | 1 |
| DifferenceEvaluatorsTest |  | 0% |  | 0% | 37 | 37 | 167 | 167 | 36 | 36 | 1 | 1 |
| AbstractDifferenceEngineTest |  | 0% | | n/a | 29 | 29 | 127 | 127 | 29 | 29 | 1 | 1 |
| ByNameAndTextRecSelectorTest |  | 0% | | n/a | 6 | 6 | 90 | 90 | 6 | 6 | 1 | 1 |
| DefaultNodeMatcherTest |  | 0% | | n/a | 5 | 5 | 59 | 59 | 5 | 5 | 1 | 1 |
| ElementSelectors |   | 7% |  | 0% | 43 | 45 | 67 | 74 | 19 | 21 | 0 | 1 |
| MultiLevelByNameAndTextSelectorTest |  | 0% | | n/a | 5 | 5 | 51 | 51 | 5 | 5 | 1 | 1 |
| XPathContext |   | 52% |   | 46% | 24 | 39 | 45 | 101 | 7 | 18 | 0 | 1 |
| RecursiveXPathBuilderTest |  | 0% | | n/a | 8 | 8 | 48 | 48 | 8 | 8 | 1 | 1 |
| DOMDifferenceEngineTest.DiffExpecter |  | 0% |  | 0% | 15 | 15 | 44 | 44 | 7 | 7 | 1 | 1 |
| ByNameAndTextRecSelector |  | 0% |  | 0% | 18 | 18 | 43 | 43 | 4 | 4 | 1 | 1 |
| NodeFiltersTest |  | 0% | | n/a | 5 | 5 | 21 | 21 | 5 | 5 | 1 | 1 |
| DefaultNodeMatcher |   | 39% |   | 20% | 14 | 19 | 24 | 45 | 3 | 7 | 0 | 1 |
| ComparisonControllersTest |  | 0% | | n/a | 4 | 4 | 22 | 22 | 4 | 4 | 1 | 1 |
| Diff |  | 0% |  | 0% | 15 | 15 | 31 | 31 | 11 | 11 | 1 | 1 |
| ComparisonListenerSupportTest |  | 0% |  | 0% | 4 | 4 | 14 | 14 | 3 | 3 | 1 | 1 |
| ChildNodeXPathContextProviderTest |  | 0% | | n/a | 5 | 5 | 23 | 23 | 5 | 5 | 1 | 1 |
| MultiLevelByNameAndTextSelector |  | 0% |  | 0% | 16 | 16 | 33 | 33 | 5 | 5 | 1 | 1 |
| DifferenceEvaluators |  | 12% |  | 0% | 22 | 23 | 24 | 28 | 11 | 12 | 0 | 1 |
| AbstractDifferenceEngine |   | 58% |   | 40% | 20 | 34 | 29 | 60 | 8 | 19 | 0 | 1 |
| DefaultConditionalSelectorBuilder |  | 0% |  | 0% | 11 | 11 | 20 | 20 | 7 | 7 | 1 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 0% | | n/a | 2 | 2 | 11 | 11 | 2 | 2 | 1 | 1 |
| RecursiveXPathBuilder |  | 0% |  | 0% | 9 | 9 | 21 | 21 | 5 | 5 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} |  | 0% |  | 0% | 7 | 7 | 18 | 18 | 2 | 2 | 1 | 1 |
| XPathContext.Level |  | 18% |  | 0% | 3 | 4 | 12 | 17 | 1 | 2 | 0 | 1 |
| DOMDifferenceEngine.NormalAttributeComparer |   | 48% |  | 16% | 3 | 5 | 14 | 26 | 0 | 2 | 0 | 1 |
| ChildNodeXPathContextProvider |  | 0% |  | 0% | 4 | 4 | 15 | 15 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngine.UnmatchedTestNodes |   | 40% |  | 25% | 2 | 4 | 9 | 20 | 0 | 2 | 0 | 1 |
| DOMDifferenceEngine.UnmatchedControlNodes |   | 40% |  | 25% | 2 | 4 | 9 | 20 | 0 | 2 | 0 | 1 |
| AbstractDifferenceEngine.ComparisonState |   | 45% |   | 21% | 9 | 15 | 6 | 14 | 3 | 8 | 0 | 1 |
| DefaultConditionalSelectorBuilder.ConditionalSelector |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 2 | 2 | 1 | 1 |
| ComparisonListenerSupportTest.Listener |  | 0% |  | 0% | 4 | 4 | 10 | 10 | 3 | 3 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngine.ControlAttributePresentComparer |   | 51% |  | 25% | 2 | 4 | 7 | 18 | 0 | 2 | 0 | 1 |
| DifferenceTest |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new ComparisonListener() {...} |  | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 2 | 2 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} |  | 30% |   | 23% | 6 | 9 | 9 | 13 | 0 | 2 | 0 | 1 |
| NodeFilters.new Predicate() {...} |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 2 | 2 | 1 | 1 |
| NodeFilters.new Predicate() {...} |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 2 | 2 | 1 | 1 |
| Difference |  | 36% | | n/a | 4 | 6 | 5 | 11 | 4 | 6 | 0 | 1 |
| ElementSelectors.new ElementSelector() {...} |  | 16% |  | 0% | 3 | 4 | 7 | 8 | 1 | 2 | 0 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.DocType |  | 0% | | n/a | 8 | 8 | 12 | 12 | 8 | 8 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} |  | 0% |  | 0% | 6 | 6 | 9 | 9 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new Predicate() {...} |  | 0% |  | 0% | 5 | 5 | 4 | 4 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngine.NormalAttributeComparer.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.WrapHelper | | 0% | | n/a | 5 | 5 | 5 | 5 | 5 | 5 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% |  | 0% | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 1 |
| XPathContextTest.Element | | 0% | | n/a | 4 | 4 | 8 | 8 | 4 | 4 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} | | 0% |  | 0% | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 1 |
| ElementSelectors.new Predicate() {...} | | 0% |  | 0% | 4 | 4 | 7 | 7 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% |  | 0% | 3 | 3 | 5 | 5 | 2 | 2 | 1 | 1 |
| ElementSelectorsTest.new Answer() {...} | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new Predicate() {...} | | 0% |  | 0% | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| DefaultNodeMatcher.DefaultNodeTypeMatcher | | 13% |  | 0% | 6 | 7 | 1 | 2 | 1 | 2 | 0 | 1 |
| ElementSelectors.new Predicate() {...} | | 0% |  | 0% | 4 | 4 | 2 | 2 | 2 | 2 | 1 | 1 |
| DifferenceEvaluatorsTest.Evaluator | | 0% | | n/a | 2 | 2 | 7 | 7 | 2 | 2 | 1 | 1 |
| ComparisonType |  | 94% |  | 0% | 3 | 8 | 4 | 38 | 2 | 7 | 0 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 4 | 4 | 5 | 5 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 0% |  | 0% | 3 | 3 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectors.CanBeComparedPredicate | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 16% |  | 0% | 3 | 4 | 3 | 4 | 1 | 2 | 0 | 1 |
| DifferenceEvaluatorsTest.new ComparisonListener() {...} | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 17% |  | 0% | 4 | 5 | 3 | 4 | 1 | 2 | 0 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 4 | 4 | 2 | 2 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} | | 0% |  | 0% | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} | | 0% |  | 0% | 4 | 4 | 3 | 3 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% |  | 0% | 3 | 3 | 4 | 4 | 2 | 2 | 1 | 1 |
| ComparisonListenerSupport |  | 84% |  | 100% | 2 | 9 | 4 | 20 | 2 | 6 | 0 | 1 |
| NodeFiltersTest.TestFilter | | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| DOMDifferenceEngineTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.ResultGrabber | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ElementSelectorsTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| Comparison |  | 83% | | n/a | 2 | 7 | 2 | 14 | 2 | 7 | 0 | 1 |
| NodeFilters | | 47% | | n/a | 2 | 3 | 2 | 4 | 2 | 3 | 0 | 1 |
| Comparison.Detail | | 66% | | n/a | 3 | 5 | 3 | 10 | 3 | 5 | 0 | 1 |
| AbstractDifferenceEngineTest.WrapHelper.new AbstractDifferenceEngine.ComparisonState() {...} | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new AbstractDifferenceEngine.DeferredComparison() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| NodeFilters.new Predicate() {...} | | 27% |  | 0% | 2 | 3 | 1 | 2 | 1 | 2 | 0 | 1 |
| AbstractDifferenceEngineTest.new DifferenceEvaluator() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractDifferenceEngineTest.new ComparisonController() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectorsTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectorsTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectorsTest.new Predicate() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| XPathContextTest.Text | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| XPathContextTest.Comment | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| XPathContextTest.PI | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| XPathContextTest.CDATA | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ElementSelectors.new Mapper() {...} | | 37% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| DOMDifferenceEngine.new Mapper() {...} | | 50% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| AbstractDifferenceEngine.new Predicate() {...} | | 75% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| DifferenceEvaluators.new DifferenceEvaluator() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| NodeFilters.new Predicate() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| ElementSelectors.new Predicate() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| ElementSelectors.new ElementSelector() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| ComparisonControllers.new ComparisonController() {...} | | 60% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| XPathContextTest.NonElement | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| ComparisonControllers.StopComparisonController | | 94% | | 50% | 1 | 3 | 0 | 4 | 0 | 2 | 0 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 100% | | n/a | 0 | 2 | 0 | 6 | 0 | 2 | 0 | 1 |
| ComparisonResult |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| DOMDifferenceEngine.new AbstractDifferenceEngine.DeferredComparison() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| XPathContext.DOMNodeInfo | | 100% | | n/a | 0 | 3 | 0 | 6 | 0 | 3 | 0 | 1 |
| AbstractDifferenceEngine.ComparisonState.new AbstractDifferenceEngine.DeferredComparison() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| AbstractDifferenceEngine.ComparisonState.new AbstractDifferenceEngine.DeferredComparison() {...} | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| ComparisonControllers | | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 0 | 1 |
| DOMDifferenceEngine.Attributes | | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 | 0 | 1 |
| AbstractDifferenceEngine.OngoingComparisonState | | 100% | | n/a | 0 | 2 | 0 | 5 | 0 | 2 | 0 | 1 |
| DefaultNodeMatcher.Match | | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| AbstractDifferenceEngine.FinishedComparisonState | | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 0 | 1 |