| addComponentToBundle(String, MaterialComponent) |   | 76% |   | 75% | 1 | 3 | 1 | 7 | 0 | 1 |
| getBundleStats() |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| createBundle(String, double) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| addBundleToBundle(String, String) |  | 100% |  | 100% | 0 | 3 | 0 | 8 | 0 | 1 |
| addToBundle(String, Material) |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| toString() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| removeFromBundle(String, Material) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| calculateBundleSavings(String) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| lambda$getBundlesByValueRange$0(double, double, MaterialBundle) |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 1 |
| getBundlesByValueRange(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getBundlesByMaterialType(Material.MaterialType) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getBundlesByDiscount(double) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| removeBundle(String) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| lambda$getBundlesByDiscount$0(double, MaterialBundle) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| BundleService() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| calculateTotalSavings() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getTotalBundleValue() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getTotalDiscountedBundleValue() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getBundle(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getAllBundles() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBundleNames() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| clearAllBundles() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getBundleCount() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isEmpty() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBundlesByMaterialType$0(Material.MaterialType, MaterialBundle) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |