Coverage report: 89%

Files Functions Classes

coverage.py v7.13.3, created at 2026-02-08 15:04 -0800

File function   statements missing excluded   coverage
analyzers / __init__.py (no function)   0 0 0   100%
analyzers / common.py analyze_source_generic   47 0 0   100%
analyzers / common.py (no function)   6 0 0   100%
analyzers / go.py analyze_file   1 1 0   0%
analyzers / go.py (no function)   12 0 0   100%
analyzers / python.py analyze_file   1 1 0   0%
analyzers / python.py (no function)   13 0 0   100%
analyzers / shared.py create_analyzer_file_fn   2 2 0   0%
analyzers / shared.py create_analyzer_file_fn.analyze_file   5 5 0   0%
analyzers / shared.py create_analyzer_source_fn   2 0 0   100%
analyzers / shared.py create_analyzer_source_fn.analyze_source   1 0 0   100%
analyzers / shared.py (no function)   5 0 0   100%
analyzers / typescript.py get_tsx_flag   1 1 0   0%
analyzers / typescript.py create_analyze_source_ts   2 0 0   100%
analyzers / typescript.py create_analyze_source_ts.analyze_source   1 0 0   100%
analyzers / typescript.py analyze_file   2 2 0   0%
analyzers / typescript.py (no function)   15 0 0   100%
call_graph / __init__.py (no function)   4 0 0   100%
call_graph / core.py build_call_graph   38 4 0   89%
call_graph / core.py find_call_cycles   7 0 0   100%
call_graph / core.py find_call_cycles.dfs   14 1 0   93%
call_graph / core.py find_unused_functions   6 0 0   100%
call_graph / core.py (no function)   8 0 0   100%
call_graph / formatters.py _filter_internal_calls   1 0 0   100%
call_graph / formatters.py format_dot   35 8 0   77%
call_graph / formatters.py (no function)   4 0 0   100%
call_graph / parsers / __init__.py (no function)   4 0 0   100%
call_graph / parsers / base.py CallGraphParser.extract_function_definitions   1 1 0   0%
call_graph / parsers / base.py CallGraphParser.extract_calls   1 1 0   0%
call_graph / parsers / base.py (no function)   8 0 2   100%
call_graph / parsers / python.py PythonCallParser.extract_function_definitions   43 0 0   100%
call_graph / parsers / python.py PythonCallParser.extract_calls   20 1 0   95%
call_graph / parsers / python.py PythonCallParser._get_caller_info   8 2 0   75%
call_graph / parsers / python.py PythonCallParser._get_func_end_line   5 0 0   100%
call_graph / parsers / python.py PythonCallParser._is_top_level_def   6 1 0   83%
call_graph / parsers / python.py PythonCallParser._get_callee_info   9 4 0   56%
call_graph / parsers / python.py PythonCallParser._get_member_callee   2 2 0   0%
call_graph / parsers / python.py PythonCallParser._get_attribute_callee   9 2 0   78%
call_graph / parsers / python.py PythonCallParser._get_attribute_callee.extract_parts   7 0 0   100%
call_graph / parsers / python.py (no function)   15 0 0   100%
circular_deps / __init__.py (no function)   3 0 0   100%
circular_deps / core.py _detect_language   8 1 0   88%
circular_deps / core.py _get_parser   7 1 0   86%
circular_deps / core.py _get_resolver   10 2 0   80%
circular_deps / core.py _find_common_root   16 3 0   81%
circular_deps / core.py build_dependency_graph   27 6 0   78%
circular_deps / core.py find_cycles   15 0 0   100%
circular_deps / core.py find_cycles.dfs   15 1 0   93%
circular_deps / core.py _extract_cycle_edges   1 0 0   100%
circular_deps / core.py find_cycles_tarjan   29 29 0   0%
circular_deps / core.py find_cycles_tarjan.strongconnect   23 23 0   0%
circular_deps / core.py find_cycles_tarjan.dfs_scc   14 14 0   0%
circular_deps / core.py (no function)   23 0 2   100%
circular_deps / formatter.py format_text   14 1 0   93%
circular_deps / formatter.py format_json   5 0 0   100%
circular_deps / formatter.py (no function)   5 0 2   100%
circular_deps / models.py (no function)   22 0 0   100%
circular_deps / parsers / __init__.py (no function)   4 0 0   100%
circular_deps / parsers / base.py ImportParser.extract_imports   1 1 0   0%
circular_deps / parsers / base.py (no function)   6 0 2   100%
circular_deps / parsers / go.py parse   3 0 0   100%
circular_deps / parsers / go.py GoImportParser.extract_imports   12 0 0   100%
circular_deps / parsers / go.py GoImportParser._process_import_spec   8 0 0   100%
circular_deps / parsers / go.py (no function)   11 0 0   100%
circular_deps / parsers / python.py parse   3 0 0   100%
circular_deps / parsers / python.py PythonImportParser.extract_imports   8 0 0   100%
circular_deps / parsers / python.py PythonImportParser._process_import_statement   18 9 0   50%
circular_deps / parsers / python.py PythonImportParser._process_import_from_statement   21 4 0   81%
circular_deps / parsers / python.py PythonImportParser._filter_dynamic   10 7 0   30%
circular_deps / parsers / python.py PythonImportParser._get_function_name   12 12 0   0%
circular_deps / parsers / python.py (no function)   16 0 0   100%
circular_deps / parsers / typescript.py parse   4 0 0   100%
circular_deps / parsers / typescript.py TypeScriptImportParser.extract_imports   7 0 0   100%
circular_deps / parsers / typescript.py TypeScriptImportParser._process_import_export_statement   7 0 0   100%
circular_deps / parsers / typescript.py TypeScriptImportParser._detect_import_type   3 1 0   67%
circular_deps / parsers / typescript.py TypeScriptImportParser._filter_dynamic   10 7 0   30%
circular_deps / parsers / typescript.py TypeScriptImportParser._is_dynamic_import_call   7 7 0   0%
circular_deps / parsers / typescript.py (no function)   16 0 0   100%
circular_deps / resolvers / __init__.py (no function)   4 0 0   100%
circular_deps / resolvers / base.py PathResolver.resolve   1 1 0   0%
circular_deps / resolvers / base.py (no function)   6 0 2   100%
circular_deps / resolvers / go.py GoPathResolver.resolve   3 0 0   100%
circular_deps / resolvers / go.py GoPathResolver._is_stdlib   4 0 0   100%
circular_deps / resolvers / go.py GoPathResolver._resolve_local   14 1 0   93%
circular_deps / resolvers / go.py GoPathResolver._find_go_file   15 1 0   93%
circular_deps / resolvers / go.py GoPathResolver._check_under_root   5 1 0   80%
circular_deps / resolvers / go.py (no function)   10 0 0   100%
circular_deps / resolvers / python.py PythonPathResolver.resolve   3 1 0   67%
circular_deps / resolvers / python.py PythonPathResolver._resolve_relative   19 19 0   0%
circular_deps / resolvers / python.py PythonPathResolver._resolve_absolute   8 0 0   100%
circular_deps / resolvers / python.py PythonPathResolver._find_py_file   10 4 0   60%
circular_deps / resolvers / python.py PythonPathResolver._check_under_root   5 1 0   80%
circular_deps / resolvers / python.py (no function)   9 0 0   100%
circular_deps / resolvers / tsconfig.py TsconfigParser.find_tsconfig_for_file   14 1 0   93%
circular_deps / resolvers / tsconfig.py TsconfigParser.parse_tsconfig   7 0 0   100%
circular_deps / resolvers / tsconfig.py TsconfigParser.get_module_resolution   11 4 0   64%
circular_deps / resolvers / tsconfig.py (no function)   12 0 0   100%
circular_deps / resolvers / typescript.py TypeScriptPathResolver.__init__   8 1 0   88%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._normalize_module_resolution   3 0 0   100%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._detect_from_tsconfig   8 0 0   100%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._validate_module_resolution   3 1 0   67%
circular_deps / resolvers / typescript.py TypeScriptPathResolver.resolve   5 1 0   80%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_relative   3 0 0   100%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_absolute   8 1 0   88%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_module_path   14 1 0   93%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._has_extension   1 0 0   100%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._strip_extension   4 1 0   75%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_node_with_extension   16 12 0   25%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_node_without_extension   15 1 0   93%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_node16_with_extension   16 6 0   62%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_bundler_with_extension   16 11 0   31%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._resolve_bundler_without_extension   15 6 0   60%
circular_deps / resolvers / typescript.py TypeScriptPathResolver._check_under_root   5 1 0   80%
circular_deps / resolvers / typescript.py (no function)   22 0 0   100%
common.py _halstead_derived   4 0 0   100%
common.py compute_halstead   12 0 0   100%
common.py _compute_loc   1 0 0   100%
common.py _collect_comment_nodes   4 0 0   100%
common.py _compute_sloc   24 8 0   67%
common.py _unwrap_parens   7 1 0   86%
common.py _is_logical_binary   7 0 0   100%
common.py _flatten_boolean_ops   13 1 0   92%
common.py _count_bool_ops   16 0 0   100%
common.py compute_maintainability_index   4 1 0   75%
common.py compute_ldi   4 0 0   100%
common.py _score_boolean_chain   14 0 0   100%
common.py (no function)   16 0 0   100%
dead_code / __init__.py (no function)   0 0 0   100%
dead_code / core.py build_cross_reference_graph   50 50 0   0%
dead_code / core.py _parse_python   2 2 0   0%
dead_code / core.py _parse_typescript   2 2 0   0%
dead_code / core.py _parse_go   2 2 0   0%
dead_code / core.py find_unused_imports   10 10 0   0%
dead_code / core.py find_dead_symbols   28 28 0   0%
dead_code / core.py find_dead_symbols.is_dunder_method   1 1 0   0%
dead_code / core.py find_dead_code   6 6 0   0%
dead_code / core.py (no function)   24 0 2   100%
dead_code / parsers / __init__.py (no function)   0 0 0   100%
dead_code / parsers / base.py DeadCodeParser.__init__   1 0 0   100%
dead_code / parsers / base.py DeadCodeParser.extract_imports   1 1 0   0%
dead_code / parsers / base.py DeadCodeParser.extract_definitions   1 1 0   0%
dead_code / parsers / base.py DeadCodeParser.extract_variable_definitions   1 1 0   0%
dead_code / parsers / base.py DeadCodeParser.extract_references   1 1 0   0%
dead_code / parsers / base.py DeadCodeParser.extract_scope_references   1 1 0   0%
dead_code / parsers / base.py (no function)   38 0 2   100%
dead_code / parsers / go.py GoDeadCodeParser.extract_imports   6 0 0   100%
dead_code / parsers / go.py GoDeadCodeParser._process_import_declaration   7 0 0   100%
dead_code / parsers / go.py GoDeadCodeParser._process_import_spec_list   3 0 0   100%
dead_code / parsers / go.py GoDeadCodeParser._process_import_spec   15 0 0   100%
dead_code / parsers / go.py GoDeadCodeParser.extract_definitions   37 4 0   89%
dead_code / parsers / go.py GoDeadCodeParser.extract_abstract_info   1 1 0   0%
dead_code / parsers / go.py GoDeadCodeParser.extract_variable_definitions   15 15 0   0%
dead_code / parsers / go.py GoDeadCodeParser.extract_references   7 0 0   100%
dead_code / parsers / go.py GoDeadCodeParser.extract_scope_references   13 13 0   0%
dead_code / parsers / go.py GoDeadCodeParser._find_enclosing_scope   8 8 0   0%
dead_code / parsers / go.py GoDeadCodeParser.is_exported   1 0 0   100%
dead_code / parsers / go.py (no function)   17 0 0   100%
dead_code / parsers / python.py PythonDeadCodeParser.extract_imports   16 0 0   100%
dead_code / parsers / python.py PythonDeadCodeParser.extract_definitions   11 0 0   100%
dead_code / parsers / python.py PythonDeadCodeParser.extract_abstract_info   38 38 0   0%
dead_code / parsers / python.py PythonDeadCodeParser.extract_variable_definitions   1 1 0   0%
dead_code / parsers / python.py PythonDeadCodeParser.extract_references   8 0 0   100%
dead_code / parsers / python.py PythonDeadCodeParser.extract_scope_references   1 1 0   0%
dead_code / parsers / python.py (no function)   12 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_imports   7 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser._process_import_statement   8 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser._process_import_clause   9 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser._process_named_imports   7 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser._process_namespace_import   5 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_definitions   66 16 0   76%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_abstract_info   23 4 0   83%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_variable_definitions   15 15 0   0%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_references   8 0 0   100%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.extract_scope_references   14 14 0   0%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser._find_enclosing_scope   6 6 0   0%
dead_code / parsers / typescript.py TypeScriptDeadCodeParser.is_exported   6 0 0   100%
dead_code / parsers / typescript.py (no function)   18 0 0   100%
fmt.py _colorize   3 0 0   100%
fmt.py header   1 0 0   100%
fmt.py label   1 0 0   100%
fmt.py num   1 0 0   100%
fmt.py path   1 0 0   100%
fmt.py func_name   1 0 0   100%
fmt.py warn   1 1 0   0%
fmt.py dim   1 1 0   0%
fmt.py fmt_int   1 0 0   100%
fmt.py fmt_float   1 0 0   100%
fmt.py fmt_number   5 0 0   100%
fmt.py colored_num   1 0 0   100%
fmt.py colored_float   1 0 0   100%
fmt.py colored_int   1 0 0   100%
fmt.py rpad   18 12 0   33%
fmt.py fmt_compact   11 0 0   100%
fmt.py colored_compact   1 1 0   0%
fmt.py (no function)   30 0 0   100%
metrics / __init__.py (no function)   0 0 0   100%
metrics / cognitive / __init__.py (no function)   0 0 0   100%
metrics / cognitive / common.py compute_cognitive   1 0 0   100%
metrics / cognitive / common.py make_compute_cognitive   1 0 0   100%
metrics / cognitive / common.py (no function)   4 0 0   100%
metrics / cognitive / go.py _walk   22 3 0   86%
metrics / cognitive / go.py _walk_if   21 2 0   90%
metrics / cognitive / go.py _walk_non_boolean   11 3 0   73%
metrics / cognitive / go.py _check_recursion   6 1 0   83%
metrics / cognitive / go.py (no function)   11 0 0   100%
metrics / cognitive / python.py _flatten_boolean_ops   12 1 0   92%
metrics / cognitive / python.py _walk   23 0 0   100%
metrics / cognitive / python.py _walk_if   18 2 0   89%
metrics / cognitive / python.py _walk_non_boolean   15 6 0   60%
metrics / cognitive / python.py _check_recursion   8 1 0   88%
metrics / cognitive / python.py (no function)   12 0 0   100%
metrics / cognitive / typescript.py _is_skip_container   5 1 0   80%
metrics / cognitive / typescript.py _walk   22 0 0   100%
metrics / cognitive / typescript.py _walk_if_else   4 0 0   100%
metrics / cognitive / typescript.py _walk_if   13 1 0   92%
metrics / cognitive / typescript.py _walk_non_boolean   15 6 0   60%
metrics / cognitive / typescript.py _check_recursion   8 1 0   88%
metrics / cognitive / typescript.py (no function)   12 0 0   100%
metrics / cyclomatic / __init__.py (no function)   0 0 0   100%
metrics / cyclomatic / go.py _go_skip_check   5 1 0   80%
metrics / cyclomatic / go.py (no function)   8 0 0   100%
metrics / cyclomatic / python.py _py_skip_check   7 2 0   71%
metrics / cyclomatic / python.py (no function)   6 0 0   100%
metrics / cyclomatic / shared.py create_cyclomatic_computer   2 0 0   100%
metrics / cyclomatic / shared.py create_cyclomatic_computer._count_decisions   10 0 0   100%
metrics / cyclomatic / shared.py create_cyclomatic_wrapper   2 0 0   100%
metrics / cyclomatic / shared.py create_cyclomatic_wrapper.compute_cyclomatic   1 0 0   100%
metrics / cyclomatic / shared.py (no function)   3 0 0   100%
metrics / cyclomatic / typescript.py _ts_skip_check   3 0 0   100%
metrics / cyclomatic / typescript.py (no function)   8 0 0   100%
metrics / dtd / __init__.py (no function)   0 0 0   100%
metrics / dtd / go.py compute_dtd_go   7 4 0   43%
metrics / dtd / go.py _is_map_call_go   8 1 0   88%
metrics / dtd / go.py _dtd_walk_go   16 1 0   94%
metrics / dtd / go.py (no function)   8 0 0   100%
metrics / dtd / python.py compute_dtd_py   4 1 0   75%
metrics / dtd / python.py _is_map_call_py   12 2 0   83%
metrics / dtd / python.py _dtd_walk_py   21 0 0   100%
metrics / dtd / python.py (no function)   8 0 0   100%
metrics / dtd / typescript.py compute_dtd_ts   8 1 0   88%
metrics / dtd / typescript.py _is_template_container   3 1 0   67%
metrics / dtd / typescript.py _is_map_call_ts   10 1 0   90%
metrics / dtd / typescript.py _dtd_is_nested_func   5 0 0   100%
metrics / dtd / typescript.py _dtd_increases_depth   7 1 0   86%
metrics / dtd / typescript.py _dtd_is_payload   5 1 0   80%
metrics / dtd / typescript.py _dtd_walk_ts   18 0 0   100%
metrics / dtd / typescript.py (no function)   13 0 0   100%
metrics / duplication / __init__.py (no function)   0 0 0   100%
metrics / duplication / config.py (no function)   10 0 0   100%
metrics / duplication / core.py _is_docstring   4 0 0   100%
metrics / duplication / core.py _collect_named_leaves   9 0 0   100%
metrics / duplication / core.py _collect_body_leaves   8 0 0   100%
metrics / duplication / core.py compute_type1_hash   5 0 0   100%
metrics / duplication / core.py compute_type2_hash   15 0 0   100%
metrics / duplication / core.py count_statements   17 1 0   94%
metrics / duplication / core.py find_duplicates   28 0 0   100%
metrics / duplication / core.py (no function)   14 0 0   100%
metrics / halstead / __init__.py (no function)   0 0 0   100%
metrics / halstead / common.py _collect_halstead_generic   16 0 0   100%
metrics / halstead / common.py compute_halstead_generic   4 0 0   100%
metrics / halstead / common.py make_compute_halstead   1 0 0   100%
metrics / halstead / common.py (no function)   7 0 0   100%
metrics / halstead / go.py (no function)   7 0 0   100%
metrics / halstead / python.py (no function)   7 0 0   100%
metrics / halstead / typescript.py (no function)   7 0 0   100%
metrics / lloc / __init__.py (no function)   0 0 0   100%
metrics / lloc / go.py count_lloc   10 0 0   100%
metrics / lloc / go.py (no function)   3 0 0   100%
metrics / lloc / python.py count_lloc   6 0 0   100%
metrics / lloc / python.py (no function)   3 0 0   100%
metrics / lloc / typescript.py count_lloc   9 0 0   100%
metrics / lloc / typescript.py (no function)   3 0 0   100%
metrics / npath / __init__.py (no function)   0 0 0   100%
metrics / npath / go.py compute_npath_go   7 4 0   43%
metrics / npath / go.py _npath_block_go   8 0 0   100%
metrics / npath / go.py _npath_stmt_go   19 5 0   74%
metrics / npath / go.py _npath_if_go   18 0 0   100%
metrics / npath / go.py _npath_loop_go   9 1 0   89%
metrics / npath / go.py _npath_switch_go   25 2 0   92%
metrics / npath / go.py _npath_select_go   25 2 0   92%
metrics / npath / go.py _npath_expr_go   10 0 0   100%
metrics / npath / go.py (no function)   11 0 0   100%
metrics / npath / python.py _count_bool_ops_py   6 0 0   100%
metrics / npath / python.py compute_npath_py   4 1 0   75%
metrics / npath / python.py _npath_block_py   4 0 0   100%
metrics / npath / python.py _npath_stmt_py   24 4 0   83%
metrics / npath / python.py _npath_if_py   23 0 0   100%
metrics / npath / python.py _npath_elif_py   8 0 0   100%
metrics / npath / python.py _npath_loop_py   20 0 0   100%
metrics / npath / python.py _npath_try_py   13 3 0   77%
metrics / npath / python.py _npath_match_py   17 0 0   100%
metrics / npath / python.py _npath_ternary_py   10 1 0   90%
metrics / npath / python.py _npath_expr_py   17 3 0   82%
metrics / npath / python.py (no function)   12 0 0   100%
metrics / npath / typescript.py compute_npath_ts   8 1 0   88%
metrics / npath / typescript.py _npath_block_ts   6 0 0   100%
metrics / npath / typescript.py _npath_stmt_ts   25 6 0   76%
metrics / npath / typescript.py _npath_if_condition_ops   7 0 0   100%
metrics / npath / typescript.py _npath_if_body   4 1 0   75%
metrics / npath / typescript.py _npath_else_clause   6 1 0   83%
metrics / npath / typescript.py _npath_if_ts   9 0 0   100%
metrics / npath / typescript.py _npath_loop_ts   12 0 0   100%
metrics / npath / typescript.py _npath_do_while_ts   13 0 0   100%
metrics / npath / typescript.py _npath_try_ts   13 3 0   77%
metrics / npath / typescript.py _npath_switch_ts   25 2 0   92%
metrics / npath / typescript.py _npath_ternary_ts   10 1 0   90%
metrics / npath / typescript.py _npath_expr_ts   14 1 0   93%
metrics / npath / typescript.py (no function)   15 0 0   100%
models.py FileComplexity.total   1 0 0   100%
models.py (no function)   82 0 0   100%
parsers / __init__.py (no function)   0 0 0   100%
parsers / common.py parse_with_language   3 0 0   100%
parsers / common.py (no function)   3 0 0   100%
parsers / go.py _collect_functions_recursive   7 0 0   100%
parsers / go.py is_named_func_literal   10 3 0   70%
parsers / go.py func_name   25 11 0   56%
parsers / go.py (no function)   11 0 0   100%
parsers / python.py _collect_functions_recursive   4 0 0   100%
parsers / python.py func_name   4 1 0   75%
parsers / python.py (no function)   10 0 0   100%
parsers / shared.py create_parse   2 0 0   100%
parsers / shared.py create_parse.parse   1 0 0   100%
parsers / shared.py create_collect_functions   2 0 0   100%
parsers / shared.py create_collect_functions.collect_functions   3 0 0   100%
parsers / shared.py (no function)   4 0 0   100%
parsers / typescript.py parse   2 0 0   100%
parsers / typescript.py _collect_functions_recursive   8 0 0   100%
parsers / typescript.py func_name   15 3 0   80%
parsers / typescript.py (no function)   11 0 0   100%
patterns / __init__.py check_patterns   7 7 0   0%
patterns / __init__.py (no function)   3 0 0   100%
patterns / common.py create_query   5 0 0   100%
patterns / common.py run_captures   9 0 0   100%
patterns / common.py (no function)   4 0 2   100%
patterns / python.py _is_type_checking_import   12 5 1   58%
patterns / python.py check_nested_imports   10 1 0   90%
patterns / python.py check_wildcard_imports   9 0 0   100%
patterns / python.py check_patterns   1 0 0   100%
patterns / python.py (no function)   10 0 0   100%
patterns / shared.py check_patterns   14 6 0   57%
patterns / shared.py (no function)   3 0 2   100%
perf.py time_block   4 0 0   100%
perf.py create_timing_manager   1 0 0   100%
perf.py compute_stats   3 3 0   0%
perf.py get_timing_summary   5 5 0   0%
perf.py (no function)   10 0 0   100%
tests / test_call_graph / __init__.py (no function)   0 0 0   100%
tests / test_call_graph / test_cycles.py test_recursive_cycle   8 0 0   100%
tests / test_call_graph / test_cycles.py test_mutual_recursion   8 0 0   100%
tests / test_call_graph / test_cycles.py test_no_cycle   8 0 0   100%
tests / test_call_graph / test_cycles.py (no function)   7 0 0   100%
tests / test_call_graph / test_formatters.py test_format_dot   11 0 0   100%
tests / test_call_graph / test_formatters.py test_format_dot_filters_external   10 0 0   100%
tests / test_call_graph / test_formatters.py (no function)   7 0 0   100%
tests / test_call_graph / test_parser.py test_extract_function_definitions   16 0 0   100%
tests / test_call_graph / test_parser.py test_extract_simple_calls   12 0 0   100%
tests / test_call_graph / test_parser.py test_extract_method_calls   9 0 0   100%
tests / test_call_graph / test_parser.py test_extract_external_calls   8 0 0   100%
tests / test_call_graph / test_parser.py (no function)   8 0 0   100%
tests / test_call_graph / test_resolution.py test_local_call_resolution   11 0 0   100%
tests / test_call_graph / test_resolution.py test_external_call_resolution   11 0 0   100%
tests / test_call_graph / test_resolution.py test_method_call_resolution   10 0 0   100%
tests / test_call_graph / test_resolution.py (no function)   8 0 0   100%
tests / test_call_graph / test_unused.py test_entry_point_unused   10 0 0   100%
tests / test_call_graph / test_unused.py test_mutual_cycle_both_used   8 0 0   100%
tests / test_call_graph / test_unused.py test_private_filtered   11 0 0   100%
tests / test_call_graph / test_unused.py test_chained_usage   11 0 0   100%
tests / test_call_graph / test_unused.py test_unused_function_detection   11 0 0   100%
tests / test_call_graph / test_unused.py test_caller_is_unused   10 0 0   100%
tests / test_call_graph / test_unused.py (no function)   10 0 0   100%
tests / test_circular_deps / test_core.py test_python_parser_extract_import   7 0 0   100%
tests / test_circular_deps / test_core.py test_cycle_detection_simple   14 0 0   100%
tests / test_circular_deps / test_core.py test_format_text   5 0 0   100%
tests / test_circular_deps / test_core.py test_format_json   5 0 0   100%
tests / test_circular_deps / test_core.py test_no_cycles_linear_chain   14 0 0   100%
tests / test_circular_deps / test_core.py test_transitive_cycle_three_files   15 0 0   100%
tests / test_circular_deps / test_core.py test_cycle_detection_in_src_subdirectory   20 0 0   100%
tests / test_circular_deps / test_core.py test_cycle_nested_to_root   16 0 0   100%
tests / test_circular_deps / test_core.py (no function)   16 0 0   100%
tests / test_circular_deps / test_go.py test_go_parser_extract_import   7 0 0   100%
tests / test_circular_deps / test_go.py test_go_stdlib_filtering   16 0 0   100%
tests / test_circular_deps / test_go.py test_go_cycle_detection_simple   12 0 0   100%
tests / test_circular_deps / test_go.py test_go_resolver_package_resolution   15 0 0   100%
tests / test_circular_deps / test_go.py test_go_resolver_finds_go_file   15 0 0   100%
tests / test_circular_deps / test_go.py test_go_cycle_detection_in_src_subdirectory   18 0 0   100%
tests / test_circular_deps / test_go.py test_go_cycle_transitive_three_files   19 0 0   100%
tests / test_circular_deps / test_go.py test_go_cycle_nested_to_root   13 0 0   100%
tests / test_circular_deps / test_go.py test_go_no_cycles_linear_chain   18 0 0   100%
tests / test_circular_deps / test_go.py (no function)   19 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_parser_extract_import   8 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_cycle_detection_simple   12 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_relative_imports   21 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_index_precedence   17 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_no_external_imports   6 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_cycle_detection_in_src_subdirectory   17 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_auto_discovery_from_tsconfig   10 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_auto_discovery_no_tsconfig   8 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_cli_overrides_tsconfig   10 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_invalid_tsconfig   10 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_node_mode_with_extension   15 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_node_mode_without_extension   17 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_node16_mode_with_extension   15 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_node16_mode_without_extension   11 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_bundler_mode   21 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_resolver_closest_tsconfig   17 0 0   100%
tests / test_circular_deps / test_typescript.py test_typescript_cycle_nested_to_root   15 0 0   100%
tests / test_circular_deps / test_typescript.py (no function)   27 0 0   100%
tests / test_cognitive / __init__.py (no function)   0 0 0   100%
tests / test_cognitive / test_go.py _score   3 0 0   100%
tests / test_cognitive / test_go.py _scores   2 0 0   100%
tests / test_cognitive / test_go.py test_empty_function   2 0 0   100%
tests / test_cognitive / test_go.py test_single_if   2 0 0   100%
tests / test_cognitive / test_go.py test_if_else   2 0 0   100%
tests / test_cognitive / test_go.py test_if_else_if_else   2 0 0   100%
tests / test_cognitive / test_go.py test_for_c_style   2 0 0   100%
tests / test_cognitive / test_go.py test_for_range   2 0 0   100%
tests / test_cognitive / test_go.py test_for_as_while   2 0 0   100%
tests / test_cognitive / test_go.py test_infinite_for   2 0 0   100%
tests / test_cognitive / test_go.py test_nested_if   2 0 0   100%
tests / test_cognitive / test_go.py test_deeply_nested   2 0 0   100%
tests / test_cognitive / test_go.py test_if_else_nesting   2 0 0   100%
tests / test_cognitive / test_go.py test_expression_switch   2 0 0   100%
tests / test_cognitive / test_go.py test_type_switch   2 0 0   100%
tests / test_cognitive / test_go.py test_select_statement   2 0 0   100%
tests / test_cognitive / test_go.py test_switch_nested_in_if   2 0 0   100%
tests / test_cognitive / test_go.py test_single_and   2 0 0   100%
tests / test_cognitive / test_go.py test_chained_same_op   2 0 0   100%
tests / test_cognitive / test_go.py test_mixed_boolean   2 0 0   100%
tests / test_cognitive / test_go.py test_complex_boolean   2 0 0   100%
tests / test_cognitive / test_go.py test_recursion   2 0 0   100%
tests / test_cognitive / test_go.py test_no_false_recursion   2 0 0   100%
tests / test_cognitive / test_go.py test_nested_function_separate_scoring   4 0 0   100%
tests / test_cognitive / test_go.py test_inline_func_literal_increases_nesting   2 0 0   100%
tests / test_cognitive / test_go.py test_named_func_literal_scored_separately   4 0 0   100%
tests / test_cognitive / test_go.py test_method_declaration   3 0 0   100%
tests / test_cognitive / test_go.py test_go_statement_no_increment   2 0 0   100%
tests / test_cognitive / test_go.py test_defer_no_increment   2 0 0   100%
tests / test_cognitive / test_go.py test_error_handling_pattern   2 0 0   100%
tests / test_cognitive / test_go.py test_if_with_initializer   2 0 0   100%
tests / test_cognitive / test_go.py test_comprehensive   2 0 0   100%
tests / test_cognitive / test_go.py test_not_operator_no_increment   2 0 0   100%
tests / test_cognitive / test_go.py test_multiple_return_values   2 0 0   100%
tests / test_cognitive / test_go.py (no function)   35 0 0   100%
tests / test_cognitive / test_python.py _score   3 0 0   100%
tests / test_cognitive / test_python.py _scores   2 0 0   100%
tests / test_cognitive / test_python.py test_simple_function   1 0 0   100%
tests / test_cognitive / test_python.py test_single_if   2 0 0   100%
tests / test_cognitive / test_python.py test_if_else   2 0 0   100%
tests / test_cognitive / test_python.py test_if_elif_else   2 0 0   100%
tests / test_cognitive / test_python.py test_for_loop   2 0 0   100%
tests / test_cognitive / test_python.py test_while_loop   2 0 0   100%
tests / test_cognitive / test_python.py test_nested_if   2 0 0   100%
tests / test_cognitive / test_python.py test_deeply_nested   2 0 0   100%
tests / test_cognitive / test_python.py test_if_else_nesting   2 0 0   100%
tests / test_cognitive / test_python.py test_try_except   2 0 0   100%
tests / test_cognitive / test_python.py test_try_except_nested   2 0 0   100%
tests / test_cognitive / test_python.py test_single_and   2 0 0   100%
tests / test_cognitive / test_python.py test_chained_same_op   2 0 0   100%
tests / test_cognitive / test_python.py test_mixed_boolean   2 0 0   100%
tests / test_cognitive / test_python.py test_complex_boolean   2 0 0   100%
tests / test_cognitive / test_python.py test_ternary   2 0 0   100%
tests / test_cognitive / test_python.py test_ternary_nested   2 0 0   100%
tests / test_cognitive / test_python.py test_recursion   2 0 0   100%
tests / test_cognitive / test_python.py test_no_false_recursion   2 0 0   100%
tests / test_cognitive / test_python.py test_nested_function_separate_scoring   4 0 0   100%
tests / test_cognitive / test_python.py test_nested_function_nesting_reset   4 0 0   100%
tests / test_cognitive / test_python.py test_lambda_nesting   2 0 0   100%
tests / test_cognitive / test_python.py test_comprehensive   2 0 0   100%
tests / test_cognitive / test_python.py test_file_total   4 0 0   100%
tests / test_cognitive / test_python.py test_function_lines   6 0 0   100%
tests / test_cognitive / test_python.py test_empty_function   1 0 0   100%
tests / test_cognitive / test_python.py test_not_operator_no_increment   2 0 0   100%
tests / test_cognitive / test_python.py (no function)   30 0 0   100%
tests / test_cognitive / test_typescript.py _score   3 0 0   100%
tests / test_cognitive / test_typescript.py _scores   2 0 0   100%
tests / test_cognitive / test_typescript.py test_empty_function   1 0 0   100%
tests / test_cognitive / test_typescript.py test_single_if   2 0 0   100%
tests / test_cognitive / test_typescript.py test_if_else   2 0 0   100%
tests / test_cognitive / test_typescript.py test_if_else_if_else   2 0 0   100%
tests / test_cognitive / test_typescript.py test_for_loop   2 0 0   100%
tests / test_cognitive / test_typescript.py test_for_in_loop   2 0 0   100%
tests / test_cognitive / test_typescript.py test_while_loop   2 0 0   100%
tests / test_cognitive / test_typescript.py test_do_while_loop   2 0 0   100%
tests / test_cognitive / test_typescript.py test_nested_if   2 0 0   100%
tests / test_cognitive / test_typescript.py test_deeply_nested   2 0 0   100%
tests / test_cognitive / test_typescript.py test_if_else_nesting   2 0 0   100%
tests / test_cognitive / test_typescript.py test_try_catch   2 0 0   100%
tests / test_cognitive / test_typescript.py test_try_catch_nested   2 0 0   100%
tests / test_cognitive / test_typescript.py test_single_and   2 0 0   100%
tests / test_cognitive / test_typescript.py test_chained_same_op   2 0 0   100%
tests / test_cognitive / test_typescript.py test_mixed_boolean   2 0 0   100%
tests / test_cognitive / test_typescript.py test_complex_boolean   2 0 0   100%
tests / test_cognitive / test_typescript.py test_ternary   2 0 0   100%
tests / test_cognitive / test_typescript.py test_ternary_nested_in_if   2 0 0   100%
tests / test_cognitive / test_typescript.py test_recursion   2 0 0   100%
tests / test_cognitive / test_typescript.py test_no_false_recursion   2 0 0   100%
tests / test_cognitive / test_typescript.py test_nested_function_separate_scoring   4 0 0   100%
tests / test_cognitive / test_typescript.py test_nested_function_nesting_reset   4 0 0   100%
tests / test_cognitive / test_typescript.py test_inline_arrow_increases_nesting   2 0 0   100%
tests / test_cognitive / test_typescript.py test_named_arrow_scored_separately   4 0 0   100%
tests / test_cognitive / test_typescript.py test_switch_statement   2 0 0   100%
tests / test_cognitive / test_typescript.py test_method_definition   3 0 0   100%
tests / test_cognitive / test_typescript.py test_comprehensive   2 0 0   100%
tests / test_cognitive / test_typescript.py test_not_operator_no_increment   2 0 0   100%
tests / test_cognitive / test_typescript.py test_async_function   2 0 0   100%
tests / test_cognitive / test_typescript.py test_generator_function   2 0 0   100%
tests / test_cognitive / test_typescript.py (no function)   34 0 0   100%
tests / test_common.py test_known_input   19 0 0   100%
tests / test_common.py test_empty_inputs   12 0 0   100%
tests / test_common.py test_zero_operands_guard   10 0 0   100%
tests / test_common.py test_zero_operators_guard   9 0 0   100%
tests / test_common.py test_effort_equals_d_times_v   4 0 0   100%
tests / test_common.py test_time_equals_effort_over_18   4 0 0   100%
tests / test_common.py test_dataclass_defaults   4 0 0   100%
tests / test_common.py test_single_operator_single_operand   7 0 0   100%
tests / test_common.py test_ldi_basic   2 0 0   100%
tests / test_common.py test_ldi_within_range   3 0 0   100%
tests / test_common.py test_ldi_zero_volume   2 0 0   100%
tests / test_common.py test_ldi_formula_components   2 0 0   100%
tests / test_common.py test_ldi_known_input   4 0 0   100%
tests / test_common.py (no function)   16 0 0   100%
tests / test_dead_code_core.py test_extract_imports   9 0 0   100%
tests / test_dead_code_core.py test_extract_definitions   8 0 0   100%
tests / test_dead_code_core.py test_extract_references   9 0 0   100%
tests / test_dead_code_core.py test_unused_import   8 0 0   100%
tests / test_dead_code_core.py (no function)   8 0 0   100%
tests / test_dead_code_go.py test_unused_imports_basic   7 0 0   100%
tests / test_dead_code_go.py test_blank_identifier_imports_skipped   7 0 0   100%
tests / test_dead_code_go.py test_dot_imports_skipped   6 0 0   100%
tests / test_dead_code_go.py test_extract_definitions   8 0 0   100%
tests / test_dead_code_go.py test_extract_method_definitions   6 0 0   100%
tests / test_dead_code_go.py test_unused_short_var_declarations   7 0 0   100%
tests / test_dead_code_go.py test_variables_in_loops   6 0 0   100%
tests / test_dead_code_go.py test_exported_symbols_detection   3 0 0   100%
tests / test_dead_code_go.py test_extract_references   8 0 0   100%
tests / test_dead_code_go.py test_dead_functions_cross_reference   11 0 0   100%
tests / test_dead_code_go.py test_interface_method_implementations   6 0 0   100%
tests / test_dead_code_go.py test_unused_import_detection_with_cross_ref   9 0 0   100%
tests / test_dead_code_go.py (no function)   17 0 0   100%
tests / test_dead_code_typescript.py test_unused_named_imports   7 0 0   100%
tests / test_dead_code_typescript.py test_unused_namespace_imports   7 0 0   100%
tests / test_dead_code_typescript.py test_unused_default_imports   7 0 0   100%
tests / test_dead_code_typescript.py test_type_only_imports_skipped   6 0 0   100%
tests / test_dead_code_typescript.py test_dead_function_declarations   8 0 0   100%
tests / test_dead_code_typescript.py test_dead_arrow_functions   8 0 0   100%
tests / test_dead_code_typescript.py test_dead_classes   8 0 0   100%
tests / test_dead_code_typescript.py test_exported_functions_not_flagged   8 0 0   100%
tests / test_dead_code_typescript.py test_extract_method_definitions   7 0 0   100%
tests / test_dead_code_typescript.py test_unused_local_variables   7 0 0   100%
tests / test_dead_code_typescript.py test_variables_used_in_nested_blocks   7 0 0   100%
tests / test_dead_code_typescript.py test_shadowing_separate_tracking   6 0 0   100%
tests / test_dead_code_typescript.py test_class_implementing_interface   6 0 0   100%
tests / test_dead_code_typescript.py test_react_component_pattern   10 1 0   90%
tests / test_dead_code_typescript.py test_extract_references   9 0 0   100%
tests / test_dead_code_typescript.py test_abstract_class_detection   6 0 0   100%
tests / test_dead_code_typescript.py test_dead_function_with_export   7 0 0   100%
tests / test_dead_code_typescript.py test_default_parameters   8 0 0   100%
tests / test_dead_code_typescript.py test_for_loop_variables   6 0 0   100%
tests / test_dead_code_typescript.py test_cross_file_dead_code_detection   7 0 0   100%
tests / test_dead_code_typescript.py (no function)   25 0 0   100%
tests / test_dtd / __init__.py (no function)   0 0 0   100%
tests / test_dtd / test_go.py _dtd   3 0 0   100%
tests / test_dtd / test_go.py _dtds   2 0 0   100%
tests / test_dtd / test_go.py test_empty_function   2 0 0   100%
tests / test_dtd / test_go.py test_struct_literal   2 0 0   100%
tests / test_dtd / test_go.py test_slice_literal   2 0 0   100%
tests / test_dtd / test_go.py test_map_literal   2 0 0   100%
tests / test_dtd / test_go.py test_nested_composite   2 0 0   100%
tests / test_dtd / test_go.py test_nested_named_closure   4 0 0   100%
tests / test_dtd / test_go.py (no function)   9 0 0   100%
tests / test_dtd / test_python.py _dtd   3 0 0   100%
tests / test_dtd / test_python.py _dtds   2 0 0   100%
tests / test_dtd / test_python.py test_empty_function   1 0 0   100%
tests / test_dtd / test_python.py test_no_data_structures   2 0 0   100%
tests / test_dtd / test_python.py test_flat_dict   2 0 0   100%
tests / test_dtd / test_python.py test_flat_list   2 0 0   100%
tests / test_dtd / test_python.py test_nested_dict_in_list   2 0 0   100%
tests / test_dtd / test_python.py test_deeply_nested   2 0 0   100%
tests / test_dtd / test_python.py test_nested_function_skipped   4 0 0   100%
tests / test_dtd / test_python.py test_dict_comprehension   2 0 0   100%
tests / test_dtd / test_python.py test_list_comprehension   2 0 0   100%
tests / test_dtd / test_python.py (no function)   12 0 0   100%
tests / test_dtd / test_typescript.py _dtd   3 0 0   100%
tests / test_dtd / test_typescript.py _dtds   2 0 0   100%
tests / test_dtd / test_typescript.py test_empty_function   1 0 0   100%
tests / test_dtd / test_typescript.py test_flat_object   2 0 0   100%
tests / test_dtd / test_typescript.py test_flat_array   2 0 0   100%
tests / test_dtd / test_typescript.py test_nested_object_in_array   2 0 0   100%
tests / test_dtd / test_typescript.py test_deeply_nested   2 0 0   100%
tests / test_dtd / test_typescript.py test_map_call   2 0 0   100%
tests / test_dtd / test_typescript.py test_shorthand_property   2 0 0   100%
tests / test_dtd / test_typescript.py test_arrow_expression_body   2 0 0   100%
tests / test_dtd / test_typescript.py test_nested_named_arrow   4 0 0   100%
tests / test_dtd / test_typescript.py (no function)   12 0 0   100%
tests / test_duplication / __init__.py (no function)   0 0 0   100%
tests / test_duplication / test_core.py _py_hashes   4 0 0   100%
tests / test_duplication / test_core.py test_py_identical_functions_same_type1   5 0 0   100%
tests / test_duplication / test_core.py test_py_comments_ignored_type1   6 0 0   100%
tests / test_duplication / test_core.py test_py_different_names_different_type1   6 0 0   100%
tests / test_duplication / test_core.py test_py_docstrings_ignored_type1   6 0 0   100%
tests / test_duplication / test_core.py test_py_docstrings_ignored_type2   6 0 0   100%
tests / test_duplication / test_core.py test_py_comments_ignored_type2   6 0 0   100%
tests / test_duplication / test_core.py test_py_renamed_identifiers_same_type2   6 0 0   100%
tests / test_duplication / test_core.py test_py_different_literals_same_type2   6 0 0   100%
tests / test_duplication / test_core.py test_py_structurally_different_functions   6 0 0   100%
tests / test_duplication / test_core.py test_py_trivial_function_returns_none   4 0 0   100%
tests / test_duplication / test_core.py _ts_hashes   4 0 0   100%
tests / test_duplication / test_core.py test_ts_identical_functions_same_type1   5 0 0   100%
tests / test_duplication / test_core.py test_ts_renamed_identifiers_same_type2   7 0 0   100%
tests / test_duplication / test_core.py test_ts_different_literals_same_type2   6 0 0   100%
tests / test_duplication / test_core.py test_ts_trivial_function_returns_none   4 0 0   100%
tests / test_duplication / test_core.py _go_hashes   4 0 0   100%
tests / test_duplication / test_core.py test_go_identical_functions_same_type1   5 0 0   100%
tests / test_duplication / test_core.py test_go_renamed_identifiers_same_type2   7 0 0   100%
tests / test_duplication / test_core.py test_go_different_literals_same_type2   6 0 0   100%
tests / test_duplication / test_core.py test_go_trivial_function_returns_none   4 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_groups_type1   7 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_groups_type2_only   9 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_type1_suppresses_type2   8 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_no_clusters_for_unique   5 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_type2_excludes_1_liners   6 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_type2_detects_2_liners   7 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_type2_excludes_multi_line_single_statement   6 0 0   100%
tests / test_duplication / test_core.py test_go_statement_counting   7 0 0   100%
tests / test_duplication / test_core.py test_ts_statement_counting   7 0 0   100%
tests / test_duplication / test_core.py test_find_duplicates_cross_file   11 0 0   100%
tests / test_duplication / test_core.py (no function)   35 0 0   100%
tests / test_fmt.py TestFmtInt.test_small_number   1 0 0   100%
tests / test_fmt.py TestFmtInt.test_thousands   1 0 0   100%
tests / test_fmt.py TestFmtInt.test_millions   1 0 0   100%
tests / test_fmt.py TestFmtInt.test_zero   1 0 0   100%
tests / test_fmt.py TestFmtInt.test_float_input   1 0 0   100%
tests / test_fmt.py TestFmtFloat.test_rounds_to_two   1 0 0   100%
tests / test_fmt.py TestFmtFloat.test_large_float   1 0 0   100%
tests / test_fmt.py TestFmtFloat.test_zero   1 0 0   100%
tests / test_fmt.py TestFmtFloat.test_custom_decimals   1 0 0   100%
tests / test_fmt.py TestFmtNumber.test_int   1 0 0   100%
tests / test_fmt.py TestFmtNumber.test_int_large   1 0 0   100%
tests / test_fmt.py TestFmtNumber.test_float_whole   1 0 0   100%
tests / test_fmt.py TestFmtNumber.test_float_fractional   1 0 0   100%
tests / test_fmt.py TestColorDisabled.test_header_plain   2 0 0   100%
tests / test_fmt.py TestColorDisabled.test_label_plain   2 0 0   100%
tests / test_fmt.py TestColorDisabled.test_num_plain   2 0 0   100%
tests / test_fmt.py TestColorDisabled.test_path_plain   2 0 0   100%
tests / test_fmt.py TestColorDisabled.test_func_name_plain   2 0 0   100%
tests / test_fmt.py TestColorEnabled.test_header_has_ansi   4 0 0   100%
tests / test_fmt.py TestColorEnabled.test_num_has_ansi   4 0 0   100%
tests / test_fmt.py TestRpad.test_alignment_width   4 0 0   100%
tests / test_fmt.py TestRpad.test_alignment_with_thousands   3 0 0   100%
tests / test_fmt.py TestRpad.test_alignment_with_float   3 0 0   100%
tests / test_fmt.py TestRpad.test_alignment_with_custom_formatter   4 0 0   100%
tests / test_fmt.py TestFmtCompact.test_small_numbers_no_compaction   4 0 0   100%
tests / test_fmt.py TestFmtCompact.test_six_digit_numbers_compact   3 0 0   100%
tests / test_fmt.py TestFmtCompact.test_millions   4 0 0   100%
tests / test_fmt.py TestFmtCompact.test_zero   1 0 0   100%
tests / test_fmt.py TestFmtCompact.test_float_input   1 0 0   100%
tests / test_fmt.py TestCompositeHelpers.test_colored_num_int   2 0 0   100%
tests / test_fmt.py TestCompositeHelpers.test_colored_float   2 0 0   100%
tests / test_fmt.py TestCompositeHelpers.test_colored_float_custom_decimals   2 0 0   100%
tests / test_fmt.py TestCompositeHelpers.test_colored_int   2 0 0   100%
tests / test_fmt.py (no function)   42 0 0   100%
tests / test_halstead / __init__.py (no function)   0 0 0   100%
tests / test_halstead / test_go.py test_halstead_basic   7 0 0   100%
tests / test_halstead / test_go.py test_halstead_short_var_declaration   5 0 0   100%
tests / test_halstead / test_go.py test_halstead_channel_operator   5 0 0   100%
tests / test_halstead / test_go.py test_halstead_empty_source   2 0 0   100%
tests / test_halstead / test_go.py (no function)   5 0 0   100%
tests / test_halstead / test_python.py test_halstead_simple_function   8 0 0   100%
tests / test_halstead / test_python.py test_halstead_empty_source   2 0 0   100%
tests / test_halstead / test_python.py test_halstead_operators_counted   5 0 0   100%
tests / test_halstead / test_python.py test_halstead_volume_scales_with_code   5 0 0   100%
tests / test_halstead / test_python.py (no function)   5 0 0   100%
tests / test_halstead / test_typescript.py test_halstead_basic   7 0 0   100%
tests / test_halstead / test_typescript.py test_halstead_strict_equality   4 0 0   100%
tests / test_halstead / test_typescript.py test_halstead_optional_chaining_and_nullish   5 0 0   100%
tests / test_halstead / test_typescript.py test_halstead_empty_source   2 0 0   100%
tests / test_halstead / test_typescript.py (no function)   5 0 0   100%
tests / test_mi / __init__.py (no function)   0 0 0   100%
tests / test_mi / test_go.py _mi   3 0 0   100%
tests / test_mi / test_go.py test_trivial_function   3 0 0   100%
tests / test_mi / test_go.py test_simple_add   3 0 0   100%
tests / test_mi / test_go.py test_complex_function   3 0 0   100%
tests / test_mi / test_go.py test_empty_body   3 0 0   100%
tests / test_mi / test_go.py test_no_operators   3 0 0   100%
tests / test_mi / test_go.py test_mi_range   3 0 0   100%
tests / test_mi / test_go.py test_multiple_functions   6 0 0   100%
tests / test_mi / test_go.py (no function)   9 0 0   100%
tests / test_mi / test_python.py _mi   3 0 0   100%
tests / test_mi / test_python.py test_trivial_function   3 0 0   100%
tests / test_mi / test_python.py test_simple_add   3 0 0   100%
tests / test_mi / test_python.py test_complex_function   3 0 0   100%
tests / test_mi / test_python.py test_empty_body   3 0 0   100%
tests / test_mi / test_python.py test_no_operators   3 0 0   100%
tests / test_mi / test_python.py test_mi_range   3 0 0   100%
tests / test_mi / test_python.py test_multiple_functions   6 0 0   100%
tests / test_mi / test_python.py (no function)   9 0 0   100%
tests / test_mi / test_typescript.py _mi   3 0 0   100%
tests / test_mi / test_typescript.py test_trivial_function   3 0 0   100%
tests / test_mi / test_typescript.py test_simple_add   3 0 0   100%
tests / test_mi / test_typescript.py test_complex_function   3 0 0   100%
tests / test_mi / test_typescript.py test_empty_body   3 0 0   100%
tests / test_mi / test_typescript.py test_no_operators   3 0 0   100%
tests / test_mi / test_typescript.py test_mi_range   3 0 0   100%
tests / test_mi / test_typescript.py test_multiple_functions   6 0 0   100%
tests / test_mi / test_typescript.py (no function)   9 0 0   100%
tests / test_npath / __init__.py (no function)   0 0 0   100%
tests / test_npath / test_go.py _npath   3 0 0   100%
tests / test_npath / test_go.py _npaths   2 0 0   100%
tests / test_npath / test_go.py test_simple_function   2 0 0   100%
tests / test_npath / test_go.py test_empty_source   2 0 0   100%
tests / test_npath / test_go.py test_if_only   2 0 0   100%
tests / test_npath / test_go.py test_if_else   2 0 0   100%
tests / test_npath / test_go.py test_if_elif_else   2 0 0   100%
tests / test_npath / test_go.py test_if_elif_no_else   2 0 0   100%
tests / test_npath / test_go.py test_bool_ops_in_if   2 0 0   100%
tests / test_npath / test_go.py test_two_bool_ops   2 0 0   100%
tests / test_npath / test_go.py test_for_loop   2 0 0   100%
tests / test_npath / test_go.py test_for_range   2 0 0   100%
tests / test_npath / test_go.py test_infinite_for   2 0 0   100%
tests / test_npath / test_go.py test_switch_three_cases   2 0 0   100%
tests / test_npath / test_go.py test_switch_with_default   2 0 0   100%
tests / test_npath / test_go.py test_type_switch   2 0 0   100%
tests / test_npath / test_go.py test_select   2 0 0   100%
tests / test_npath / test_go.py test_select_with_default   2 0 0   100%
tests / test_npath / test_go.py test_sequential_ifs   2 0 0   100%
tests / test_npath / test_go.py test_nested_if   2 0 0   100%
tests / test_npath / test_go.py test_nested_named_func_literal   4 0 0   100%
tests / test_npath / test_go.py test_goroutine_inline_closure   2 0 0   100%
tests / test_npath / test_go.py test_method_declaration   2 0 0   100%
tests / test_npath / test_go.py (no function)   24 0 0   100%
tests / test_npath / test_python.py _npath   3 0 0   100%
tests / test_npath / test_python.py _npaths   2 0 0   100%
tests / test_npath / test_python.py test_simple_function   1 0 0   100%
tests / test_npath / test_python.py test_empty_source   2 0 0   100%
tests / test_npath / test_python.py test_if_only   2 0 0   100%
tests / test_npath / test_python.py test_if_else   2 0 0   100%
tests / test_npath / test_python.py test_if_elif_else   2 0 0   100%
tests / test_npath / test_python.py test_if_elif_no_else   2 0 0   100%
tests / test_npath / test_python.py test_bool_ops_in_if   2 0 0   100%
tests / test_npath / test_python.py test_two_bool_ops   2 0 0   100%
tests / test_npath / test_python.py test_for_loop   2 0 0   100%
tests / test_npath / test_python.py test_while_loop   2 0 0   100%
tests / test_npath / test_python.py test_while_with_bool_cond   2 0 0   100%
tests / test_npath / test_python.py test_for_else   2 0 0   100%
tests / test_npath / test_python.py test_try_except   2 0 0   100%
tests / test_npath / test_python.py test_ternary   2 0 0   100%
tests / test_npath / test_python.py test_sequential_ifs   2 0 0   100%
tests / test_npath / test_python.py test_nested_if   2 0 0   100%
tests / test_npath / test_python.py test_match_three_cases   2 0 0   100%
tests / test_npath / test_python.py test_match_with_wildcard   2 0 0   100%
tests / test_npath / test_python.py test_nested_ternary   2 0 0   100%
tests / test_npath / test_python.py test_nested_function   4 0 0   100%
tests / test_npath / test_python.py test_with_statement   2 0 0   100%
tests / test_npath / test_python.py test_lambda_ternary   2 0 0   100%
tests / test_npath / test_python.py (no function)   25 0 0   100%
tests / test_npath / test_typescript.py _npath   3 0 0   100%
tests / test_npath / test_typescript.py _npaths   2 0 0   100%
tests / test_npath / test_typescript.py test_simple_function   1 0 0   100%
tests / test_npath / test_typescript.py test_empty_source   2 0 0   100%
tests / test_npath / test_typescript.py test_if_only   2 0 0   100%
tests / test_npath / test_typescript.py test_if_else   2 0 0   100%
tests / test_npath / test_typescript.py test_if_elif_else   2 0 0   100%
tests / test_npath / test_typescript.py test_if_elif_no_else   2 0 0   100%
tests / test_npath / test_typescript.py test_bool_ops_in_if   2 0 0   100%
tests / test_npath / test_typescript.py test_two_bool_ops   2 0 0   100%
tests / test_npath / test_typescript.py test_for_loop   2 0 0   100%
tests / test_npath / test_typescript.py test_while_loop   2 0 0   100%
tests / test_npath / test_typescript.py test_while_with_bool_cond   2 0 0   100%
tests / test_npath / test_typescript.py test_do_while   2 0 0   100%
tests / test_npath / test_typescript.py test_do_while_with_bool_cond   2 0 0   100%
tests / test_npath / test_typescript.py test_try_catch   2 0 0   100%
tests / test_npath / test_typescript.py test_switch_three_cases   2 0 0   100%
tests / test_npath / test_typescript.py test_switch_with_default   2 0 0   100%
tests / test_npath / test_typescript.py test_ternary   2 0 0   100%
tests / test_npath / test_typescript.py test_nested_ternary   2 0 0   100%
tests / test_npath / test_typescript.py test_sequential_ifs   2 0 0   100%
tests / test_npath / test_typescript.py test_nested_if   2 0 0   100%
tests / test_npath / test_typescript.py test_named_arrow   2 0 0   100%
tests / test_npath / test_typescript.py test_nested_named_arrow   4 0 0   100%
tests / test_npath / test_typescript.py test_method_definition   2 0 0   100%
tests / test_npath / test_typescript.py test_for_in_loop   2 0 0   100%
tests / test_npath / test_typescript.py (no function)   27 0 0   100%
tests / test_patterns / test_python.py test_nested_imports   8 0 0   100%
tests / test_patterns / test_python.py test_no_nested_imports   4 0 0   100%
tests / test_patterns / test_python.py test_wildcard_imports   6 0 0   100%
tests / test_patterns / test_python.py test_no_wildcard_imports   4 0 0   100%
tests / test_patterns / test_python.py (no function)   6 0 0   100%
Total     5655 647 19   89%

No items found using the specified filter.