| trackChildNodes(String, NodeKeyResolver) |   | 98% |   | 75% | 2 | 5 | 0 | 12 | 0 | 1 |
| replaceTrackedNode(NodeSelector, ImmutableNode) |   | 96% |   | 75% | 2 | 5 | 0 | 6 | 0 | 1 |
| lambda$clearTree$7(NodeKeyResolver, String, List, ModelTransaction) |  | 100% |  | 100% | 0 | 4 | 0 | 15 | 0 | 1 |
| lambda$addNodes$4(NodeKeyResolver, String, Collection, ModelTransaction) |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 1 |
| addAttributeProperty(ModelTransaction, NodeAddData, Iterable) |  | 100% |  | 100% | 0 | 3 | 0 | 10 | 0 | 1 |
| trackChildNodeWithCreation(String, String, NodeKeyResolver) |  | 100% |   | 75% | 1 | 3 | 0 | 10 | 0 | 1 |
| lambda$mergeRoot$8(ImmutableNode, String, Map, Object, ModelTransaction) |  | 100% |  | 100% | 0 | 5 | 0 | 13 | 0 | 1 |
| createDataWithTrackedChildNode(TreeData, ImmutableNode, String, NodeKeyResolver, MutableObject) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| lambda$setProperty$9(NodeKeyResolver, String, Object, ModelTransaction) |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 1 |
| selectAndTrackNodes(String, NodeKeyResolver) |  | 100% |   | 75% | 1 | 3 | 0 | 8 | 0 | 1 |
| createNodeOnPath(Iterator, Collection) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| replaceRoot(ImmutableNode, NodeKeyResolver) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| createSelectorsForTrackedNodes(Mutable, List, TreeData, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| updateDataWithNewTrackedNode(TreeData, ImmutableNode, NodeKeyResolver, MutableObject) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| executeTransactionOnCurrentStructure(InMemoryNodeModel.TransactionInitializer, NodeSelector, TreeData, NodeKeyResolver) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| trackNode(NodeSelector, NodeKeyResolver) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| getTrackedNodeHandler(NodeSelector) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| updateModel(InMemoryNodeModel.TransactionInitializer, NodeSelector, NodeKeyResolver) |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| addNodesByAddData(ModelTransaction, NodeAddData, Collection) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| initializeAddTransaction(ModelTransaction, String, Iterable, NodeKeyResolver) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| untrackNode(NodeSelector) |  | 100% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| lambda$initializeUpdateTransaction$3(ModelTransaction, QueryResult, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| executeTransactionOnDetachedTrackedNode(InMemoryNodeModel.TransactionInitializer, NodeSelector, TreeData, NodeKeyResolver) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| lambda$initializeClearTransaction$2(ModelTransaction, QueryResult) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| checkIfNodeDefined(ImmutableNode) |  | 100% |  | 100% | 0 | 4 | 0 | 1 | 0 | 1 |
| clearTree(String, NodeSelector, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| createTreeData(ImmutableNode, TreeData) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| addNodes(String, NodeSelector, Collection, NodeKeyResolver) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| replaceActiveTrackedNode(TreeData, NodeSelector, ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| replaceDetachedTrackedNode(TreeData, NodeSelector, ImmutableNode) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| InMemoryNodeModel(ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| addProperty(String, NodeSelector, Iterable, NodeKeyResolver) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| clear(NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| createTreeDataForRootAndTracker(ImmutableNode, NodeTracker) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| attributeKeyException(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| determineRootName(ImmutableNode, ImmutableNode, String) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| setRootNode(ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$clearProperty$6(NodeKeyResolver, String, ModelTransaction) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$createSelectorsForTrackedNodes$1(List, NodeKeyResolver, Map, TreeData, ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$createNodesToAdd$0(Collection, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| createNodesToAdd(String, Iterable) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| initializeClearTransaction(ModelTransaction, Collection) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| initializeUpdateTransaction(ModelTransaction, Map) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| addNodeProperty(ModelTransaction, NodeAddData, Iterable) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| mergeRoot(ImmutableNode, String, Map, Object, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setProperty(String, NodeSelector, Object, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| initialRootNode(ImmutableNode) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| updateParentMapping(Map, ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| createParentMapping(ImmutableNode) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| clearProperty(String, NodeSelector, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getTrackedNode(NodeSelector) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isTrackedNodeDetached(NodeSelector) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addProperty$5(String, Iterable, NodeKeyResolver, ModelTransaction) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| addNodes(String, Collection, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| addProperty(String, Iterable, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setProperty(String, Object, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| createNodeToAddWithPath(NodeAddData, Collection) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| clearProperty(String, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| clearTree(String, NodeKeyResolver) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTreeData() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| valuesNotEmpty(Iterable) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| InMemoryNodeModel() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getInMemoryRepresentation() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getRootNode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getNodeHandler() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getReferenceNodeHandler() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |