MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / test_one_rect_compaction

Function test_one_rect_compaction

tests/test_rect.cpp:12–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10// more tiles than the total number of rects (As we can never collapse more rects than exist)
11template <typename T>
12static 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
56static bool test_rect_compaction()
57{

Callers 1

test_rect_compactionFunction · 0.85

Calls 2

emptyMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected