/* * Copyright (C) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef META_TEST_DATA_HELPERS_H #define META_TEST_DATA_HELPERS_H #include #include #include #include #include namespace META_NS { template struct TType { using Type = T; BASE_NS::vector> values; template...>>> TType(Args... args) : values { [args] { return static_cast(args); }... } {} TType(std::initializer_list> values) : values { values } {} }; template struct TestTypes { using Types = ::testing::Types; using Tuple = std::tuple...>; TestTypes(TType... v) : values { v... } {} template auto GetValue(size_t index) const { auto v = std::get>(values); CORE_ASSERT_MSG(index < v.values.size(), "invalid test values"); return v.values[index](); } Tuple values; }; } #endif