diff options
author | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-09-01 16:48:17 +0100 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-09-04 16:34:28 +0000 |
commit | c85edf1a5a3ad0e6906c0e90c18cc0080d71501d (patch) | |
tree | dab768606407449aaf3e9257a5e13eb8481c89bc /tests/framework | |
parent | b566b6e0bf30eb155d44b800454b7ad41e9e7970 (diff) | |
download | ComputeLibrary-c85edf1a5a3ad0e6906c0e90c18cc0080d71501d.tar.gz |
Make zip and combine variadic
* Illustrate the benefit by writing CPU MatMul test dataset
in a more readable way.
Part of: COMPMID-6353
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: Id5dbc13a051709237bbcc4dd88716d0b24ecfd5d
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10227
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/framework')
-rw-r--r-- | tests/framework/datasets/CartesianProductDataset.h | 16 | ||||
-rw-r--r-- | tests/framework/datasets/ZipDataset.h | 16 |
2 files changed, 30 insertions, 2 deletions
diff --git a/tests/framework/datasets/CartesianProductDataset.h b/tests/framework/datasets/CartesianProductDataset.h index 19ac4f6666..7b3ff12047 100644 --- a/tests/framework/datasets/CartesianProductDataset.h +++ b/tests/framework/datasets/CartesianProductDataset.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2018, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -186,6 +186,20 @@ CartesianProductDataset<T, U> combine(T &&dataset1, U &&dataset2) * * @param[in] dataset1 First dataset. * @param[in] dataset2 Second dataset. + * @param[in] datasets Subsequent dataset. + * + * @return A grid dataset. + */ +template <typename T1, typename T2, typename... Ts> +auto combine(T1 &&dataset1, T2 &&dataset2, Ts &&... datasets) -> decltype(combine(std::forward<T1>(dataset1), combine(std::forward<T2>(dataset2), std::forward<Ts>(datasets)...))) +{ + return combine(std::forward<T1>(dataset1), combine(std::forward<T2>(dataset2), std::forward<Ts>(datasets)...)); +} + +/** Helper function to create a @ref CartesianProductDataset. + * + * @param[in] dataset1 First dataset. + * @param[in] dataset2 Second dataset. * * @return A grid dataset. */ diff --git a/tests/framework/datasets/ZipDataset.h b/tests/framework/datasets/ZipDataset.h index ce1bb37cab..0b963484c5 100644 --- a/tests/framework/datasets/ZipDataset.h +++ b/tests/framework/datasets/ZipDataset.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2018, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -150,6 +150,20 @@ ZipDataset<T, U> zip(T &&dataset1, U &&dataset2) { return ZipDataset<T, U>(std::forward<T>(dataset1), std::forward<U>(dataset2)); } + +/** Helper function to create a @ref ZipDataset. + * + * @param[in] dataset1 First dataset. + * @param[in] dataset2 Second dataset. + * @param[in] datasets Subsequent datasets. + * + * @return A zip dataset. + */ +template <typename T1, typename T2, typename... Ts> +auto zip(T1 &&dataset1, T2 &&dataset2, Ts &&... datasets) -> decltype(zip(std::forward<T1>(dataset1), zip(std::forward<T2>(dataset2), std::forward<Ts>(datasets)...))) +{ + return zip(std::forward<T1>(dataset1), zip(std::forward<T2>(dataset2), std::forward<Ts>(datasets)...)); +} } // namespace dataset } // namespace framework } // namespace test |