summaryrefslogtreecommitdiff
path: root/datastructures/test/waveletTree.cpp
diff options
context:
space:
mode:
authorGloria Mundi <gloria@gloria-mundi.eu>2024-11-16 01:24:14 +0100
committerGloria Mundi <gloria@gloria-mundi.eu>2024-11-16 01:24:14 +0100
commit98567ec798aa8ca2cfbcb85c774dd470f30e30d4 (patch)
tree5113d5cc24d1ad5f93810b6442ce584a36950dc8 /datastructures/test/waveletTree.cpp
parentad3856a6b766087df0036de0b556f4700a6498c9 (diff)
parent8d11c6c8213f46f0fa19826917c255edd5d43cb1 (diff)
mzuenni tests
Diffstat (limited to 'datastructures/test/waveletTree.cpp')
-rw-r--r--datastructures/test/waveletTree.cpp38
1 files changed, 0 insertions, 38 deletions
diff --git a/datastructures/test/waveletTree.cpp b/datastructures/test/waveletTree.cpp
deleted file mode 100644
index c5da1d2..0000000
--- a/datastructures/test/waveletTree.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "../waveletTree.cpp"
-
-void test(int n) {
- vector<ll> values(n);
- for (ll &x: values) x = util::randint();
- vector<ll> backup = values;
- WaveletTree wave(values);
- assert(values == backup);
- for (int i = 0; i < n; i++) {
- int l = util::randint(n+1);
- int r = util::randint(n+1);
- if (l > r) swap(l, r);
- ll bound = util::randint();
- int res = 0;
- for (ll x: values | views::take(r) | views::drop(l)) {
- if (x < bound) res++;
- }
- assert(wave.countSmaller(l, r, bound) == res);
- }
- for (int i = 0; 5*i < n; i++) {
- int l = util::randint(n);
- int m = util::randint(n);
- int r = util::randint(n);
- if (l > m) swap(l, m);
- if (m > r) swap(m, r);
- if (l > m) swap(l, m);
- r++;
- int k = m-l;
- vector<ll> part(values.begin()+l, values.begin()+r);
- ranges::nth_element(part, part.begin() + k);
- assert(wave.kth(l, r, k) == part[k]);
- }
-}
-
-int main() {
- test(1000);
- test(1);
-}