Move template specializations into .cc from .h Change-Id: I6d8775c1fa228fde25016a401e3c22a8e3da42f9
diff --git a/test/randomise.cc b/test/randomise.cc new file mode 100644 index 0000000..679ee72 --- /dev/null +++ b/test/randomise.cc
@@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "test/randomise.h" + +namespace libvpx_test { + +// Add further specialisations as necessary + +template<> +bool Randomise::uniform<bool>() { + return rnd_.Rand8() & 1 ? true : false; +} + +template<> +uint8_t Randomise::uniform<uint8_t>() { + return rnd_.Rand8(); +} + +template<> +uint16_t Randomise::uniform<uint16_t>() { + return rnd_.Rand16(); +} + +template<> +uint32_t Randomise::uniform<uint32_t>() { + const uint32_t l = uniform<uint16_t>(); + const uint32_t h = uniform<uint16_t>(); + return h << 16 | l; +} + +template<> +uint64_t Randomise::uniform<uint64_t>() { + const uint64_t l = uniform<uint32_t>(); + const uint64_t h = uniform<uint32_t>(); + return h << 32 | l; +} + +template<> +int8_t Randomise::uniform<int8_t>() { return uniform<uint8_t>(); } + +template<> +int16_t Randomise::uniform<int16_t>() { return uniform<uint16_t>(); } + +template<> +int32_t Randomise::uniform<int32_t>() { return uniform<uint32_t>(); } + +template<> +int64_t Randomise::uniform<int64_t>() { return uniform<uint64_t>(); } + +} // namespace libvpx_test
diff --git a/test/randomise.h b/test/randomise.h index fbf419c..c263f84 100644 --- a/test/randomise.h +++ b/test/randomise.h
@@ -162,45 +162,31 @@ // Add further specialisations as necessary template<> -bool Randomise::uniform<bool>() { - return rnd_.Rand8() & 1 ? true : false; -} +bool Randomise::uniform<bool>(); template<> -uint8_t Randomise::uniform<uint8_t>() { - return rnd_.Rand8(); -} +uint8_t Randomise::uniform<uint8_t>(); template<> -uint16_t Randomise::uniform<uint16_t>() { - return rnd_.Rand16(); -} +uint16_t Randomise::uniform<uint16_t>(); template<> -uint32_t Randomise::uniform<uint32_t>() { - const uint32_t l = uniform<uint16_t>(); - const uint32_t h = uniform<uint16_t>(); - return h << 16 | l; -} +uint32_t Randomise::uniform<uint32_t>(); template<> -uint64_t Randomise::uniform<uint64_t>() { - const uint64_t l = uniform<uint32_t>(); - const uint64_t h = uniform<uint32_t>(); - return h << 32 | l; -} +uint64_t Randomise::uniform<uint64_t>(); template<> -int8_t Randomise::uniform<int8_t>() { return uniform<uint8_t>(); } +int8_t Randomise::uniform<int8_t>(); template<> -int16_t Randomise::uniform<int16_t>() { return uniform<uint16_t>(); } +int16_t Randomise::uniform<int16_t>(); template<> -int32_t Randomise::uniform<int32_t>() { return uniform<uint32_t>(); } +int32_t Randomise::uniform<int32_t>(); template<> -int64_t Randomise::uniform<int64_t>() { return uniform<uint64_t>(); } +int64_t Randomise::uniform<int64_t>(); } // namespace libvpx_test
diff --git a/test/test.mk b/test/test.mk index 8eda2dd..9a87a80 100644 --- a/test/test.mk +++ b/test/test.mk
@@ -49,6 +49,8 @@ LIBVPX_TEST_SRCS-yes += decode_test_driver.h LIBVPX_TEST_SRCS-$(CONFIG_ENCODERS) += encode_test_driver.cc LIBVPX_TEST_SRCS-yes += encode_test_driver.h +LIBVPX_TEST_SRCS-yes += randomise.h +LIBVPX_TEST_SRCS-yes += randomise.cc ## IVF writing. LIBVPX_TEST_SRCS-$(CONFIG_ENCODERS) += ../ivfenc.c ../ivfenc.h