def to_coverage_result(covered_and_uncovered_lines: CoveredAndUncoveredLines, uncovered_ranges: List[CodeRange]) -> lsp.TypeCoverageResult:
    num_covered = len(covered_and_uncovered_lines.covered_lines)
    num_uncovered = len(covered_and_uncovered_lines.uncovered_lines)
    num_total = (num_covered + num_uncovered)
    if (num_total == 0):
        return lsp.TypeCoverageResult(covered_percent=100.0, uncovered_ranges=[], default_message='')
    else:
        return lsp.TypeCoverageResult(covered_percent=((100.0 * num_covered) / num_total), uncovered_ranges=[uncovered_range_to_diagnostic(uncovered_range) for uncovered_range in uncovered_ranges], default_message='Consider adding type annotations.')
def to_coverage_result(covered_and_uncovered_lines: CoveredAndUncoveredLines, uncovered_ranges: List[CodeRange]) -> lsp.TypeCoverageResult:
    num_covered = len(covered_and_uncovered_lines.covered_lines)
    num_uncovered = len(covered_and_uncovered_lines.uncovered_lines)
    num_total = (num_covered + num_uncovered)
    if (num_total == 0):
        return lsp.TypeCoverageResult(covered_percent=100.0, uncovered_ranges=[], default_message=)
    else:
        return lsp.TypeCoverageResult(covered_percent=((100.0 * num_covered) / num_total), uncovered_ranges=[uncovered_range_to_diagnostic(uncovered_range) for uncovered_range in uncovered_ranges], default_message='Consider adding type annotations.')