← Leaderboard

Serranegra/optifarm

View on GitHub ↗
Internal81

Unique within the repo — the other 19% repeats across its own files.

Public60

Unique across all public code — a further 21% is its own but appears in other public repos too.

Tidy, but not new — the code doesn't repeat itself, yet a large share already exists across other public repos. A strong candidate for pulling from (or publishing as) a shared package.

Worth consolidating — in the code

Real, actionable duplication in this repo's source, most concrete first.

Longest identical blocks

The longest runs of identical consecutive lines copied between two files (indentation ignored) — the most concrete copy-paste. Lift the block into a shared function or module.

LinesFile AFile BCross-repo
17 Serranegra/optifarm/examples/demo_melon.py:102 Serranegra/optifarm/examples/demo_wheat.py:85 same repo
12 Serranegra/optifarm/tests/test_cactus.py:168 Serranegra/optifarm/tests/test_sugarcane.py:126 same repo
10 Serranegra/optifarm/examples/demo_cactus.py:45 Serranegra/optifarm/examples/demo_sugarcane.py:39 same repo
10 Serranegra/optifarm/examples/demo_cactus.py:225 Serranegra/optifarm/examples/demo_wheat.py:306 same repo
10 Serranegra/optifarm/examples/demo_cactus.py:225 Serranegra/optifarm/examples/demo_melon.py:474 same repo
9 Serranegra/optifarm/examples/demo_melon.py:621 Serranegra/optifarm/examples/demo_sugarcane.py:454 same repo
9 Serranegra/optifarm/examples/demo_sugarcane.py:454 Serranegra/optifarm/examples/demo_wheat.py:446 same repo
7 Serranegra/optifarm/examples/generate_readme_images.py:63 Serranegra/optifarm/tests/test_demo.py:29 same repo
6 Serranegra/optifarm/examples/_shared.py:19 Serranegra/optifarm/examples/demo_melon.py:72 same repo

Top duplication hotspots

SimilarityOverlapFile AFile BCross-repo
24% 661 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/examples/demo_wheat.py same repo
29% 630 Serranegra/optifarm/examples/demo_cactus.py Serranegra/optifarm/examples/demo_sugarcane.py same repo
19% 554 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/examples/demo_sugarcane.py same repo
25% 529 Serranegra/optifarm/examples/demo_cactus.py Serranegra/optifarm/examples/demo_wheat.py same repo
19% 528 Serranegra/optifarm/examples/demo_cactus.py Serranegra/optifarm/examples/demo_melon.py same repo
22% 526 Serranegra/optifarm/examples/demo_sugarcane.py Serranegra/optifarm/examples/demo_wheat.py same repo
8% 358 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/tests/test_demo.py same repo
8% 313 Serranegra/optifarm/examples/demo_sugarcane.py Serranegra/optifarm/tests/test_demo.py same repo
7% 284 Serranegra/optifarm/examples/demo_wheat.py Serranegra/optifarm/tests/test_demo.py same repo
7% 277 Serranegra/optifarm/examples/demo_cactus.py Serranegra/optifarm/tests/test_demo.py same repo
10% 249 Serranegra/optifarm/mcfarm_opt/io/svg.py Serranegra/optifarm/tests/test_svg.py same repo
5% 217 Serranegra/optifarm/examples/generate_readme_images.py Serranegra/optifarm/tests/test_demo.py same repo
7% 201 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/tests/conftest.py same repo
5% 186 Serranegra/optifarm/tests/conftest.py Serranegra/optifarm/tests/test_demo.py same repo
7% 182 Serranegra/optifarm/examples/_shared.py Serranegra/optifarm/examples/demo_melon.py same repo
5% 181 Serranegra/optifarm/tests/test_demo.py Serranegra/optifarm/tests/test_svg.py same repo
10% 166 Serranegra/optifarm/mcfarm_opt/crops/melon.py Serranegra/optifarm/tests/test_melon.py same repo
6% 164 Serranegra/optifarm/examples/demo_cactus.py Serranegra/optifarm/examples/generate_readme_images.py same repo
5% 164 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/examples/generate_readme_images.py same repo
6% 160 Serranegra/optifarm/examples/demo_melon.py Serranegra/optifarm/mcfarm_opt/crops/melon.py same repo

