| lambda$treeString$9(Object) |   | 0% |   | 0% | 4 | 4 | 15 | 15 | 1 | 1 | 
| lambda$treeString$10(Object) |   | 0% |   | 0% | 6 | 6 | 13 | 13 | 1 | 1 | 
| isValidJoinGroup() |   | 0% |   | 0% | 7 | 7 | 10 | 10 | 1 | 1 | 
| replaceBestPlanProperty(PhysicalProperties, PhysicalProperties, Cost) |   | 0% |  | n/a | 1 | 1 | 7 | 7 | 1 | 1 | 
| getFirstLogicalExpression() |   | 0% |   | 0% | 2 | 2 | 2 | 2 | 1 | 1 | 
| treeString() |   | 0% |  | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 
| clearLogicalExpressions() |   | 0% |  | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 
| clearPhysicalExpressions() |   | 0% |  | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 
| lambda$treeString$12(Object) |   | 0% |   | 0% | 2 | 2 | 3 | 3 | 1 | 1 | 
| getLowestCosts() |   | 0% |  | n/a | 1 | 1 | 3 | 3 | 1 | 1 | 
| lambda$treeString$11(Object) |   | 0% |   | 0% | 2 | 2 | 3 | 3 | 1 | 1 | 
| getAllProperties() |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| removeParentPhysicalExpressions() |   | 0% |  | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 
| mergeTo(Group) |    | 95% |    | 78% | 3 | 8 | 1 | 30 | 0 | 1 | 
| logicalExpressionsAt(int) |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| lambda$removeParentPhysicalExpressions$3(Map.Entry) |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| lambda$getLowestCosts$2(Map.Entry) |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| isProjectGroup() |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| clearLowestCostPlans() |   | 0% |  | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 
| setLogicalProperties(LogicalProperties) |   | 0% |  | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 
| lambda$clearPhysicalExpressions$1(GroupExpression) |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| lambda$clearLogicalExpressions$0(GroupExpression) |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| getChosenProperties() |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| toString() |   | 99% |    | 93% | 1 | 9 | 0 | 40 | 0 | 1 | 
| equals(Object) |   | 91% |    | 66% | 2 | 4 | 1 | 6 | 0 | 1 | 
| getBestPlan(PhysicalProperties) |   | 86% |    | 50% | 1 | 2 | 1 | 3 | 0 | 1 | 
| getCostLowerBound() |  | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| getLogicalExpression() |   | 93% |    | 50% | 1 | 2 | 0 | 2 | 0 | 1 | 
| setChosenGroupExpressionId(int) |   | 92% |    | 50% | 1 | 2 | 0 | 3 | 0 | 1 | 
| Group(GroupId, GroupExpression, LogicalProperties) |   | 100% |  | n/a | 0 | 1 | 0 | 16 | 0 | 1 | 
| Group(GroupId, LogicalProperties) |   | 100% |  | n/a | 0 | 1 | 0 | 15 | 0 | 1 | 
| replaceBestPlanGroupExpr(GroupExpression, GroupExpression) |   | 100% |   | 100% | 0 | 3 | 0 | 11 | 0 | 1 | 
| setBestPlan(GroupExpression, Cost, PhysicalProperties) |   | 100% |   | 100% | 0 | 3 | 0 | 5 | 0 | 1 | 
| lambda$mergeTo$7(Group, PhysicalProperties, Pair) |   | 100% |   | 100% | 0 | 3 | 0 | 6 | 0 | 1 | 
| addGroupExpression(GroupExpression) |   | 100% |   | 100% | 0 | 2 | 0 | 5 | 0 | 1 | 
| removeGroupExpression(GroupExpression) |   | 100% |   | 100% | 0 | 2 | 0 | 5 | 0 | 1 | 
| getLowestCostPlan(PhysicalProperties) |   | 100% |    | 75% | 1 | 3 | 0 | 5 | 0 | 1 | 
| addEnforcer(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| addLogicalExpression(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| addPhysicalExpression(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| removeParentExpression(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| addParentExpression(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| addChosenEnforcerId(int) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| lambda$mergeTo$5(Group, GroupExpression, GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| hashCode() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| addChosenEnforcerProperties(PhysicalProperties) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| getParentGroupExpressions() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$toString$8(GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| setStatsReliable(boolean) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| setStatistics(Statistics) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| setExplored(boolean) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| setChosenProperties(PhysicalProperties) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| lambda$mergeTo$6(Group, GroupExpression, GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$mergeTo$4(Group, GroupExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getGroupId() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| isStatsReliable() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getLogicalExpressions() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getPhysicalExpressions() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getEnforcers() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getStatistics() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getLogicalProperties() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| isExplored() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| getStructInfoMap() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 |