diff --git a/tests/quick_select_test.cc b/tests/quick_select_test.cc index 4696f9e..15795f7 100644 --- a/tests/quick_select_test.cc +++ b/tests/quick_select_test.cc @@ -7,7 +7,6 @@ Copyright 2024 Ahmet Inan #include #include #include -#include #include #include "quick_select.hh" @@ -22,15 +21,18 @@ int main() typedef std::default_random_engine generator; typedef std::uniform_int_distribution distribution; auto rand = std::bind(distribution(1, MAX_N), generator(seed)); - int a[MAX_N], b[MAX_N]; + int a[MAX_N]; for (int loop = 0; loop < 10000; ++loop) { int size = rand(); for (int i = 0; i < size; ++i) - a[i] = b[i] = rand(); + a[i] = rand(); int k = rand() % size; - std::nth_element(a, a+k, a+size); - int v = DSP::quick_select(b, k, size); + int v = DSP::quick_select(a, k, size); assert(v == a[k]); + for (int i = 0; i < k; ++i) + assert(a[i] <= a[k]); + for (int i = k + 1; i < size; ++i) + assert(a[i] >= a[k]); } std::cerr << "Quick select algorithm test passed!" << std::endl; return 0;