Duplicate declarations

The same function, variable, class, or type name declared in more than one file — a fast copy-paste signal. Consider extracting a shared definition.

FilesDeclarationWhere
9 class mcfarm_opt Serranegra/optifarm/mcfarm_opt/__init__.py
Serranegra/optifarm/mcfarm_opt/core/variables.py
Serranegra/optifarm/mcfarm_opt/crops/__init__.py
+6 more
8 fn name Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/cactus.py
Serranegra/optifarm/mcfarm_opt/crops/melon.py
+5 more
5 fn requirements Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/cactus.py
Serranegra/optifarm/mcfarm_opt/crops/sugarcane.py
+2 more
5 fn support_blocks Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/cactus.py
Serranegra/optifarm/mcfarm_opt/crops/sugarcane.py
+2 more
4 fn _cell Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
+1 more
4 fn _gain_cell Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
+1 more
4 fn print_comparison Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
+1 more
4 fn RUN_ALL Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
+1 more
4 fn run_one Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
+1 more
3 fn add_constraints Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/melon.py
Serranegra/optifarm/tests/test_extensibility.py
3 fn baseline_checkerboard Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/examples/demo_sugarcane.py
3 fn block_types Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/melon.py
Serranegra/optifarm/tests/test_extensibility.py
3 fn crop_blocks Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/melon.py
Serranegra/optifarm/tests/test_extensibility.py
3 fn objective_terms Serranegra/optifarm/mcfarm_opt/crops/base.py
Serranegra/optifarm/mcfarm_opt/crops/melon.py
Serranegra/optifarm/tests/test_extensibility.py
3 fn solve Serranegra/optifarm/mcfarm_opt/solvers/base.py
Serranegra/optifarm/mcfarm_opt/solvers/ilp.py
Serranegra/optifarm/tests/conftest.py
3 fn test_empty_terrain_yields_empty_layout Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_sugarcane.py
Serranegra/optifarm/tests/test_wheat.py
3 fn test_fully_blocked_grid_yields_nothing_without_crashing Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_sugarcane.py
Serranegra/optifarm/tests/test_wheat.py
3 class TestAgainstBruteForce Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_sugarcane.py
Serranegra/optifarm/tests/test_wheat.py
3 class TestDegenerate Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_sugarcane.py
Serranegra/optifarm/tests/test_wheat.py
3 class TestSolverBehaviour Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_sugarcane.py
Serranegra/optifarm/tests/test_wheat.py
3 class TestTheRule Serranegra/optifarm/tests/test_cactus.py
Serranegra/optifarm/tests/test_melon.py
Serranegra/optifarm/tests/test_wheat.py
2 fn _apply_checkerboard Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_sugarcane.py
2 fn augment Serranegra/optifarm/examples/demo_melon.py
Serranegra/optifarm/tests/conftest.py
2 fn baseline_greedy Serranegra/optifarm/examples/demo_cactus.py
Serranegra/optifarm/examples/demo_wheat.py
2 fn print_metrics Serranegra/optifarm/examples/_shared.py
Serranegra/optifarm/examples/demo_melon.py

Docs & prose

Near-identical documentation — often translations (e.g. README.mdREADME_zh-CN.md) or mirrored guides. Usually intentional, not cleanup — listed separately so it doesn't inflate the code signal above.

Top duplication hotspots

SimilarityOverlapFile AFile BCross-repo
7% 313 Serranegra/optifarm/README.md Serranegra/optifarm/examples/README.md same repo

Largest files

Largest files

LOCFileStatus
1095Serranegra/optifarm/tests/test_demo.pyindexed
849Serranegra/optifarm/README.mdindexed
635Serranegra/optifarm/examples/demo_melon.pyindexed
472Serranegra/optifarm/tests/test_svg.pyindexed
468Serranegra/optifarm/examples/demo_sugarcane.pyindexed
460Serranegra/optifarm/examples/demo_wheat.pyindexed
451Serranegra/optifarm/examples/generate_readme_images.pyindexed
446Serranegra/optifarm/tests/conftest.pyindexed
380Serranegra/optifarm/examples/demo_cactus.pyindexed
325Serranegra/optifarm/mcfarm_opt/io/svg.pyindexed