============================= test session starts ==============================
platform linux -- Python 3.11.2, pytest-9.0.2, pluggy-1.6.0 -- /Users/oz/Documents/viblexity-trees/vibelexity-main/.venv/bin/python
cachedir: .pytest_cache
rootdir: /Users/oz/Documents/viblexity-trees/vibelexity-main
configfile: pyproject.toml
plugins: cov-7.0.0
collecting ... collected 644 items

tests/test_analyzers.py::test_analyze_file_py PASSED                     [  0%]
tests/test_analyzers.py::test_analyze_file_ts_normal_extension PASSED    [  0%]
tests/test_analyzers.py::test_analyze_file_ts_tsx_extension PASSED       [  0%]
tests/test_analyzers.py::test_analyze_py_empty_file PASSED               [  0%]
tests/test_analyzers.py::test_analyze_ts_empty_file PASSED               [  0%]
tests/test_analyzers.py::test_analyze_go_empty_file PASSED               [  0%]
tests/test_call_graph/test_cycles.py::test_recursive_cycle PASSED        [  1%]
tests/test_call_graph/test_cycles.py::test_mutual_recursion PASSED       [  1%]
tests/test_call_graph/test_cycles.py::test_no_cycle PASSED               [  1%]
tests/test_call_graph/test_formatters.py::test_format_dot PASSED         [  1%]
tests/test_call_graph/test_formatters.py::test_format_dot_filters_external PASSED [  1%]
tests/test_call_graph/test_formatters_extra.py::test_format_dot_value_error_on_relative_path PASSED [  1%]
tests/test_call_graph/test_formatters_extra.py::test_format_dot_relative_path_with_quotes PASSED [  2%]
tests/test_call_graph/test_formatters_extra.py::test_filter_internal_calls PASSED [  2%]
tests/test_call_graph/test_parser.py::test_extract_function_definitions PASSED [  2%]
tests/test_call_graph/test_parser.py::test_extract_simple_calls PASSED   [  2%]
tests/test_call_graph/test_parser.py::test_extract_method_calls PASSED   [  2%]
tests/test_call_graph/test_parser.py::test_extract_external_calls PASSED [  2%]
tests/test_call_graph/test_resolution.py::test_local_call_resolution PASSED [  2%]
tests/test_call_graph/test_resolution.py::test_external_call_resolution PASSED [  3%]
tests/test_call_graph/test_resolution.py::test_method_call_resolution PASSED [  3%]
tests/test_call_graph/test_unused.py::test_entry_point_unused PASSED     [  3%]
tests/test_call_graph/test_unused.py::test_mutual_cycle_both_used PASSED [  3%]
tests/test_call_graph/test_unused.py::test_private_filtered PASSED       [  3%]
tests/test_call_graph/test_unused.py::test_chained_usage PASSED          [  3%]
tests/test_call_graph/test_unused.py::test_unused_function_detection PASSED [  4%]
tests/test_call_graph/test_unused.py::test_caller_is_unused PASSED       [  4%]
tests/test_call_graph_core.py::test_build_call_graph_unmatched_function PASSED [  4%]
tests/test_call_graph_core.py::test_build_call_graph_same_file_priority PASSED [  4%]
tests/test_call_graph_core.py::test_build_call_graph_cross_file_call PASSED [  4%]
tests/test_call_graph_core.py::test_build_call_graph_empty_files PASSED  [  4%]
tests/test_call_graph_core.py::test_find_call_cycles_with_external PASSED [  4%]
tests/test_call_graph_core.py::test_find_unused_functions_ignores_dunder PASSED [  5%]
tests/test_call_graph_core.py::test_build_call_graph_multiple_def_names PASSED [  5%]
tests/test_call_graph_core.py::test_build_call_graph_none_callee_file PASSED [  5%]
tests/test_circular_deps/test_core.py::test_python_parser_extract_import PASSED [  5%]
tests/test_circular_deps/test_core.py::test_cycle_detection_simple PASSED [  5%]
tests/test_circular_deps/test_core.py::test_format_text PASSED           [  5%]
tests/test_circular_deps/test_core.py::test_format_json PASSED           [  6%]
tests/test_circular_deps/test_core.py::test_no_cycles_linear_chain PASSED [  6%]
tests/test_circular_deps/test_core.py::test_transitive_cycle_three_files PASSED [  6%]
tests/test_circular_deps/test_core.py::test_cycle_detection_in_src_subdirectory PASSED [  6%]
tests/test_circular_deps/test_core.py::test_cycle_nested_to_root PASSED  [  6%]
tests/test_circular_deps/test_core_extra.py::test_build_dependency_graph_empty_files PASSED [  6%]
tests/test_circular_deps/test_core_extra.py::test_build_dependency_graph_unsupported_extensions PASSED [  6%]
tests/test_circular_deps/test_core_extra.py::test_build_dependency_graph_single_file PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_build_dependency_graph_file_read_error PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_tarjan_simple PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_tarjan_three_file_cycle PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_tarjan_no_cycles PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_tarjan_multiple_disconnected_cycles PASSED [  7%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_tarjan_self_import PASSED [  8%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_dfs_gray_node_detection PASSED [  8%]
tests/test_circular_deps/test_core_extra.py::test_find_cycles_no_local_import PASSED [  8%]
tests/test_circular_deps/test_go.py::test_go_parser_extract_import PASSED [  8%]
tests/test_circular_deps/test_go.py::test_go_stdlib_filtering PASSED     [  8%]
tests/test_circular_deps/test_go.py::test_go_cycle_detection_simple PASSED [  8%]
tests/test_circular_deps/test_go.py::test_go_resolver_package_resolution PASSED [  9%]
tests/test_circular_deps/test_go.py::test_go_resolver_finds_go_file PASSED [  9%]
tests/test_circular_deps/test_go.py::test_go_cycle_detection_in_src_subdirectory PASSED [  9%]
tests/test_circular_deps/test_go.py::test_go_cycle_transitive_three_files PASSED [  9%]
tests/test_circular_deps/test_go.py::test_go_cycle_nested_to_root PASSED [  9%]
tests/test_circular_deps/test_go.py::test_go_no_cycles_linear_chain PASSED [  9%]
tests/test_circular_deps/test_resolvers.py::test_resolve_absolute_module_current_dir PASSED [  9%]
tests/test_circular_deps/test_resolvers.py::test_resolve_absolute_module_root_dir PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_absolute_module_not_found PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_single_dot PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_double_dot PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_triple_dot PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_module_suffix PASSED [ 10%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_empty_module_name PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_with_package PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_resolve_relative_module_name_with_dots PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_find_py_file_direct PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_find_py_file_package_with_init PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_find_py_file_appends_extension PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_find_py_file_not_found PASSED [ 11%]
tests/test_circular_deps/test_resolvers.py::test_check_under_root_in_root PASSED [ 12%]
tests/test_circular_deps/test_resolvers.py::test_check_under_root_outside_root PASSED [ 12%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_default_no_args PASSED [ 12%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_nodenext_normalizes_to_node16 PASSED [ 12%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_invalid_mode_defaults_to_node16 PASSED [ 12%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_absolute_two_search_paths PASSED [ 12%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_node_with_extension_directory_index PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_node_with_extension_directory_main PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_node_without_extension_dirname PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_node_without_extension_dts PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_node16_without_extension_returns_none PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_with_extension_wrong_type PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_without_extension_tries_index PASSED [ 13%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_without_extension_tries_extensions PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_outside_root_returns_none PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_strip_extension_non_ts PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_has_extension_empty PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_module_modules_import_skipped PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_detect_from_tsconfig_no_config_found PASSED [ 14%]
tests/test_circular_deps/test_resolvers_typescript.py::test_detect_from_tsconfig_invalid_json PASSED [ 15%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_ext_js_only_jsx_exists PASSED [ 15%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_without_extension_jsx PASSED [ 15%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_without_extension_js PASSED [ 15%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolver_bundler_without_extension_tsx PASSED [ 15%]
tests/test_circular_deps/test_resolvers_typescript.py::test_resolve_directory_index_not_found PASSED [ 15%]
tests/test_circular_deps/test_type_imports.py::test_python_type_checking_import_detection PASSED [ 15%]
tests/test_circular_deps/test_type_imports.py::test_typescript_import_type_detection PASSED [ 16%]
tests/test_circular_deps/test_type_imports.py::test_python_type_only_cycle_detection PASSED [ 16%]
tests/test_circular_deps/test_type_imports.py::test_python_runtime_cycle_detection PASSED [ 16%]
tests/test_circular_deps/test_type_imports.py::test_python_mixed_runtime_and_type_cycles PASSED [ 16%]
tests/test_circular_deps/test_type_imports.py::test_cycle_stats_separate_counts PASSED [ 16%]
tests/test_circular_deps/test_typescript.py::test_typescript_parser_extract_import PASSED [ 16%]
tests/test_circular_deps/test_typescript.py::test_typescript_cycle_detection_simple PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_relative_imports PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_index_precedence PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_no_external_imports PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_cycle_detection_in_src_subdirectory PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_auto_discovery_from_tsconfig PASSED [ 17%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_auto_discovery_no_tsconfig PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_cli_overrides_tsconfig PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_invalid_tsconfig PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_node_mode_with_extension PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_node_mode_without_extension PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_node16_mode_with_extension PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_node16_mode_without_extension PASSED [ 18%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_bundler_mode PASSED [ 19%]
tests/test_circular_deps/test_typescript.py::test_typescript_resolver_closest_tsconfig PASSED [ 19%]
tests/test_circular_deps/test_typescript.py::test_typescript_cycle_nested_to_root PASSED [ 19%]
tests/test_circular_deps_core.py::test_detect_language_python PASSED     [ 19%]
tests/test_circular_deps_core.py::test_detect_language_typescript PASSED [ 19%]
tests/test_circular_deps_core.py::test_detect_language_go PASSED         [ 19%]
tests/test_circular_deps_core.py::test_detect_language_unsupported PASSED [ 20%]
tests/test_circular_deps_core.py::test_get_parser_python PASSED          [ 20%]
tests/test_circular_deps_core.py::test_get_parser_typescript PASSED      [ 20%]
tests/test_circular_deps_core.py::test_get_parser_go PASSED              [ 20%]
tests/test_circular_deps_core.py::test_get_parser_unknown PASSED         [ 20%]
tests/test_circular_deps_core.py::test_get_resolver_python PASSED        [ 20%]
tests/test_circular_deps_core.py::test_get_resolver_typescript PASSED    [ 20%]
tests/test_circular_deps_core.py::test_get_resolver_go PASSED            [ 21%]
tests/test_circular_deps_core.py::test_get_resolver_unknown PASSED       [ 21%]
tests/test_circular_deps_core.py::test_get_resolver_typescript_with_config PASSED [ 21%]
tests/test_circular_deps_core.py::test_find_common_root_empty PASSED     [ 21%]
tests/test_circular_deps_core.py::test_find_common_root_single_file PASSED [ 21%]
tests/test_circular_deps_core.py::test_find_common_root_same_directory PASSED [ 21%]
tests/test_circular_deps_core.py::test_find_common_root_different_directories PASSED [ 22%]
tests/test_circular_deps_core.py::test_find_common_root_no_common_root PASSED [ 22%]
tests/test_circular_deps_core.py::test_build_dependency_graph_empty_files PASSED [ 22%]
tests/test_circular_deps_core.py::test_build_dependency_graph_unsupported_extension PASSED [ 22%]
tests/test_circular_deps_core.py::test_build_dependency_graph_mixed_languages PASSED [ 22%]
tests/test_circular_deps_core.py::test_find_cycles_empty_files PASSED    [ 22%]
tests/test_circular_deps_core.py::test_find_cycles_single_file PASSED    [ 22%]
tests/test_cognitive/test_go.py::test_empty_function PASSED              [ 23%]
tests/test_cognitive/test_go.py::test_single_if PASSED                   [ 23%]
tests/test_cognitive/test_go.py::test_if_else PASSED                     [ 23%]
tests/test_cognitive/test_go.py::test_if_else_if_else PASSED             [ 23%]
tests/test_cognitive/test_go.py::test_for_c_style PASSED                 [ 23%]
tests/test_cognitive/test_go.py::test_for_range PASSED                   [ 23%]
tests/test_cognitive/test_go.py::test_for_as_while PASSED                [ 24%]
tests/test_cognitive/test_go.py::test_infinite_for PASSED                [ 24%]
tests/test_cognitive/test_go.py::test_nested_if PASSED                   [ 24%]
tests/test_cognitive/test_go.py::test_deeply_nested PASSED               [ 24%]
tests/test_cognitive/test_go.py::test_if_else_nesting PASSED             [ 24%]
tests/test_cognitive/test_go.py::test_expression_switch PASSED           [ 24%]
tests/test_cognitive/test_go.py::test_type_switch PASSED                 [ 25%]
tests/test_cognitive/test_go.py::test_select_statement PASSED            [ 25%]
tests/test_cognitive/test_go.py::test_switch_nested_in_if PASSED         [ 25%]
tests/test_cognitive/test_go.py::test_single_and PASSED                  [ 25%]
tests/test_cognitive/test_go.py::test_chained_same_op PASSED             [ 25%]
tests/test_cognitive/test_go.py::test_mixed_boolean PASSED               [ 25%]
tests/test_cognitive/test_go.py::test_complex_boolean PASSED             [ 25%]
tests/test_cognitive/test_go.py::test_recursion PASSED                   [ 26%]
tests/test_cognitive/test_go.py::test_no_false_recursion PASSED          [ 26%]
tests/test_cognitive/test_go.py::test_nested_function_separate_scoring PASSED [ 26%]
tests/test_cognitive/test_go.py::test_inline_func_literal_increases_nesting PASSED [ 26%]
tests/test_cognitive/test_go.py::test_named_func_literal_scored_separately PASSED [ 26%]
tests/test_cognitive/test_go.py::test_method_declaration PASSED          [ 26%]
tests/test_cognitive/test_go.py::test_go_statement_no_increment PASSED   [ 27%]
tests/test_cognitive/test_go.py::test_defer_no_increment PASSED          [ 27%]
tests/test_cognitive/test_go.py::test_error_handling_pattern PASSED      [ 27%]
tests/test_cognitive/test_go.py::test_if_with_initializer PASSED         [ 27%]
tests/test_cognitive/test_go.py::test_comprehensive PASSED               [ 27%]
tests/test_cognitive/test_go.py::test_not_operator_no_increment PASSED   [ 27%]
tests/test_cognitive/test_go.py::test_multiple_return_values PASSED      [ 27%]
tests/test_cognitive/test_python.py::test_simple_function PASSED         [ 28%]
tests/test_cognitive/test_python.py::test_single_if PASSED               [ 28%]
tests/test_cognitive/test_python.py::test_if_else PASSED                 [ 28%]
tests/test_cognitive/test_python.py::test_if_elif_else PASSED            [ 28%]
tests/test_cognitive/test_python.py::test_for_loop PASSED                [ 28%]
tests/test_cognitive/test_python.py::test_while_loop PASSED              [ 28%]
tests/test_cognitive/test_python.py::test_nested_if PASSED               [ 29%]
tests/test_cognitive/test_python.py::test_deeply_nested PASSED           [ 29%]
tests/test_cognitive/test_python.py::test_if_else_nesting PASSED         [ 29%]
tests/test_cognitive/test_python.py::test_try_except PASSED              [ 29%]
tests/test_cognitive/test_python.py::test_try_except_nested PASSED       [ 29%]
tests/test_cognitive/test_python.py::test_single_and PASSED              [ 29%]
tests/test_cognitive/test_python.py::test_chained_same_op PASSED         [ 29%]
tests/test_cognitive/test_python.py::test_mixed_boolean PASSED           [ 30%]
tests/test_cognitive/test_python.py::test_complex_boolean PASSED         [ 30%]
tests/test_cognitive/test_python.py::test_ternary PASSED                 [ 30%]
tests/test_cognitive/test_python.py::test_ternary_nested PASSED          [ 30%]
tests/test_cognitive/test_python.py::test_recursion PASSED               [ 30%]
tests/test_cognitive/test_python.py::test_no_false_recursion PASSED      [ 30%]
tests/test_cognitive/test_python.py::test_nested_function_separate_scoring PASSED [ 31%]
tests/test_cognitive/test_python.py::test_nested_function_nesting_reset PASSED [ 31%]
tests/test_cognitive/test_python.py::test_lambda_nesting PASSED          [ 31%]
tests/test_cognitive/test_python.py::test_comprehensive PASSED           [ 31%]
tests/test_cognitive/test_python.py::test_file_total PASSED              [ 31%]
tests/test_cognitive/test_python.py::test_function_lines PASSED          [ 31%]
tests/test_cognitive/test_python.py::test_empty_function PASSED          [ 31%]
tests/test_cognitive/test_python.py::test_not_operator_no_increment PASSED [ 32%]
tests/test_cognitive/test_typescript.py::test_empty_function PASSED      [ 32%]
tests/test_cognitive/test_typescript.py::test_single_if PASSED           [ 32%]
tests/test_cognitive/test_typescript.py::test_if_else PASSED             [ 32%]
tests/test_cognitive/test_typescript.py::test_if_else_if_else PASSED     [ 32%]
tests/test_cognitive/test_typescript.py::test_for_loop PASSED            [ 32%]
tests/test_cognitive/test_typescript.py::test_for_in_loop PASSED         [ 33%]
tests/test_cognitive/test_typescript.py::test_while_loop PASSED          [ 33%]
tests/test_cognitive/test_typescript.py::test_do_while_loop PASSED       [ 33%]
tests/test_cognitive/test_typescript.py::test_nested_if PASSED           [ 33%]
tests/test_cognitive/test_typescript.py::test_deeply_nested PASSED       [ 33%]
tests/test_cognitive/test_typescript.py::test_if_else_nesting PASSED     [ 33%]
tests/test_cognitive/test_typescript.py::test_try_catch PASSED           [ 34%]
tests/test_cognitive/test_typescript.py::test_try_catch_nested PASSED    [ 34%]
tests/test_cognitive/test_typescript.py::test_single_and PASSED          [ 34%]
tests/test_cognitive/test_typescript.py::test_chained_same_op PASSED     [ 34%]
tests/test_cognitive/test_typescript.py::test_mixed_boolean PASSED       [ 34%]
tests/test_cognitive/test_typescript.py::test_complex_boolean PASSED     [ 34%]
tests/test_cognitive/test_typescript.py::test_ternary PASSED             [ 34%]
tests/test_cognitive/test_typescript.py::test_ternary_nested_in_if PASSED [ 35%]
tests/test_cognitive/test_typescript.py::test_recursion PASSED           [ 35%]
tests/test_cognitive/test_typescript.py::test_no_false_recursion PASSED  [ 35%]
tests/test_cognitive/test_typescript.py::test_nested_function_separate_scoring PASSED [ 35%]
tests/test_cognitive/test_typescript.py::test_nested_function_nesting_reset PASSED [ 35%]
tests/test_cognitive/test_typescript.py::test_inline_arrow_increases_nesting PASSED [ 35%]
tests/test_cognitive/test_typescript.py::test_named_arrow_scored_separately PASSED [ 36%]
tests/test_cognitive/test_typescript.py::test_switch_statement PASSED    [ 36%]
tests/test_cognitive/test_typescript.py::test_method_definition PASSED   [ 36%]
tests/test_cognitive/test_typescript.py::test_comprehensive PASSED       [ 36%]
tests/test_cognitive/test_typescript.py::test_not_operator_no_increment PASSED [ 36%]
tests/test_cognitive/test_typescript.py::test_async_function PASSED      [ 36%]
tests/test_cognitive/test_typescript.py::test_generator_function PASSED  [ 36%]
tests/test_common.py::test_known_input PASSED                            [ 37%]
tests/test_common.py::test_empty_inputs PASSED                           [ 37%]
tests/test_common.py::test_zero_operands_guard PASSED                    [ 37%]
tests/test_common.py::test_zero_operators_guard PASSED                   [ 37%]
tests/test_common.py::test_effort_equals_d_times_v PASSED                [ 37%]
tests/test_common.py::test_time_equals_effort_over_18 PASSED             [ 37%]
tests/test_common.py::test_dataclass_defaults PASSED                     [ 38%]
tests/test_common.py::test_single_operator_single_operand PASSED         [ 38%]
tests/test_common.py::test_ldi_basic PASSED                              [ 38%]
tests/test_common.py::test_ldi_within_range PASSED                       [ 38%]
tests/test_common.py::test_ldi_zero_volume PASSED                        [ 38%]
tests/test_common.py::test_ldi_formula_components PASSED                 [ 38%]
tests/test_common.py::test_ldi_known_input PASSED                        [ 38%]
tests/test_common.py::test_mi_zero_volume PASSED                         [ 39%]
tests/test_common.py::test_mi_zero_loc PASSED                            [ 39%]
tests/test_common.py::test_mi_negative_volume PASSED                     [ 39%]
tests/test_common.py::test_mi_negative_loc PASSED                        [ 39%]
tests/test_common.py::test_mi_calculation PASSED                         [ 39%]
tests/test_common.py::test_ldi_negative_volume PASSED                    [ 39%]
tests/test_common_sloc.py::test_compute_sloc_multiline_comment_with_code PASSED [ 40%]
tests/test_common_sloc.py::test_compute_sloc_multiline_comment_mixed PASSED [ 40%]
tests/test_common_sloc.py::test_compute_sloc_comment_at_line_boundary PASSED [ 40%]
tests/test_common_sloc.py::test_compute_sloc_unwrap_parens_deep PASSED   [ 40%]
tests/test_common_sloc.py::test_compute_sloc_no_comments PASSED          [ 40%]
tests/test_dead_code_core.py::test_extract_imports PASSED                [ 40%]
tests/test_dead_code_core.py::test_extract_definitions PASSED            [ 40%]
tests/test_dead_code_core.py::test_extract_references PASSED             [ 41%]
tests/test_dead_code_core.py::test_unused_import PASSED                  [ 41%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_with_unused_imports PASSED [ 41%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_unused_symbols PASSED [ 41%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_dunder_methods PASSED [ 41%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_abstract_classes PASSED [ 41%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_exported_symbols PASSED [ 42%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_empty_file PASSED [ 42%]
tests/test_dead_code_core.py::test_build_cross_reference_graph_multiple_files PASSED [ 42%]
tests/test_dead_code_core.py::test_unused_import_with_alias PASSED       [ 42%]
tests/test_dead_code_core.py::test_import_with_usage PASSED              [ 42%]
tests/test_dead_code_go.py::test_unused_imports_basic PASSED             [ 42%]
tests/test_dead_code_go.py::test_blank_identifier_imports_skipped PASSED [ 43%]
tests/test_dead_code_go.py::test_dot_imports_skipped PASSED              [ 43%]
tests/test_dead_code_go.py::test_extract_definitions PASSED              [ 43%]
tests/test_dead_code_go.py::test_extract_method_definitions PASSED       [ 43%]
tests/test_dead_code_go.py::test_unused_short_var_declarations PASSED    [ 43%]
tests/test_dead_code_go.py::test_variables_in_loops PASSED               [ 43%]
tests/test_dead_code_go.py::test_exported_symbols_detection PASSED       [ 43%]
tests/test_dead_code_go.py::test_extract_references PASSED               [ 44%]
tests/test_dead_code_go.py::test_dead_functions_cross_reference PASSED   [ 44%]
tests/test_dead_code_go.py::test_interface_method_implementations PASSED [ 44%]
tests/test_dead_code_go.py::test_unused_import_detection_with_cross_ref PASSED [ 44%]
tests/test_dead_code_typescript.py::test_unused_named_imports PASSED     [ 44%]
tests/test_dead_code_typescript.py::test_unused_namespace_imports PASSED [ 44%]
tests/test_dead_code_typescript.py::test_unused_default_imports PASSED   [ 45%]
tests/test_dead_code_typescript.py::test_type_only_imports_skipped PASSED [ 45%]
tests/test_dead_code_typescript.py::test_dead_function_declarations PASSED [ 45%]
tests/test_dead_code_typescript.py::test_dead_arrow_functions PASSED     [ 45%]
tests/test_dead_code_typescript.py::test_dead_classes PASSED             [ 45%]
tests/test_dead_code_typescript.py::test_exported_functions_not_flagged PASSED [ 45%]
tests/test_dead_code_typescript.py::test_extract_method_definitions PASSED [ 45%]
tests/test_dead_code_typescript.py::test_unused_local_variables PASSED   [ 46%]
tests/test_dead_code_typescript.py::test_variables_used_in_nested_blocks PASSED [ 46%]
tests/test_dead_code_typescript.py::test_shadowing_separate_tracking PASSED [ 46%]
tests/test_dead_code_typescript.py::test_class_implementing_interface PASSED [ 46%]
tests/test_dead_code_typescript.py::test_react_component_pattern PASSED  [ 46%]
tests/test_dead_code_typescript.py::test_extract_references PASSED       [ 46%]
tests/test_dead_code_typescript.py::test_abstract_class_detection PASSED [ 47%]
tests/test_dead_code_typescript.py::test_dead_function_with_export PASSED [ 47%]
tests/test_dead_code_typescript.py::test_default_parameters PASSED       [ 47%]
tests/test_dead_code_typescript.py::test_for_loop_variables PASSED       [ 47%]
tests/test_dead_code_typescript.py::test_cross_file_dead_code_detection PASSED [ 47%]
tests/test_dtd/test_go.py::test_empty_function PASSED                    [ 47%]
tests/test_dtd/test_go.py::test_struct_literal PASSED                    [ 47%]
tests/test_dtd/test_go.py::test_slice_literal PASSED                     [ 48%]
tests/test_dtd/test_go.py::test_map_literal PASSED                       [ 48%]
tests/test_dtd/test_go.py::test_nested_composite PASSED                  [ 48%]
tests/test_dtd/test_go.py::test_nested_named_closure PASSED              [ 48%]
tests/test_dtd/test_python.py::test_empty_function PASSED                [ 48%]
tests/test_dtd/test_python.py::test_no_data_structures PASSED            [ 48%]
tests/test_dtd/test_python.py::test_flat_dict PASSED                     [ 49%]
tests/test_dtd/test_python.py::test_flat_list PASSED                     [ 49%]
tests/test_dtd/test_python.py::test_nested_dict_in_list PASSED           [ 49%]
tests/test_dtd/test_python.py::test_deeply_nested PASSED                 [ 49%]
tests/test_dtd/test_python.py::test_nested_function_skipped PASSED       [ 49%]
tests/test_dtd/test_python.py::test_dict_comprehension PASSED            [ 49%]
tests/test_dtd/test_python.py::test_list_comprehension PASSED            [ 50%]
tests/test_dtd/test_typescript.py::test_empty_function PASSED            [ 50%]
tests/test_dtd/test_typescript.py::test_flat_object PASSED               [ 50%]
tests/test_dtd/test_typescript.py::test_flat_array PASSED                [ 50%]
tests/test_dtd/test_typescript.py::test_nested_object_in_array PASSED    [ 50%]
tests/test_dtd/test_typescript.py::test_deeply_nested PASSED             [ 50%]
tests/test_dtd/test_typescript.py::test_map_call PASSED                  [ 50%]
tests/test_dtd/test_typescript.py::test_shorthand_property PASSED        [ 51%]
tests/test_dtd/test_typescript.py::test_arrow_expression_body PASSED     [ 51%]
tests/test_dtd/test_typescript.py::test_nested_named_arrow PASSED        [ 51%]
tests/test_duplication/test_core.py::test_py_identical_functions_same_type1 PASSED [ 51%]
tests/test_duplication/test_core.py::test_py_comments_ignored_type1 PASSED [ 51%]
tests/test_duplication/test_core.py::test_py_different_names_different_type1 PASSED [ 51%]
tests/test_duplication/test_core.py::test_py_docstrings_ignored_type1 PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_docstrings_ignored_type2 PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_comments_ignored_type2 PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_renamed_identifiers_same_type2 PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_different_literals_same_type2 PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_structurally_different_functions PASSED [ 52%]
tests/test_duplication/test_core.py::test_py_trivial_function_returns_none PASSED [ 52%]
tests/test_duplication/test_core.py::test_ts_identical_functions_same_type1 PASSED [ 53%]
tests/test_duplication/test_core.py::test_ts_renamed_identifiers_same_type2 PASSED [ 53%]
tests/test_duplication/test_core.py::test_ts_different_literals_same_type2 PASSED [ 53%]
tests/test_duplication/test_core.py::test_ts_trivial_function_returns_none PASSED [ 53%]
tests/test_duplication/test_core.py::test_go_identical_functions_same_type1 PASSED [ 53%]
tests/test_duplication/test_core.py::test_go_renamed_identifiers_same_type2 PASSED [ 53%]
tests/test_duplication/test_core.py::test_go_different_literals_same_type2 PASSED [ 54%]
tests/test_duplication/test_core.py::test_go_trivial_function_returns_none PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_groups_type1 PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_groups_type2_only PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_type1_suppresses_type2 PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_no_clusters_for_unique PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_type2_excludes_1_liners PASSED [ 54%]
tests/test_duplication/test_core.py::test_find_duplicates_type2_detects_2_liners PASSED [ 55%]
tests/test_duplication/test_core.py::test_find_duplicates_type2_excludes_multi_line_single_statement PASSED [ 55%]
tests/test_duplication/test_core.py::test_go_statement_counting PASSED   [ 55%]
tests/test_duplication/test_core.py::test_ts_statement_counting PASSED   [ 55%]
tests/test_duplication/test_core.py::test_find_duplicates_cross_file PASSED [ 55%]
tests/test_duplication/test_core.py::test_type1_filter_by_min_lines PASSED [ 55%]
tests/test_duplication/test_core.py::test_type2_filter_by_min_lines PASSED [ 56%]
tests/test_duplication/test_core.py::test_no_filter_when_min_lines_zero PASSED [ 56%]
tests/test_duplication/test_core.py::test_combined_filters_type2 PASSED  [ 56%]
tests/test_fatness/test_fatness_core.py::test_empty_inputs PASSED        [ 56%]
tests/test_fatness/test_fatness_core.py::test_single_small_file PASSED   [ 56%]
tests/test_fatness/test_fatness_core.py::test_fat_by_loc_threshold PASSED [ 56%]
tests/test_fatness/test_fatness_core.py::test_fat_by_function_count_threshold PASSED [ 56%]
tests/test_fatness/test_fatness_core.py::test_fat_by_both_thresholds PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_fat_function_by_loc PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_fat_function_by_param_count PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_fat_function_by_call_count_without_call_graph PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_fat_function_by_call_count_with_call_graph PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_fat_function_by_all_three_thresholds PASSED [ 57%]
tests/test_fatness/test_fatness_core.py::test_multiple_files_multiple_functions PASSED [ 58%]
tests/test_fatness/test_fatness_core.py::test_external_calls_not_counted PASSED [ 58%]
tests/test_fatness/test_fatness_core.py::test_call_graph_none_returns_empty_counts PASSED [ 58%]
tests/test_fatness/test_fatness_core.py::test_duplicate_calls_counted_as_unique PASSED [ 58%]
tests/test_fatness/test_fatness_core.py::test_unique_calls_count_not_duplicate_calls PASSED [ 58%]
tests/test_fatness/test_fatness_go.py::test_zero_params PASSED           [ 58%]
tests/test_fatness/test_fatness_go.py::test_single_param PASSED          [ 59%]
tests/test_fatness/test_fatness_go.py::test_multiple_params PASSED       [ 59%]
tests/test_fatness/test_fatness_go.py::test_variadic_param PASSED        [ 59%]
tests/test_fatness/test_fatness_go.py::test_mixed_params PASSED          [ 59%]
tests/test_fatness/test_fatness_go.py::test_method_with_receiver PASSED  [ 59%]
tests/test_fatness/test_fatness_go.py::test_no_parameters_node PASSED    [ 59%]
tests/test_fatness/test_fatness_go.py::test_long_parameter_list PASSED   [ 59%]
tests/test_fatness/test_fatness_typescript.py::test_zero_params PASSED   [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_single_param PASSED  [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_multiple_params PASSED [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_with_default_params PASSED [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_with_rest_param PASSED [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_long_parameter_list PASSED [ 60%]
tests/test_fatness/test_fatness_typescript.py::test_arrow_function_with_params PASSED [ 61%]
tests/test_fatness/test_fatness_typescript.py::test_arrow_function_no_params PASSED [ 61%]
tests/test_fatness/test_python.py::test_zero_params PASSED               [ 61%]
tests/test_fatness/test_python.py::test_single_param PASSED              [ 61%]
tests/test_fatness/test_python.py::test_multiple_params PASSED           [ 61%]
tests/test_fatness/test_python.py::test_with_default_params PASSED       [ 61%]
tests/test_fatness/test_python.py::test_with_keyword_only_params PASSED  [ 61%]
tests/test_fatness/test_python.py::test_with_args_kw_args PASSED         [ 62%]
tests/test_fatness/test_python.py::test_long_parameter_list PASSED       [ 62%]
tests/test_halstead/test_go.py::test_halstead_basic PASSED               [ 62%]
tests/test_halstead/test_go.py::test_halstead_short_var_declaration PASSED [ 62%]
tests/test_halstead/test_go.py::test_halstead_channel_operator PASSED    [ 62%]
tests/test_halstead/test_go.py::test_halstead_empty_source PASSED        [ 62%]
tests/test_halstead/test_python.py::test_halstead_simple_function PASSED [ 63%]
tests/test_halstead/test_python.py::test_halstead_empty_source PASSED    [ 63%]
tests/test_halstead/test_python.py::test_halstead_operators_counted PASSED [ 63%]
tests/test_halstead/test_python.py::test_halstead_volume_scales_with_code PASSED [ 63%]
tests/test_halstead/test_typescript.py::test_halstead_basic PASSED       [ 63%]
tests/test_halstead/test_typescript.py::test_halstead_strict_equality PASSED [ 63%]
tests/test_halstead/test_typescript.py::test_halstead_optional_chaining_and_nullish PASSED [ 63%]
tests/test_halstead/test_typescript.py::test_halstead_empty_source PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_no_factory_functions PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_simple_factory_function PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_factory_with_create_in_name PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_function_returns_named_function PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_no_high_indirection PASSED [ 64%]
tests/test_indirection/test_indirection.py::test_high_indirection_depth PASSED [ 65%]
tests/test_indirection/test_indirection.py::test_multiple_high_indirection PASSED [ 65%]
tests/test_indirection/test_indirection.py::test_combined_patterns PASSED [ 65%]
tests/test_indirection/test_indirection.py::test_empty_file PASSED       [ 65%]
tests/test_indirection/test_indirection.py::test_function_without_calls PASSED [ 65%]
tests/test_indirection/test_indirection.py::test_nested_functions_not_counted PASSED [ 65%]
tests/test_indirection/test_indirection.py::test_lambda_factory PASSED   [ 65%]
tests/test_indirection/test_indirection.py::test_decorator_factory PASSED [ 66%]
tests/test_indirection/test_indirection.py::test_make_prefix_factory PASSED [ 66%]
tests/test_indirection/test_indirection.py::test_module_level_factory PASSED [ 66%]
tests/test_indirection/test_indirection.py::test_indirection_violations_in_result PASSED [ 66%]
tests/test_mi/test_go.py::test_trivial_function PASSED                   [ 66%]
tests/test_mi/test_go.py::test_simple_add PASSED                         [ 66%]
tests/test_mi/test_go.py::test_complex_function PASSED                   [ 67%]
tests/test_mi/test_go.py::test_empty_body PASSED                         [ 67%]
tests/test_mi/test_go.py::test_no_operators PASSED                       [ 67%]
tests/test_mi/test_go.py::test_mi_range PASSED                           [ 67%]
tests/test_mi/test_go.py::test_multiple_functions PASSED                 [ 67%]
tests/test_mi/test_python.py::test_trivial_function PASSED               [ 67%]
tests/test_mi/test_python.py::test_simple_add PASSED                     [ 68%]
tests/test_mi/test_python.py::test_complex_function PASSED               [ 68%]
tests/test_mi/test_python.py::test_empty_body PASSED                     [ 68%]
tests/test_mi/test_python.py::test_no_operators PASSED                   [ 68%]
tests/test_mi/test_python.py::test_mi_range PASSED                       [ 68%]
tests/test_mi/test_python.py::test_multiple_functions PASSED             [ 68%]
tests/test_mi/test_typescript.py::test_trivial_function PASSED           [ 68%]
tests/test_mi/test_typescript.py::test_simple_add PASSED                 [ 69%]
tests/test_mi/test_typescript.py::test_complex_function PASSED           [ 69%]
tests/test_mi/test_typescript.py::test_empty_body PASSED                 [ 69%]
tests/test_mi/test_typescript.py::test_no_operators PASSED               [ 69%]
tests/test_mi/test_typescript.py::test_mi_range PASSED                   [ 69%]
tests/test_mi/test_typescript.py::test_multiple_functions PASSED         [ 69%]
tests/test_npath/test_go.py::test_simple_function PASSED                 [ 70%]
tests/test_npath/test_go.py::test_empty_source PASSED                    [ 70%]
tests/test_npath/test_go.py::test_if_only PASSED                         [ 70%]
tests/test_npath/test_go.py::test_if_else PASSED                         [ 70%]
tests/test_npath/test_go.py::test_if_elif_else PASSED                    [ 70%]
tests/test_npath/test_go.py::test_if_elif_no_else PASSED                 [ 70%]
tests/test_npath/test_go.py::test_bool_ops_in_if PASSED                  [ 70%]
tests/test_npath/test_go.py::test_two_bool_ops PASSED                    [ 71%]
tests/test_npath/test_go.py::test_for_loop PASSED                        [ 71%]
tests/test_npath/test_go.py::test_for_range PASSED                       [ 71%]
tests/test_npath/test_go.py::test_infinite_for PASSED                    [ 71%]
tests/test_npath/test_go.py::test_switch_three_cases PASSED              [ 71%]
tests/test_npath/test_go.py::test_switch_with_default PASSED             [ 71%]
tests/test_npath/test_go.py::test_type_switch PASSED                     [ 72%]
tests/test_npath/test_go.py::test_select PASSED                          [ 72%]
tests/test_npath/test_go.py::test_select_with_default PASSED             [ 72%]
tests/test_npath/test_go.py::test_sequential_ifs PASSED                  [ 72%]
tests/test_npath/test_go.py::test_nested_if PASSED                       [ 72%]
tests/test_npath/test_go.py::test_nested_named_func_literal PASSED       [ 72%]
tests/test_npath/test_go.py::test_goroutine_inline_closure PASSED        [ 72%]
tests/test_npath/test_go.py::test_method_declaration PASSED              [ 73%]
tests/test_npath/test_python.py::test_simple_function PASSED             [ 73%]
tests/test_npath/test_python.py::test_empty_source PASSED                [ 73%]
tests/test_npath/test_python.py::test_if_only PASSED                     [ 73%]
tests/test_npath/test_python.py::test_if_else PASSED                     [ 73%]
tests/test_npath/test_python.py::test_if_elif_else PASSED                [ 73%]
tests/test_npath/test_python.py::test_if_elif_no_else PASSED             [ 74%]
tests/test_npath/test_python.py::test_bool_ops_in_if PASSED              [ 74%]
tests/test_npath/test_python.py::test_two_bool_ops PASSED                [ 74%]
tests/test_npath/test_python.py::test_for_loop PASSED                    [ 74%]
tests/test_npath/test_python.py::test_while_loop PASSED                  [ 74%]
tests/test_npath/test_python.py::test_while_with_bool_cond PASSED        [ 74%]
tests/test_npath/test_python.py::test_for_else PASSED                    [ 75%]
tests/test_npath/test_python.py::test_try_except PASSED                  [ 75%]
tests/test_npath/test_python.py::test_ternary PASSED                     [ 75%]
tests/test_npath/test_python.py::test_sequential_ifs PASSED              [ 75%]
tests/test_npath/test_python.py::test_nested_if PASSED                   [ 75%]
tests/test_npath/test_python.py::test_match_three_cases PASSED           [ 75%]
tests/test_npath/test_python.py::test_match_with_wildcard PASSED         [ 75%]
tests/test_npath/test_python.py::test_nested_ternary PASSED              [ 76%]
tests/test_npath/test_python.py::test_nested_function PASSED             [ 76%]
tests/test_npath/test_python.py::test_with_statement PASSED              [ 76%]
tests/test_npath/test_python.py::test_lambda_ternary PASSED              [ 76%]
tests/test_npath/test_typescript.py::test_simple_function PASSED         [ 76%]
tests/test_npath/test_typescript.py::test_empty_source PASSED            [ 76%]
tests/test_npath/test_typescript.py::test_if_only PASSED                 [ 77%]
tests/test_npath/test_typescript.py::test_if_else PASSED                 [ 77%]
tests/test_npath/test_typescript.py::test_if_elif_else PASSED            [ 77%]
tests/test_npath/test_typescript.py::test_if_elif_no_else PASSED         [ 77%]
tests/test_npath/test_typescript.py::test_bool_ops_in_if PASSED          [ 77%]
tests/test_npath/test_typescript.py::test_two_bool_ops PASSED            [ 77%]
tests/test_npath/test_typescript.py::test_for_loop PASSED                [ 77%]
tests/test_npath/test_typescript.py::test_while_loop PASSED              [ 78%]
tests/test_npath/test_typescript.py::test_while_with_bool_cond PASSED    [ 78%]
tests/test_npath/test_typescript.py::test_do_while PASSED                [ 78%]
tests/test_npath/test_typescript.py::test_do_while_with_bool_cond PASSED [ 78%]
tests/test_npath/test_typescript.py::test_try_catch PASSED               [ 78%]
tests/test_npath/test_typescript.py::test_switch_three_cases PASSED      [ 78%]
tests/test_npath/test_typescript.py::test_switch_with_default PASSED     [ 79%]
tests/test_npath/test_typescript.py::test_ternary PASSED                 [ 79%]
tests/test_npath/test_typescript.py::test_nested_ternary PASSED          [ 79%]
tests/test_npath/test_typescript.py::test_sequential_ifs PASSED          [ 79%]
tests/test_npath/test_typescript.py::test_nested_if PASSED               [ 79%]
tests/test_npath/test_typescript.py::test_named_arrow PASSED             [ 79%]
tests/test_npath/test_typescript.py::test_nested_named_arrow PASSED      [ 79%]
tests/test_npath/test_typescript.py::test_method_definition PASSED       [ 80%]
tests/test_npath/test_typescript.py::test_for_in_loop PASSED             [ 80%]
tests/test_patterns/test_loops.py::test_basic_two_consecutive_calls PASSED [ 80%]
tests/test_patterns/test_loops.py::test_three_consecutive_calls PASSED   [ 80%]
tests/test_patterns/test_loops.py::test_multiline_calls PASSED           [ 80%]
tests/test_patterns/test_loops.py::test_different_objects_no_violation PASSED [ 80%]
tests/test_patterns/test_loops.py::test_different_methods_no_violation PASSED [ 81%]
tests/test_patterns/test_loops.py::test_single_call_no_violation PASSED  [ 81%]
tests/test_patterns/test_loops.py::test_non_consecutive_calls_no_violation PASSED [ 81%]
tests/test_patterns/test_loops.py::test_multiple_groups PASSED           [ 81%]
tests/test_patterns/test_loops.py::test_calls_with_comments_between PASSED [ 81%]
tests/test_patterns/test_loops.py::test_empty_code PASSED                [ 81%]
tests/test_patterns/test_loops.py::test_no_method_calls PASSED           [ 81%]
tests/test_patterns/test_loops.py::test_function_calls_not_method_calls PASSED [ 82%]
tests/test_patterns/test_loops.py::test_chained_method_calls PASSED      [ 82%]
tests/test_patterns/test_loops.py::test_registered_in_shared_patterns PASSED [ 82%]
tests/test_patterns/test_loops.py::test_ignore_comment PASSED            [ 82%]
tests/test_patterns/test_loops.py::test_ignore_comment_snake_case PASSED [ 82%]
tests/test_patterns/test_loops.py::test_violation_line_number PASSED     [ 82%]
tests/test_patterns/test_loops.py::test_severity_is_info PASSED          [ 83%]
tests/test_patterns/test_loops.py::test_inside_function PASSED           [ 83%]
tests/test_patterns/test_loops.py::test_inside_class_method PASSED       [ 83%]
tests/test_patterns/test_loops.py::test_mixed_consecutive_and_non_consecutive PASSED [ 83%]
tests/test_patterns/test_loops.py::test_basic_three_consecutive_function_calls PASSED [ 83%]
tests/test_patterns/test_loops.py::test_two_consecutive_function_calls PASSED [ 83%]
tests/test_patterns/test_loops.py::test_different_functions_no_violation PASSED [ 84%]
tests/test_patterns/test_loops.py::test_mixed_method_and_function_calls PASSED [ 84%]
tests/test_patterns/test_loops.py::test_function_call_vs_method_call_no_crossover PASSED [ 84%]
tests/test_patterns/test_python.py::test_nested_imports PASSED           [ 84%]
tests/test_patterns/test_python.py::test_no_nested_imports PASSED        [ 84%]
tests/test_patterns/test_python.py::test_wildcard_imports PASSED         [ 84%]
tests/test_patterns/test_python.py::test_no_wildcard_imports PASSED      [ 84%]
tests/test_patterns/test_python.py::test_module_level_function_call PASSED [ 85%]
tests/test_patterns/test_python.py::test_module_level_assignment PASSED  [ 85%]
tests/test_patterns/test_python.py::test_inside_main_guard PASSED        [ 85%]
tests/test_patterns/test_python.py::test_inside_type_checking PASSED     [ 85%]
tests/test_patterns/test_python.py::test_function_definitions_allowed PASSED [ 85%]
tests/test_patterns/test_python.py::test_imports_allowed PASSED          [ 85%]
tests/test_patterns/test_python.py::test_module_level_for_loop PASSED    [ 86%]
tests/test_patterns/test_python.py::test_nested_main_guard PASSED        [ 86%]
tests/test_patterns/test_python.py::test_constant_assignment PASSED      [ 86%]
tests/test_patterns/test_python.py::test_assignment_with_execution PASSED [ 86%]
tests/test_patterns/test_python.py::test_nested_import_in_type_checking_block PASSED [ 86%]
tests/test_patterns/test_python.py::test_nested_import_in_class_method_type_checking PASSED [ 86%]
tests/test_patterns/test_python.py::test_module_level_while_loop PASSED  [ 86%]
tests/test_patterns/test_python.py::test_module_level_try_statement PASSED [ 87%]
tests/test_patterns/test_python.py::test_module_level_with_statement PASSED [ 87%]
tests/test_patterns/test_python.py::test_module_level_if_statements_allowed PASSED [ 87%]
tests/test_patterns/test_python.py::test_involves_execution_with_builtins PASSED [ 87%]
tests/test_patterns/test_python.py::test_module_level_call_in_nested_if PASSED [ 87%]
tests/test_patterns/test_python.py::test_nested_type_checking_import_detection PASSED [ 87%]
tests/test_patterns/test_python.py::test_constant_assignment_with_dict_literal PASSED [ 88%]
tests/test_patterns/test_python.py::test_constant_assignment_with_set_literal PASSED [ 88%]
tests/test_patterns/test_python.py::test_comment_only_lines PASSED       [ 88%]
tests/test_patterns/test_python.py::test_standalone_identifier PASSED    [ 88%]
tests/test_patterns/test_python.py::test_standalone_string PASSED        [ 88%]
tests/test_patterns/test_python.py::test_standalone_number PASSED        [ 88%]
tests/test_patterns/test_python.py::test_standalone_float PASSED         [ 88%]
tests/test_patterns/test_python.py::test_standalone_true_false_none PASSED [ 89%]
tests/test_patterns/test_python.py::test_binary_operator_expression PASSED [ 89%]
tests/test_patterns/test_python.py::test_ignore_comment_kebab_case PASSED [ 89%]
tests/test_patterns/test_python.py::test_ignore_comment_snake_case PASSED [ 89%]
tests/test_patterns/test_typescript.py::test_any_type_basic PASSED       [ 89%]
tests/test_patterns/test_typescript.py::test_any_type_not_flagged PASSED [ 89%]
tests/test_patterns/test_typescript.py::test_non_null_assertion_basic PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_non_null_not_flagged PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_as_assertion_basic PASSED   [ 90%]
tests/test_patterns/test_typescript.py::test_as_assertion_not_flagged PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_angle_assertion_basic PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_angle_assertion_tsx_skip PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_enum_declaration_basic PASSED [ 90%]
tests/test_patterns/test_typescript.py::test_enum_not_flagged PASSED     [ 91%]
tests/test_patterns/test_typescript.py::test_function_type_basic PASSED  [ 91%]
tests/test_patterns/test_typescript.py::test_function_type_not_flagged PASSED [ 91%]
tests/test_patterns/test_typescript.py::test_missing_readonly_basic PASSED [ 91%]
tests/test_patterns/test_typescript.py::test_missing_readonly_with_readonly PASSED [ 91%]
tests/test_patterns/test_typescript.py::test_missing_readonly_not_in_param PASSED [ 91%]
tests/test_patterns/test_typescript.py::test_all_patterns PASSED         [ 92%]
tests/test_patterns/test_typescript.py::test_all_patterns_tsx PASSED     [ 92%]
tests/test_patterns/test_typescript.py::test_check_patterns_integration PASSED [ 92%]
tests/test_patterns/test_typescript.py::test_ignore_comment_any_type PASSED [ 92%]
tests/test_patterns/test_typescript.py::test_ignore_comment_non_null PASSED [ 92%]
tests/test_patterns/test_typescript.py::test_ignore_comment_multiple PASSED [ 92%]
tests/test_patterns/test_typescript.py::test_ignore_comment_as_assertion PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_ignore_comment_enum PASSED  [ 93%]
tests/test_patterns/test_typescript.py::test_analyzer_integration PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_analyzer_tsx_skips_angle PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_private_keyword_field PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_private_keyword_method PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_private_keyword_not_flagged PASSED [ 93%]
tests/test_patterns/test_typescript.py::test_non_arrow_method_basic PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_non_arrow_method_arrow_not_flagged PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_non_arrow_method_getter_setter_not_flagged PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_non_arrow_method_private_not_flagged PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_new PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_ignore_comment_private_keyword PASSED [ 94%]
tests/test_patterns/test_typescript.py::test_ignore_comment_non_arrow_method PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_empty_interface_basic PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_empty_interface_with_members_not_flagged PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_empty_interface_extends PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_wrapper_type_basic PASSED   [ 95%]
tests/test_patterns/test_typescript.py::test_wrapper_type_primitives_not_flagged PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_wrapper_type_function_params PASSED [ 95%]
tests/test_patterns/test_typescript.py::test_wrapper_type_generic_not_flagged PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_empty_interface PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_wrapper_type PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_ignore_comment_empty_interface PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_ignore_comment_wrapper_type PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_double_casting_basic PASSED [ 96%]
tests/test_patterns/test_typescript.py::test_double_casting_chained PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_double_casting_single_not_flagged PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_double_casting_triple PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_any_generic_constraint_basic PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_any_generic_constraint_complex PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_any_generic_constraint_object_not_flagged PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_any_generic_constraint_no_constraint_not_flagged PASSED [ 97%]
tests/test_patterns/test_typescript.py::test_any_generic_constraint_other_types_not_flagged PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_basic PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_many_properties PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_mixed_not_flagged PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_single_optional_not_flagged PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_all_required_not_flagged PASSED [ 98%]
tests/test_patterns/test_typescript.py::test_over_optional_interface_with_methods PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_double_casting PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_any_generic_constraint PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_all_patterns_includes_over_optional_interface PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_ignore_comment_double_casting PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_ignore_comment_any_generic_constraint PASSED [ 99%]
tests/test_patterns/test_typescript.py::test_ignore_comment_over_optional_interface PASSED [100%]

============================= 644 passed in 5.02s ==============================
