| validateDefinition(CatalogueOverlayService.OverlayDefinition) |   | 53% |   | 55% | 18 | 21 | 20 | 44 | 0 | 1 |
| applyPatches(Map, CatalogueOverlayService.OverlayDefinition) |   | 61% |   | 60% | 11 | 15 | 15 | 39 | 0 | 1 |
| wireAndValidateHierarchy(Map) |   | 73% |   | 73% | 7 | 14 | 14 | 53 | 0 | 1 |
| readOverlay() |   | 67% |   | 50% | 1 | 2 | 5 | 14 | 0 | 1 |
| validateBaseCatalogue(CatalogueOverlayService.OverlayDefinition, String) |   | 50% |   | 50% | 2 | 3 | 3 | 8 | 0 | 1 |
| validateStrictCoverage(Map, CatalogueOverlayService.OverlayDefinition) |   | 80% |   | 60% | 4 | 6 | 4 | 21 | 0 | 1 |
| validateAnalysisRoles(Map) |   | 74% |   | 50% | 1 | 2 | 2 | 14 | 0 | 1 |
| getOverlayMetadata() |   | 69% |   | 50% | 1 | 2 | 1 | 8 | 0 | 1 |
| applyAndValidate(Map, Map, String) |   | 93% |   | 50% | 2 | 3 | 2 | 28 | 0 | 1 |
| visit(TaxonomyNode, int, Map, Map, Set) |   | 88% |   | 66% | 2 | 4 | 3 | 17 | 0 | 1 |
| lambda$wireAndValidateHierarchy$8(Set, String) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| analysisRole(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| resolveUuidParents(Map, Map) |   | 91% |   | 87% | 1 | 5 | 1 | 9 | 0 | 1 |
| isEnabled() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| abbreviate(String) |   | 84% |   | 50% | 2 | 3 | 0 | 1 | 0 | 1 |
| normalizeRole(String) |   | 81% |   | 50% | 1 | 2 | 0 | 2 | 0 | 1 |
| lambda$validateStrictCoverage$4(Set, String) |   | 75% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| rebuildMetadataIndex(CatalogueOverlayService.OverlayDefinition) |  | 100% |  | 100% | 0 | 2 | 0 | 10 | 0 | 1 |
| loadOverlay() |  | 100% |   | 75% | 1 | 3 | 0 | 8 | 0 | 1 |
| CatalogueOverlayService(ObjectMapper, ResourceLoader, boolean, String) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| getNodeMetadata(String) |  | 100% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| isBlank(String) |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| normalizeWhitespace(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$validateStrictCoverage$3(CatalogueOverlayService.OverlayValidation, TaxonomyNode) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| isProduct(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isProductFamily(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| normalize(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$validateAnalysisRoles$9(Map.Entry) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$wireAndValidateHierarchy$5(TaxonomyNode) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| nullToEmpty(String) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| lambda$validateStrictCoverage$2(CatalogueOverlayService.OverlayValidation, TaxonomyNode) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$wireAndValidateHierarchy$7(List) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$applyAndValidate$1(CatalogueOverlayService.NodeMetadata) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$applyAndValidate$0(CatalogueOverlayService.NodeMetadata) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$wireAndValidateHierarchy$6(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |