| 10 | // more tiles than the total number of rects (As we can never collapse more rects than exist) |
| 11 | template <typename T> |
| 12 | static bool test_one_rect_compaction(std::set<Rect<T>> rect_set, unsigned expected_start_count, |
| 13 | bool expected_to_collapse, unsigned expected_end_size = 0) |
| 14 | { |
| 15 | if (rect_set.size() != expected_start_count) |
| 16 | { |
| 17 | LogError("Rect set has size %u at start, expected %u", (unsigned)rect_set.size(), |
| 18 | expected_start_count); |
| 19 | return false; |
| 20 | } |
| 21 | unsigned num_collapsed = Rect<T>::compactRectSet(rect_set); |
| 22 | |
| 23 | if (expected_start_count != 0 && rect_set.empty()) |
| 24 | { |
| 25 | LogError("Collapsed down to zero size set"); |
| 26 | return false; |
| 27 | } |
| 28 | if (num_collapsed && num_collapsed >= expected_start_count) |
| 29 | { |
| 30 | LogError("Somehow managed to collapse %u rects in a set containing %u rects", num_collapsed, |
| 31 | expected_start_count); |
| 32 | return false; |
| 33 | } |
| 34 | if (Rect<T>::compactRectSet(rect_set) != 0) |
| 35 | { |
| 36 | LogError("A second collapse actually collapsed something?"); |
| 37 | return false; |
| 38 | } |
| 39 | |
| 40 | if (expected_to_collapse && num_collapsed == 0) |
| 41 | { |
| 42 | LogError("No rects collapsed but some were expected"); |
| 43 | return false; |
| 44 | } |
| 45 | |
| 46 | if (expected_end_size && rect_set.size() != expected_end_size) |
| 47 | { |
| 48 | LogError("Expected to collapse to %u rects but got %u", (unsigned)rect_set.size(), |
| 49 | expected_end_size); |
| 50 | return false; |
| 51 | } |
| 52 | |
| 53 | return true; |
| 54 | } |
| 55 | |
| 56 | static bool test_rect_compaction() |
| 57 | { |
no test coverage detected