== F1a: find_untested_sources.py on fixture WITHOUT tests (needs-wrappers) == Scanning /private/tmp/dotnet-skills-review/tests/dotnet-test/generate-testability-wrappers/fixtures/needs-wrappers... Parsed 5 files: 5 source, 0 test. { "repo_root": "/private/tmp/dotnet-skills-review/tests/dotnet-test/generate-testability-wrappers/fixtures/needs-wrappers", "summary": { "source_files": 5, "test_files": 0, "tested_source_files": 0, "untested_source_files": 5, "orphan_test_files": 0, "languages": [ "csharp" ] }, "untested_sources": [ { "path": "Program.cs", "language": "csharp", "declaration_count": 1, "declarations": [ "Program" ], "suggested_test_path": "ProgramTests.cs" }, { "path": "Services/ConsolePrompter.cs", "language": "csharp", "declaration_count": 1, "declarations": [ "ConsolePrompter" exit: 0 == F1b: same script on fixture WITH tests (grade-tests production-available) == Scanning /private/tmp/dotnet-skills-review/tests/dotnet-test/grade-tests/fixtures/production-available... Parsed 2 files: 1 source, 1 test. { "repo_root": "/private/tmp/dotnet-skills-review/tests/dotnet-test/grade-tests/fixtures/production-available", "summary": { "source_files": 1, "test_files": 1, "tested_source_files": 1, "untested_source_files": 0, "orphan_test_files": 0, "languages": [ "csharp" ] }, "untested_sources": [], "orphan_tests": [] } exit: 0 == F1c: negative case: nonexistent path == ERROR: not a directory: /private/tmp/does-not-exist-xyz exit: 1