parallel_set.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2009-2020 Intel Corporation
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include "parallel_set.h"
  4. #include "../sys/regression.h"
  5. namespace embree
  6. {
  7. struct parallel_set_regression_test : public RegressionTest
  8. {
  9. parallel_set_regression_test(const char* name) : RegressionTest(name) {
  10. registerRegressionTest(this);
  11. }
  12. bool run ()
  13. {
  14. bool passed = true;
  15. /* create vector with random numbers */
  16. const size_t N = 10000;
  17. std::vector<uint32_t> unsorted(N);
  18. for (size_t i=0; i<N; i++) unsorted[i] = 2*rand();
  19. /* created set from numbers */
  20. parallel_set<uint32_t> sorted;
  21. sorted.init(unsorted);
  22. /* check that all elements are in the set */
  23. for (size_t i=0; i<N; i++) {
  24. passed &= sorted.lookup(unsorted[i]);
  25. }
  26. /* check that these elements are not in the set */
  27. for (size_t i=0; i<N; i++) {
  28. passed &= !sorted.lookup(unsorted[i]+1);
  29. }
  30. return passed;
  31. }
  32. };
  33. parallel_set_regression_test parallel_set_regression("parallel_set_regression_test");
  34. }