Commit Graph

6 Commits

Author SHA1 Message Date
AJ
703efd528a Encapsulate mutable collections in Bin and Result
Replace public mutable collection fields/properties with private
backing fields and expose them as IReadOnlyList. Add proper methods
for mutation (AddItem, AddItems, RemoveItem, SortItems).

Changes:
- Bin.Items: Now private with AddItem/AddItems/RemoveItem/SortItems
- Result.ItemsNotUsed: Now readonly with Add methods
- Result.Bins: Now readonly with Add methods
- Updated all engine classes to use new encapsulated APIs

This improves encapsulation and prevents external code from
bypassing business logic by directly manipulating collections.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 16:02:48 -05:00
AJ
d64d5a8d53 Fix CreateDuplicateBins bug in AdvancedFitEngine 2025-10-01 23:23:12 -04:00
AJ
0fb54daf6f Duplicate bins when possible in AdvancedFitEngine 2025-01-11 00:02:01 -05:00
AJ
ccbf8beeae Allow quantity -1 for infinite. 2025-01-05 23:16:39 -05:00
AJ
a1ad16bc52 Document 2025-01-02 23:21:34 -05:00
AJ
08b3aa9182 Didnt like the name EnhancedBestFitEngine, new one isn't great either but it's better 2025-01-01 00:48:33 -05:00