diff options
author | jfons <joan.fonssanchez@gmail.com> | 2021-04-20 18:38:09 +0200 |
---|---|---|
committer | jfons <joan.fonssanchez@gmail.com> | 2021-04-23 15:57:28 +0200 |
commit | 34b3e8f9e2ae076990ecf3b2827eff759ba2abf9 (patch) | |
tree | 854a526a5ba2d6128e44d995d1bc138cf84ee722 /thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp | |
parent | eeccab26c5641409092547e02ad11e6253ac1b87 (diff) | |
download | redot-engine-34b3e8f9e2ae076990ecf3b2827eff759ba2abf9.tar.gz |
Add Embree-aarch64 thirdparty library
Diffstat (limited to 'thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp')
-rw-r--r-- | thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp b/thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp new file mode 100644 index 0000000000..09dc303f81 --- /dev/null +++ b/thirdparty/embree-aarch64/common/algorithms/parallel_map.cpp @@ -0,0 +1,47 @@ +// Copyright 2009-2020 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#include "parallel_map.h" +#include "../sys/regression.h" + +namespace embree +{ + struct parallel_map_regression_test : public RegressionTest + { + parallel_map_regression_test(const char* name) : RegressionTest(name) { + registerRegressionTest(this); + } + + bool run () + { + bool passed = true; + + /* create key/value vectors with random numbers */ + const size_t N = 10000; + std::vector<uint32_t> keys(N); + std::vector<uint32_t> vals(N); + for (size_t i=0; i<N; i++) keys[i] = 2*unsigned(i)*647382649; + for (size_t i=0; i<N; i++) std::swap(keys[i],keys[rand()%N]); + for (size_t i=0; i<N; i++) vals[i] = 2*rand(); + + /* create map */ + parallel_map<uint32_t,uint32_t> map; + map.init(keys,vals); + + /* check that all keys are properly mapped */ + for (size_t i=0; i<N; i++) { + const uint32_t* val = map.lookup(keys[i]); + passed &= val && (*val == vals[i]); + } + + /* check that these keys are not in the map */ + for (size_t i=0; i<N; i++) { + passed &= !map.lookup(keys[i]+1); + } + + return passed; + } + }; + + parallel_map_regression_test parallel_map_regression("parallel_map_regression_test"); +} |