1*a65addddSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*a65addddSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. All Rights Reserved. 3*a65addddSAndroid Build Coastguard Worker# 4*a65addddSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*a65addddSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*a65addddSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*a65addddSAndroid Build Coastguard Worker# 8*a65addddSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*a65addddSAndroid Build Coastguard Worker# 10*a65addddSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*a65addddSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS-IS" BASIS, 12*a65addddSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*a65addddSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*a65addddSAndroid Build Coastguard Worker# limitations under the License. 15*a65addddSAndroid Build Coastguard Worker 16*a65addddSAndroid Build Coastguard Workerfrom absl.testing import parameterized 17*a65addddSAndroid Build Coastguard Workerfrom fruit_test_common import * 18*a65addddSAndroid Build Coastguard Worker 19*a65addddSAndroid Build Coastguard WorkerCOMMON_DEFINITIONS = ''' 20*a65addddSAndroid Build Coastguard Worker #define IN_FRUIT_CPP_FILE 1 21*a65addddSAndroid Build Coastguard Worker 22*a65addddSAndroid Build Coastguard Worker #include "meta/common.h" 23*a65addddSAndroid Build Coastguard Worker #include <fruit/impl/meta/set.h> 24*a65addddSAndroid Build Coastguard Worker #include <fruit/impl/meta/metaprogramming.h> 25*a65addddSAndroid Build Coastguard Worker 26*a65addddSAndroid Build Coastguard Worker struct A1 {}; 27*a65addddSAndroid Build Coastguard Worker struct B1 {}; 28*a65addddSAndroid Build Coastguard Worker struct C1 {}; 29*a65addddSAndroid Build Coastguard Worker 30*a65addddSAndroid Build Coastguard Worker using A = Type<A1>; 31*a65addddSAndroid Build Coastguard Worker using B = Type<B1>; 32*a65addddSAndroid Build Coastguard Worker using C = Type<C1>; 33*a65addddSAndroid Build Coastguard Worker 34*a65addddSAndroid Build Coastguard Worker struct Square { 35*a65addddSAndroid Build Coastguard Worker template <typename N> 36*a65addddSAndroid Build Coastguard Worker struct apply { 37*a65addddSAndroid Build Coastguard Worker using type = Int<N::value * N::value>; 38*a65addddSAndroid Build Coastguard Worker }; 39*a65addddSAndroid Build Coastguard Worker }; 40*a65addddSAndroid Build Coastguard Worker ''' 41*a65addddSAndroid Build Coastguard Worker 42*a65addddSAndroid Build Coastguard Workerclass TestSet(parameterized.TestCase): 43*a65addddSAndroid Build Coastguard Worker def test_EmptySet(self): 44*a65addddSAndroid Build Coastguard Worker source = ''' 45*a65addddSAndroid Build Coastguard Worker int main() { 46*a65addddSAndroid Build Coastguard Worker AssertNot(IsInSet(A, EmptySet)); 47*a65addddSAndroid Build Coastguard Worker } 48*a65addddSAndroid Build Coastguard Worker ''' 49*a65addddSAndroid Build Coastguard Worker expect_success( 50*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 51*a65addddSAndroid Build Coastguard Worker source, 52*a65addddSAndroid Build Coastguard Worker locals()) 53*a65addddSAndroid Build Coastguard Worker 54*a65addddSAndroid Build Coastguard Worker def test_ToSet1(self): 55*a65addddSAndroid Build Coastguard Worker source = ''' 56*a65addddSAndroid Build Coastguard Worker int main() { 57*a65addddSAndroid Build Coastguard Worker Assert(IsInSet(A, ToSet1<A>)); 58*a65addddSAndroid Build Coastguard Worker AssertNot(IsInSet(A, ToSet1<B>)); 59*a65addddSAndroid Build Coastguard Worker } 60*a65addddSAndroid Build Coastguard Worker ''' 61*a65addddSAndroid Build Coastguard Worker expect_success( 62*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 63*a65addddSAndroid Build Coastguard Worker source, 64*a65addddSAndroid Build Coastguard Worker locals()) 65*a65addddSAndroid Build Coastguard Worker 66*a65addddSAndroid Build Coastguard Worker def test_ToSet2(self): 67*a65addddSAndroid Build Coastguard Worker source = ''' 68*a65addddSAndroid Build Coastguard Worker int main() { 69*a65addddSAndroid Build Coastguard Worker Assert(IsInSet(A, ToSet2<A, B>)); 70*a65addddSAndroid Build Coastguard Worker Assert(IsInSet(B, ToSet2<A, B>)); 71*a65addddSAndroid Build Coastguard Worker AssertNot(IsInSet(C, ToSet2<A, B>)); 72*a65addddSAndroid Build Coastguard Worker } 73*a65addddSAndroid Build Coastguard Worker ''' 74*a65addddSAndroid Build Coastguard Worker expect_success( 75*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 76*a65addddSAndroid Build Coastguard Worker source, 77*a65addddSAndroid Build Coastguard Worker locals()) 78*a65addddSAndroid Build Coastguard Worker 79*a65addddSAndroid Build Coastguard Worker def test_IsSameSet(self): 80*a65addddSAndroid Build Coastguard Worker source = ''' 81*a65addddSAndroid Build Coastguard Worker int main() { 82*a65addddSAndroid Build Coastguard Worker AssertSameSet(EmptySet, EmptySet); 83*a65addddSAndroid Build Coastguard Worker AssertSameSet(ToSet<A, B>, ToSet<B, A>); 84*a65addddSAndroid Build Coastguard Worker } 85*a65addddSAndroid Build Coastguard Worker ''' 86*a65addddSAndroid Build Coastguard Worker expect_success( 87*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 88*a65addddSAndroid Build Coastguard Worker source, 89*a65addddSAndroid Build Coastguard Worker locals()) 90*a65addddSAndroid Build Coastguard Worker 91*a65addddSAndroid Build Coastguard Worker def test_FoldSet(self): 92*a65addddSAndroid Build Coastguard Worker source = ''' 93*a65addddSAndroid Build Coastguard Worker int main() { 94*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSet(ToSet<>, Sum, Int<3>)>, Int<3>); 95*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSet(ToSet<Int<2>>, Sum, Int<3>)>, Int<5>); 96*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSet(ToSet<Int<3>, Int<2>, Int<5>, Int<9>, Int<13>>, Sum, Int<7>)>, Int<39>); 97*a65addddSAndroid Build Coastguard Worker } 98*a65addddSAndroid Build Coastguard Worker ''' 99*a65addddSAndroid Build Coastguard Worker expect_success( 100*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 101*a65addddSAndroid Build Coastguard Worker source, 102*a65addddSAndroid Build Coastguard Worker locals()) 103*a65addddSAndroid Build Coastguard Worker 104*a65addddSAndroid Build Coastguard Worker def test_FoldSetWithCombine(self): 105*a65addddSAndroid Build Coastguard Worker source = ''' 106*a65addddSAndroid Build Coastguard Worker int main() { 107*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSetWithCombine(ToSet<>, Square, Sum, Int<0>)>, Int<0>); 108*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSetWithCombine(ToSet<Int<2>>, Square, Sum, Int<0>)>, Int<4>); 109*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<FoldSetWithCombine(ToSet<Int<3>, Int<2>, Int<5>, Int<9>, Int<13>>, Square, Sum, Int<0>)>, Int<288>); 110*a65addddSAndroid Build Coastguard Worker } 111*a65addddSAndroid Build Coastguard Worker ''' 112*a65addddSAndroid Build Coastguard Worker expect_success( 113*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 114*a65addddSAndroid Build Coastguard Worker source, 115*a65addddSAndroid Build Coastguard Worker locals()) 116*a65addddSAndroid Build Coastguard Worker 117*a65addddSAndroid Build Coastguard Worker def test_AddToSet(self): 118*a65addddSAndroid Build Coastguard Worker source = ''' 119*a65addddSAndroid Build Coastguard Worker int main() { 120*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<AddToSet(EmptySet, A)>, ToSet<A>); 121*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<AddToSet(ToSet<A, B>, A)>, ToSet<A, B>); 122*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<AddToSet(ToSet<C, B>, A)>, ToSet<A, C, B>); 123*a65addddSAndroid Build Coastguard Worker } 124*a65addddSAndroid Build Coastguard Worker ''' 125*a65addddSAndroid Build Coastguard Worker expect_success( 126*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 127*a65addddSAndroid Build Coastguard Worker source, 128*a65addddSAndroid Build Coastguard Worker locals()) 129*a65addddSAndroid Build Coastguard Worker 130*a65addddSAndroid Build Coastguard Worker def test_TransformSet(self): 131*a65addddSAndroid Build Coastguard Worker source = ''' 132*a65addddSAndroid Build Coastguard Worker int main() { 133*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<TransformSet(ToSet<>, Square)>, ToSet<>); 134*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<TransformSet(ToSet<Int<2>>, Square)>, ToSet<Int<4>>); 135*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<TransformSet(ToSet<Int<3>, Int<2>, Int<5>, Int<9>, Int<13>>, Square)>, ToSet<Int<9>, Int<4>, Int<25>, Int<81>, Int<169>>); 136*a65addddSAndroid Build Coastguard Worker } 137*a65addddSAndroid Build Coastguard Worker ''' 138*a65addddSAndroid Build Coastguard Worker expect_success( 139*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 140*a65addddSAndroid Build Coastguard Worker source, 141*a65addddSAndroid Build Coastguard Worker locals()) 142*a65addddSAndroid Build Coastguard Worker 143*a65addddSAndroid Build Coastguard Worker def test_SetSize(self): 144*a65addddSAndroid Build Coastguard Worker source = ''' 145*a65addddSAndroid Build Coastguard Worker int main() { 146*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<SetSize(ToSet<>)>, Int<0>); 147*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<SetSize(ToSet<Int<2>>)>, Int<1>); 148*a65addddSAndroid Build Coastguard Worker AssertSameType(Id<SetSize(ToSet<Int<3>, Int<2>, Int<5>, Int<9>, Int<13>>)>, Int<5>); 149*a65addddSAndroid Build Coastguard Worker } 150*a65addddSAndroid Build Coastguard Worker ''' 151*a65addddSAndroid Build Coastguard Worker expect_success( 152*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 153*a65addddSAndroid Build Coastguard Worker source, 154*a65addddSAndroid Build Coastguard Worker locals()) 155*a65addddSAndroid Build Coastguard Worker 156*a65addddSAndroid Build Coastguard Worker def test_IsEmptySet(self): 157*a65addddSAndroid Build Coastguard Worker source = ''' 158*a65addddSAndroid Build Coastguard Worker int main() { 159*a65addddSAndroid Build Coastguard Worker Assert(IsEmptySet(ToSet<>)); 160*a65addddSAndroid Build Coastguard Worker AssertNot(IsEmptySet(ToSet<Int<2>>)); 161*a65addddSAndroid Build Coastguard Worker AssertNot(IsEmptySet(ToSet<Int<3>, Int<2>, Int<5>, Int<9>, Int<13>>)); 162*a65addddSAndroid Build Coastguard Worker } 163*a65addddSAndroid Build Coastguard Worker ''' 164*a65addddSAndroid Build Coastguard Worker expect_success( 165*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 166*a65addddSAndroid Build Coastguard Worker source, 167*a65addddSAndroid Build Coastguard Worker locals()) 168*a65addddSAndroid Build Coastguard Worker 169*a65addddSAndroid Build Coastguard Worker def test_SetDifference(self): 170*a65addddSAndroid Build Coastguard Worker source = ''' 171*a65addddSAndroid Build Coastguard Worker int main() { 172*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<>, ToSet<>)>, ToSet<>); 173*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<>, ToSet<A>)>, ToSet<>); 174*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<>, ToSet<A, B>)>, ToSet<>); 175*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<>, ToSet<A, B, C>)>, ToSet<>); 176*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A>, ToSet<>)>, ToSet<A>); 177*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A>, ToSet<A>)>, ToSet<>); 178*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A>, ToSet<A, B>)>, ToSet<>); 179*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A>, ToSet<A, B, C>)>, ToSet<>); 180*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B>, ToSet<>)>, ToSet<B>); 181*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B>, ToSet<A>)>, ToSet<B>); 182*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B>, ToSet<A, B>)>, ToSet<>); 183*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B>, ToSet<A, B, C>)>, ToSet<>); 184*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B, C>, ToSet<>)>, ToSet<B, C>); 185*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B, C>, ToSet<A>)>, ToSet<B, C>); 186*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B, C>, ToSet<A, B>)>, ToSet<C>); 187*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<B, C>, ToSet<A, B, C>)>, ToSet<>); 188*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A, B>, ToSet<A, B>)>, ToSet<>); 189*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A>, ToSet<A, B>)>, EmptySet); 190*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A, B, C>, ToSet<A>)>, ToSet<B, C>); 191*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A, B, C>, ToSet<B>)>, ToSet<A, C>); 192*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetDifference(ToSet<A, B, C>, ToSet<C>)>, ToSet<A, B>); 193*a65addddSAndroid Build Coastguard Worker } 194*a65addddSAndroid Build Coastguard Worker ''' 195*a65addddSAndroid Build Coastguard Worker expect_success( 196*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 197*a65addddSAndroid Build Coastguard Worker source, 198*a65addddSAndroid Build Coastguard Worker locals()) 199*a65addddSAndroid Build Coastguard Worker 200*a65addddSAndroid Build Coastguard Worker def test_SetIntersection(self): 201*a65addddSAndroid Build Coastguard Worker source = ''' 202*a65addddSAndroid Build Coastguard Worker int main() { 203*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A, B>, ToSet<A, B>)>, ToSet<A, B>); 204*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A>, ToSet<A, B>)>, ToSet<A>); 205*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A, B>, ToSet<A>)>, ToSet<A>); 206*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A>, ToSet<B>)>, ToSet<>); 207*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<>, ToSet<A, B>)>, ToSet<>); 208*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<C>, ToSet<A, B>)>, ToSet<>); 209*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A, B>, ToSet<>)>, ToSet<>); 210*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetIntersection(ToSet<A, B>, ToSet<C>)>, ToSet<>); 211*a65addddSAndroid Build Coastguard Worker } 212*a65addddSAndroid Build Coastguard Worker ''' 213*a65addddSAndroid Build Coastguard Worker expect_success( 214*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 215*a65addddSAndroid Build Coastguard Worker source, 216*a65addddSAndroid Build Coastguard Worker locals()) 217*a65addddSAndroid Build Coastguard Worker 218*a65addddSAndroid Build Coastguard Worker def test_IsContained(self): 219*a65addddSAndroid Build Coastguard Worker source = ''' 220*a65addddSAndroid Build Coastguard Worker int main() { 221*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<>, ToSet<>)); 222*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<>, ToSet<A>)); 223*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<A, B>, ToSet<A, B>)); 224*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<A, B>, ToSet<B, A>)); 225*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<A>, ToSet<A, B, C>)); 226*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<B>, ToSet<A, B, C>)); 227*a65addddSAndroid Build Coastguard Worker Assert(IsContained(ToSet<C>, ToSet<A, B, C>)); 228*a65addddSAndroid Build Coastguard Worker AssertNot(IsContained(ToSet<A, B, C>, ToSet<A, B>)); 229*a65addddSAndroid Build Coastguard Worker AssertNot(IsContained(ToSet<A, B, C>, ToSet<A, C>)); 230*a65addddSAndroid Build Coastguard Worker AssertNot(IsContained(ToSet<A, B, C>, ToSet<B, C>)); 231*a65addddSAndroid Build Coastguard Worker } 232*a65addddSAndroid Build Coastguard Worker ''' 233*a65addddSAndroid Build Coastguard Worker expect_success( 234*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 235*a65addddSAndroid Build Coastguard Worker source, 236*a65addddSAndroid Build Coastguard Worker locals()) 237*a65addddSAndroid Build Coastguard Worker 238*a65addddSAndroid Build Coastguard Worker def test_IsDisjoint(self): 239*a65addddSAndroid Build Coastguard Worker source = ''' 240*a65addddSAndroid Build Coastguard Worker int main() { 241*a65addddSAndroid Build Coastguard Worker AssertNot(IsDisjoint(ToSet<A, B>, ToSet<A, B>)); 242*a65addddSAndroid Build Coastguard Worker AssertNot(IsDisjoint(ToSet<A>, ToSet<A, B>)); 243*a65addddSAndroid Build Coastguard Worker AssertNot(IsDisjoint(ToSet<A, B>, ToSet<A>)); 244*a65addddSAndroid Build Coastguard Worker Assert(IsDisjoint(ToSet<A>, ToSet<B>)); 245*a65addddSAndroid Build Coastguard Worker Assert(IsDisjoint(ToSet<>, ToSet<A, B>)); 246*a65addddSAndroid Build Coastguard Worker Assert(IsDisjoint(ToSet<C>, ToSet<A, B>)); 247*a65addddSAndroid Build Coastguard Worker Assert(IsDisjoint(ToSet<A, B>, ToSet<>)); 248*a65addddSAndroid Build Coastguard Worker Assert(IsDisjoint(ToSet<A, B>, ToSet<C>)); 249*a65addddSAndroid Build Coastguard Worker } 250*a65addddSAndroid Build Coastguard Worker ''' 251*a65addddSAndroid Build Coastguard Worker expect_success( 252*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 253*a65addddSAndroid Build Coastguard Worker source, 254*a65addddSAndroid Build Coastguard Worker locals()) 255*a65addddSAndroid Build Coastguard Worker 256*a65addddSAndroid Build Coastguard Worker def test_SetUnion(self): 257*a65addddSAndroid Build Coastguard Worker source = ''' 258*a65addddSAndroid Build Coastguard Worker int main() { 259*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A, B>, ToSet<A, B>)>, ToSet<A, B>); 260*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A>, ToSet<A, B>)>, ToSet<A, B>); 261*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A, B>, ToSet<A>)>, ToSet<A, B>); 262*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A>, ToSet<B>)>, ToSet<A, B>); 263*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<>, ToSet<A, B>)>, ToSet<A, B>); 264*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<C>, ToSet<A, B>)>, ToSet<A, B, C>); 265*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A, B>, ToSet<>)>, ToSet<A, B>); 266*a65addddSAndroid Build Coastguard Worker AssertSameSet(Id<SetUnion(ToSet<A, B>, ToSet<C>)>, ToSet<A, B, C>); 267*a65addddSAndroid Build Coastguard Worker } 268*a65addddSAndroid Build Coastguard Worker ''' 269*a65addddSAndroid Build Coastguard Worker expect_success( 270*a65addddSAndroid Build Coastguard Worker COMMON_DEFINITIONS, 271*a65addddSAndroid Build Coastguard Worker source, 272*a65addddSAndroid Build Coastguard Worker locals()) 273*a65addddSAndroid Build Coastguard Worker 274*a65addddSAndroid Build Coastguard Workerif __name__ == '__main__': 275*a65addddSAndroid Build Coastguard Worker absltest.main() 276