|
9 | 9 |
|
10 | 10 | #include <algorithm> /// For std::min and std::max
|
11 | 11 | #include <cassert> /// For assert
|
12 |
| -#include <iostream> /// For IO operations |
13 | 12 | #include <vector> /// For vector container
|
14 | 13 |
|
15 | 14 | /*
|
@@ -58,17 +57,38 @@ int trappedRainwater(const std::vector<int>& heights) {
|
58 | 57 | * @returns void
|
59 | 58 | */
|
60 | 59 | static void test() {
|
61 |
| - std::vector<int> heights0 = {0, 1}; |
62 |
| - assert(dynamic_programming::trappedRainwater(heights0) == 0); |
| 60 | + std::vector<int> test_basic = {0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}; |
| 61 | + assert(dynamic_programming::trappedRainwater(test_basic) == 6); |
63 | 62 |
|
64 |
| - std::vector<int> heights1 = {0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}; |
65 |
| - assert(dynamic_programming::trappedRainwater(heights1) == 6); |
| 63 | + std::vector<int> test_peak_under_water = {3, 0, 2, 0, 4}; |
| 64 | + assert(dynamic_programming::trappedRainwater(test_peak_under_water) == 7); |
66 | 65 |
|
67 |
| - std::vector<int> heights2 = {3, 0, 0, 2, 0, 4}; |
68 |
| - assert(dynamic_programming::trappedRainwater(heights2) == 10); |
| 66 | + std::vector<int> test_bucket = {5, 1, 5}; |
| 67 | + assert(dynamic_programming::trappedRainwater(test_bucket) == 4); |
69 | 68 |
|
70 |
| - std::vector<int> heights3 = {1, 2, 3, 4, 5}; |
71 |
| - assert(dynamic_programming::trappedRainwater(heights3) == 0); |
| 69 | + std::vector<int> test_skewed_bucket = {4, 1, 5}; |
| 70 | + assert(dynamic_programming::trappedRainwater(test_skewed_bucket) == 3); |
| 71 | + |
| 72 | + std::vector<int> test_empty = {}; |
| 73 | + assert(dynamic_programming::trappedRainwater(test_empty) == 0); |
| 74 | + |
| 75 | + std::vector<int> test_flat = {0, 0, 0, 0, 0}; |
| 76 | + assert(dynamic_programming::trappedRainwater(test_flat) == 0); |
| 77 | + |
| 78 | + std::vector<int> test_no_trapped_water = {1, 1, 2, 4, 0, 0, 0}; |
| 79 | + assert(dynamic_programming::trappedRainwater(test_no_trapped_water) == 0); |
| 80 | + |
| 81 | + std::vector<int> test_single_elevation = {5}; |
| 82 | + assert(dynamic_programming::trappedRainwater(test_single_elevation) == 0); |
| 83 | + |
| 84 | + std::vector<int> test_two_point_elevation = {5, 1}; |
| 85 | + assert(dynamic_programming::trappedRainwater(test_two_point_elevation) == |
| 86 | + 0); |
| 87 | + |
| 88 | + std::vector<int> test_large_elevation_map_difference = {5, 1, 6, 1, |
| 89 | + 7, 1, 8}; |
| 90 | + assert(dynamic_programming::trappedRainwater( |
| 91 | + test_large_elevation_map_difference) == 15); |
72 | 92 | }
|
73 | 93 |
|
74 | 94 | /**
|
|
0 commit comments