Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /base /parameter_pack_unittest.cc
blob: 8d3172b5e62cb0e3b6d047b63e40cacc2b3d86b0 [file] [log] [blame] [edit]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include"base/parameter_pack.h"
#include"testing/gtest/include/gtest/gtest.h"
namespace base{
TEST(ParameterPack,AnyOf){
static_assert(any_of({true,true,true}),"");
static_assert(any_of({false,false,true,false}),"");
static_assert(!any_of({false}),"");
static_assert(!any_of({false,false,false}),"");
}
TEST(ParameterPack,AllOf){
static_assert(all_of({true,true,true}),"");
static_assert(!all_of({true,true,true,false}),"");
static_assert(!all_of({false}),"");
static_assert(!all_of({false,false}),"");
}
TEST(ParameterPack,Count){
static_assert(count({1,2,2,2,2,2,3},2)==5u,"");
}
TEST(ParameterPack,HasType){
static_assert(ParameterPack<int,float,bool>::HasType<int>(),"");
static_assert(ParameterPack<int,float,bool>::HasType<bool>(),"");
static_assert(ParameterPack<int,float,bool>::HasType<bool>(),"");
static_assert(!ParameterPack<int,float,bool>::HasType<void*>(),"");
}
TEST(ParameterPack,OnlyHasType){
static_assert(ParameterPack<int,int>::OnlyHasType<int>(),"");
static_assert(ParameterPack<int,int,int,int>::OnlyHasType<int>(),"");
static_assert(!ParameterPack<int,bool>::OnlyHasType<int>(),"");
static_assert(!ParameterPack<int,int,bool,int>::OnlyHasType<int>(),"");
static_assert(!ParameterPack<int,int,int>::OnlyHasType<bool>(),"");
}
TEST(ParameterPack,IsUniqueInPack){
static_assert(ParameterPack<int,float,bool>::IsUniqueInPack<int>(),"");
static_assert(!ParameterPack<int,int,bool>::IsUniqueInPack<int>(),"");
}
TEST(ParameterPack,IndexInPack){
static_assert(ParameterPack<int,float,bool>::IndexInPack<int>()==0u,"");
static_assert(ParameterPack<int,float,bool>::IndexInPack<float>()==1u,
"");
static_assert(ParameterPack<int,float,bool>::IndexInPack<bool>()==2u,"");
static_assert(
ParameterPack<int,float,bool>::IndexInPack<void*>()== pack_npos,"");
}
TEST(ParameterPack,NthType){
static_assert(
std::is_same_v<int,ParameterPack<int,float,bool>::NthType<0>>,"");
static_assert(
std::is_same_v<float,ParameterPack<int,float,bool>::NthType<1>>,"");
static_assert(
std::is_same_v<bool,ParameterPack<int,float,bool>::NthType<2>>,"");
}
TEST(ParameterPack,IsAllSameType){
static_assert(ParameterPack<int>::IsAllSameType(),"");
static_assert(ParameterPack<int,int,int>::IsAllSameType(),"");
static_assert(!ParameterPack<int,int,int,int,bool>::IsAllSameType(),"");
}
}// namespace base

[8]ページ先頭

©2009-2025 Movatter.jp