Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions python/lean_pool/partial_port_audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,8 @@ def evaluate_stats(
imported_by_path.setdefault(normalize_relative_path(file.path), []).append(file)
truncated_files = []
for file in sorted(upstream.files, key=lambda item: item.loc, reverse=True):
if file.loc == 0:
continue
matching_imports = imported_by_path.get(normalize_relative_path(file.path), [])
if not matching_imports:
continue
Expand Down
18 changes: 18 additions & 0 deletions python/tests/test_partial_port_audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,24 @@ def test_evaluate_stats_flags_truncated_matched_file() -> None:
)


def test_evaluate_stats_ignores_zero_loc_files_for_truncation() -> None:
"""Empty upstream files do not cause a divide-by-zero during comparison."""
imported = LeanStats(
(
LeanFile("LeanPool/Foo/Empty.lean", 0, "empty"),
LeanFile("LeanPool/Foo/Main.lean", 1000, "main"),
)
)
upstream = LeanStats(
(
LeanFile("Foo/Empty.lean", 0, "empty"),
LeanFile("Foo/Main.lean", 1000, "main"),
)
)

assert evaluate_stats("LeanPool.Foo", "owner/foo", imported, upstream) is None


def test_evaluate_stats_accepts_close_import() -> None:
"""A near-complete import passes the tolerance check."""
imported = LeanStats((LeanFile("LeanPool/Foo/Main.lean", 920, "main"),))
Expand Down
Loading