Branch Coverage

t/function.cc
Criterion Covered Total %
branch 412 1062 38.7


line true false branch
26 0 14 class Test : public panda::Refcnt {
45 1 0 function f = &void_func;
46 1 0 REQUIRE(true);
1 0 REQUIRE(true);
1 0 REQUIRE(true);
1 0 REQUIRE(true);
0 0 REQUIRE(true);
0 0 REQUIRE(true);
50 1 0 function f;
51 1 0 f = &plus_one;
1 0 f = &plus_one;
52 1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
0 0 REQUIRE(f(1) == 2);
0 0 REQUIRE(f(1) == 2);
56 1 0 function f;
57 1 0 f = plus_one;
1 0 f = plus_one;
58 1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
1 0 REQUIRE(f(1) == 2);
0 0 REQUIRE(f(1) == 2);
0 0 REQUIRE(f(1) == 2);
63 1 0 function f = [&](){return a;};
64 1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
0 0 REQUIRE(f() == 13);
0 0 REQUIRE(f() == 13);
68 1 0 iptr t = new Test();
1 0 iptr t = new Test();
70 1 0 auto m = make_function(&Test::bar, t);
71 1 0 REQUIRE(m() == 54);
1 0 REQUIRE(m() == 54);
1 0 REQUIRE(m() == 54);
1 0 REQUIRE(m() == 54);
1 0 REQUIRE(m() == 54);
1 0 REQUIRE(m() == 54);
0 0 REQUIRE(m() == 54);
0 0 REQUIRE(m() == 54);
75 1 0 iptr t = new Test();
1 0 iptr t = new Test();
77 1 0 auto f = make_function(&Test::bar, t);
78 1 0 REQUIRE(f() == 54);
1 0 REQUIRE(f() == 54);
1 0 REQUIRE(f() == 54);
1 0 REQUIRE(f() == 54);
1 0 REQUIRE(f() == 54);
1 0 REQUIRE(f() == 54);
0 0 REQUIRE(f() == 54);
0 0 REQUIRE(f() == 54);
80 1 0 f = &foo2;
1 0 f = &foo2;
81 1 0 REQUIRE(f() == 1);
1 0 REQUIRE(f() == 1);
1 0 REQUIRE(f() == 1);
1 0 REQUIRE(f() == 1);
1 0 REQUIRE(f() == 1);
1 0 REQUIRE(f() == 1);
0 0 REQUIRE(f() == 1);
0 0 REQUIRE(f() == 1);
84 1 0 f = [&](){return a;};
1 0 f = [&](){return a;};
85 1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
1 0 REQUIRE(f() == 13);
0 0 REQUIRE(f() == 13);
0 0 REQUIRE(f() == 13);
89 1 0 function f1_void = &void_func;
90 1 0 function f2_void = &void_func;
91 1 0 function f3_void = &void_func2;
93 1 0 REQUIRE(f1_void == f2_void);
1 0 REQUIRE(f1_void == f2_void);
1 0 REQUIRE(f1_void == f2_void);
1 0 REQUIRE(f1_void == f2_void);
1 0 REQUIRE(f1_void == f2_void);
0 0 REQUIRE(f1_void == f2_void);
0 0 REQUIRE(f1_void == f2_void);
94 1 0 REQUIRE(f1_void != f3_void);
1 0 REQUIRE(f1_void != f3_void);
1 0 REQUIRE(f1_void != f3_void);
1 0 REQUIRE(f1_void != f3_void);
1 0 REQUIRE(f1_void != f3_void);
0 0 REQUIRE(f1_void != f3_void);
0 0 REQUIRE(f1_void != f3_void);
96 1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
1 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
0 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
0 0 REQUIRE(f1_void == tmp_abstract_function(&void_func));
97 1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
1 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
0 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
0 0 REQUIRE(f1_void != tmp_abstract_function(&void_func2));
108 1 0 function f1(&func_int);
109 1 0 function f2(&func_int);
110 1 0 function f3(&func_double);
111 1 0 function f4(&func_int);
113 1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
0 0 CHECK(f1 == f2);
0 0 CHECK(f1 == f2);
114 1 0 CHECK(f1 != f3);
1 0 CHECK(f1 != f3);
1 0 CHECK(f1 != f3);
1 0 CHECK(f1 != f3);
1 0 CHECK(f1 != f3);
0 0 CHECK(f1 != f3);
0 0 CHECK(f1 != f3);
115 1 0 CHECK(f2 != f3);
1 0 CHECK(f2 != f3);
1 0 CHECK(f2 != f3);
1 0 CHECK(f2 != f3);
1 0 CHECK(f2 != f3);
0 0 CHECK(f2 != f3);
0 0 CHECK(f2 != f3);
116 1 0 CHECK(f2 == f4);
1 0 CHECK(f2 == f4);
1 0 CHECK(f2 == f4);
1 0 CHECK(f2 == f4);
1 0 CHECK(f2 == f4);
0 0 CHECK(f2 == f4);
0 0 CHECK(f2 == f4);
119 1 0 function ff1(i);
120 1 0 function ff2(i);
122 1 0 CHECK(ff1 == ff2);
1 0 CHECK(ff1 == ff2);
1 0 CHECK(ff1 == ff2);
1 0 CHECK(ff1 == ff2);
1 0 CHECK(ff1 == ff2);
0 0 CHECK(ff1 == ff2);
0 0 CHECK(ff1 == ff2);
132 1 0 function f1 = lambda;
133 1 0 function f2(f1);
134 1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
1 0 CHECK(f1 == f2);
0 0 CHECK(f1 == f2);
0 0 CHECK(f1 == f2);
135 1 0 CHECK(f2 == f1);
1 0 CHECK(f2 == f1);
1 0 CHECK(f2 == f1);
1 0 CHECK(f2 == f1);
1 0 CHECK(f2 == f1);
0 0 CHECK(f2 == f1);
0 0 CHECK(f2 == f1);
139 1 0 iptr t = new Test();
1 0 iptr t = new Test();
140 1 0 auto m1 = make_function(&Test::foo, t);
141 1 0 auto m2 = make_method(&Test::foo);
142 1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
0 0 REQUIRE(m1 != *m2);
0 0 REQUIRE(m1 != *m2);
144 1 0 m2->bind(t);
145 1 0 REQUIRE(m1 == function(m2));
1 0 REQUIRE(m1 == function(m2));
1 0 REQUIRE(m1 == function(m2));
1 0 REQUIRE(m1 == function(m2));
1 0 REQUIRE(m1 == function(m2));
1 0 REQUIRE(m1 == function(m2));
0 0 REQUIRE(m1 == function(m2));
0 0 REQUIRE(m1 == function(m2));
147 1 0 iptr t2 = new Test();
1 0 iptr t2 = new Test();
148 1 0 m2->bind(t2);
149 1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
1 0 REQUIRE(m1 != *m2);
0 0 REQUIRE(m1 != *m2);
0 0 REQUIRE(m1 != *m2);
151 1 0 auto m3 = make_method(&Test::foo2);
152 1 0 REQUIRE(m1 != *m3);
1 0 REQUIRE(m1 != *m3);
1 0 REQUIRE(m1 != *m3);
1 0 REQUIRE(m1 != *m3);
1 0 REQUIRE(m1 != *m3);
0 0 REQUIRE(m1 != *m3);
0 0 REQUIRE(m1 != *m3);
158 1 0 function l1 = [&](){return a;};
159 1 0 auto l2 = l1;
160 1 0 function l3 = [&](){return a;};
162 1 0 REQUIRE(l1 == l2);
1 0 REQUIRE(l1 == l2);
1 0 REQUIRE(l1 == l2);
1 0 REQUIRE(l1 == l2);
1 0 REQUIRE(l1 == l2);
0 0 REQUIRE(l1 == l2);
0 0 REQUIRE(l1 == l2);
163 1 0 REQUIRE(l1 != l3);
1 0 REQUIRE(l1 != l3);
1 0 REQUIRE(l1 != l3);
1 0 REQUIRE(l1 != l3);
1 0 REQUIRE(l1 != l3);
0 0 REQUIRE(l1 != l3);
0 0 REQUIRE(l1 != l3);
168 1 0 function l = [&](){return a;};
169 1 0 function f = &foo2;
170 1 0 iptr t = new Test();
1 0 iptr t = new Test();
171 1 0 auto m = make_function(&Test::bar, t);
173 1 0 REQUIRE(l != f);
1 0 REQUIRE(l != f);
1 0 REQUIRE(l != f);
1 0 REQUIRE(l != f);
1 0 REQUIRE(l != f);
0 0 REQUIRE(l != f);
0 0 REQUIRE(l != f);
174 1 0 REQUIRE(m != l);
1 0 REQUIRE(m != l);
1 0 REQUIRE(m != l);
1 0 REQUIRE(m != l);
1 0 REQUIRE(m != l);
0 0 REQUIRE(m != l);
0 0 REQUIRE(m != l);
175 1 0 REQUIRE(m != f);
1 0 REQUIRE(m != f);
1 0 REQUIRE(m != f);
1 0 REQUIRE(m != f);
1 0 REQUIRE(m != f);
0 0 REQUIRE(m != f);
0 0 REQUIRE(m != f);
180 1 0 function n;
181 1 0 function l = [&](){return a;};
182 1 0 function f = &foo2;
183 1 0 iptr t = new Test();
1 0 iptr t = new Test();
184 1 0 auto m = make_function(&Test::bar, t);
186 1 0 REQUIRE_FALSE(l == n);
1 0 REQUIRE_FALSE(l == n);
1 0 REQUIRE_FALSE(l == n);
1 0 REQUIRE_FALSE(l == n);
1 0 REQUIRE_FALSE(l == n);
1 0 REQUIRE_FALSE(l == n);
0 0 REQUIRE_FALSE(l == n);
0 0 REQUIRE_FALSE(l == n);
187 1 0 REQUIRE_FALSE(f == n);
1 0 REQUIRE_FALSE(f == n);
1 0 REQUIRE_FALSE(f == n);
1 0 REQUIRE_FALSE(f == n);
1 0 REQUIRE_FALSE(f == n);
1 0 REQUIRE_FALSE(f == n);
0 0 REQUIRE_FALSE(f == n);
0 0 REQUIRE_FALSE(f == n);
188 1 0 REQUIRE_FALSE(m == n);
1 0 REQUIRE_FALSE(m == n);
1 0 REQUIRE_FALSE(m == n);
1 0 REQUIRE_FALSE(m == n);
1 0 REQUIRE_FALSE(m == n);
1 0 REQUIRE_FALSE(m == n);
0 0 REQUIRE_FALSE(m == n);
0 0 REQUIRE_FALSE(m == n);
190 1 0 REQUIRE_FALSE(n == l);
1 0 REQUIRE_FALSE(n == l);
1 0 REQUIRE_FALSE(n == l);
1 0 REQUIRE_FALSE(n == l);
1 0 REQUIRE_FALSE(n == l);
1 0 REQUIRE_FALSE(n == l);
0 0 REQUIRE_FALSE(n == l);
0 0 REQUIRE_FALSE(n == l);
191 1 0 REQUIRE_FALSE(n == f);
1 0 REQUIRE_FALSE(n == f);
1 0 REQUIRE_FALSE(n == f);
1 0 REQUIRE_FALSE(n == f);
1 0 REQUIRE_FALSE(n == f);
1 0 REQUIRE_FALSE(n == f);
0 0 REQUIRE_FALSE(n == f);
0 0 REQUIRE_FALSE(n == f);
192 1 0 REQUIRE_FALSE(n == m);
1 0 REQUIRE_FALSE(n == m);
1 0 REQUIRE_FALSE(n == m);
1 0 REQUIRE_FALSE(n == m);
1 0 REQUIRE_FALSE(n == m);
1 0 REQUIRE_FALSE(n == m);
0 0 REQUIRE_FALSE(n == m);
0 0 REQUIRE_FALSE(n == m);
196 1 0 function f1 = Test(1);
1 0 function f1 = Test(1);
197 1 0 function f2 = Test(2);
1 0 function f2 = Test(2);
198 1 0 function f11 = Test(1);
1 0 function f11 = Test(1);
200 1 0 REQUIRE(f1 != f2);
1 0 REQUIRE(f1 != f2);
1 0 REQUIRE(f1 != f2);
1 0 REQUIRE(f1 != f2);
1 0 REQUIRE(f1 != f2);
0 0 REQUIRE(f1 != f2);
0 0 REQUIRE(f1 != f2);
201 1 0 REQUIRE(f1 == f11);
1 0 REQUIRE(f1 == f11);
1 0 REQUIRE(f1 == f11);
1 0 REQUIRE(f1 == f11);
1 0 REQUIRE(f1 == f11);
0 0 REQUIRE(f1 == f11);
0 0 REQUIRE(f1 == f11);
203 1 0 auto tmp1 = tmp_abstract_function(Test(1)); // inited from rvalue
1 0 auto tmp1 = tmp_abstract_function(Test(1)); // inited from rvalue
204 1 0 REQUIRE(f1 == tmp1);
1 0 REQUIRE(f1 == tmp1);
1 0 REQUIRE(f1 == tmp1);
1 0 REQUIRE(f1 == tmp1);
1 0 REQUIRE(f1 == tmp1);
0 0 REQUIRE(f1 == tmp1);
0 0 REQUIRE(f1 == tmp1);
210 1 0 function f = Tracer(10);
211 1 0 auto f2 = f;
212 1 0 f(11);
213 1 0 f2(12);
215 1 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
1 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
1 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
1 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
1 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
0 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
0 0 REQUIRE(Tracer::ctor_calls == 1); // 1 for temporary object Tracer(10);
216 1 0 REQUIRE(Tracer::copy_calls == 0);
1 0 REQUIRE(Tracer::copy_calls == 0);
1 0 REQUIRE(Tracer::copy_calls == 0);
1 0 REQUIRE(Tracer::copy_calls == 0);
1 0 REQUIRE(Tracer::copy_calls == 0);
0 0 REQUIRE(Tracer::copy_calls == 0);
0 0 REQUIRE(Tracer::copy_calls == 0);
217 1 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
1 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
1 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
1 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
1 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
0 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
0 0 REQUIRE(Tracer::move_calls == 1); // 1 construction from tmp object function f = Tracer(10);
218 1 0 REQUIRE(Tracer::dtor_calls == 2);
1 0 REQUIRE(Tracer::dtor_calls == 2);
1 0 REQUIRE(Tracer::dtor_calls == 2);
1 0 REQUIRE(Tracer::dtor_calls == 2);
1 0 REQUIRE(Tracer::dtor_calls == 2);
0 0 REQUIRE(Tracer::dtor_calls == 2);
0 0 REQUIRE(Tracer::dtor_calls == 2);
224 1 0 };
225 1 0 REQUIRE(cb(3).value_or(42) == 3);
1 0 REQUIRE(cb(3).value_or(42) == 3);
1 0 REQUIRE(cb(3).value_or(42) == 3);
1 0 REQUIRE(cb(3).value_or(42) == 3);
1 0 REQUIRE(cb(3).value_or(42) == 3);
1 0 REQUIRE(cb(3).value_or(42) == 3);
0 0 REQUIRE(cb(3).value_or(42) == 3);
0 0 REQUIRE(cb(3).value_or(42) == 3);
231 1 0 };
232 1 0 REQUIRE(cb(3) == 3.0);
1 0 REQUIRE(cb(3) == 3.0);
1 0 REQUIRE(cb(3) == 3.0);
1 0 REQUIRE(cb(3) == 3.0);
1 0 REQUIRE(cb(3) == 3.0);
1 0 REQUIRE(cb(3) == 3.0);
0 0 REQUIRE(cb(3) == 3.0);
0 0 REQUIRE(cb(3) == 3.0);
238 1 0 };
239 1 0 REQUIRE(cb(3) == 10);
1 0 REQUIRE(cb(3) == 10);
1 0 REQUIRE(cb(3) == 10);
1 0 REQUIRE(cb(3) == 10);
1 0 REQUIRE(cb(3) == 10);
1 0 REQUIRE(cb(3) == 10);
0 0 REQUIRE(cb(3) == 10);
0 0 REQUIRE(cb(3) == 10);
242 0 0 virtual ~Base(){}
243 0 0 virtual panda::string name() { return "base";}
245 0 1 struct Derrived : Base {
246 2 0 virtual panda::string name() override { return "override";}
253 1 0 };
255 1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
1 0 REQUIRE(cb(b).name() == b.name());
0 0 REQUIRE(cb(b).name() == b.name());
0 0 REQUIRE(cb(b).name() == b.name());
264 1 0 return wrapper;
272 1 0 auto wrapper = lamda();
273 1 0 REQUIRE(wrapper(10) == 11);
1 0 REQUIRE(wrapper(10) == 11);
1 0 REQUIRE(wrapper(10) == 11);
1 0 REQUIRE(wrapper(10) == 11);
1 0 REQUIRE(wrapper(10) == 11);
1 0 REQUIRE(wrapper(10) == 11);
0 0 REQUIRE(wrapper(10) == 11);
0 0 REQUIRE(wrapper(10) == 11);
276 1 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
1 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
1 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
1 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
1 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
0 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
0 0 REQUIRE(Tracer::ctor_total() == Tracer::dtor_calls);
283 1 0 function outer;
286 1 1 if (a == 1) {
293 1 0 outer = inner;
1 0 outer = inner;
295 1 0 outer();
296 1 0 REQUIRE(b == 43);
1 0 REQUIRE(b == 43);
1 0 REQUIRE(b == 43);
1 0 REQUIRE(b == 43);
1 0 REQUIRE(b == 43);
0 0 REQUIRE(b == 43);
0 0 REQUIRE(b == 43);
301 1 0 function outer;
307 1 0 outer = inner;
1 0 outer = inner;
309 1 0 outer(1);
310 1 0 REQUIRE(a == 1);
1 0 REQUIRE(a == 1);
1 0 REQUIRE(a == 1);
1 0 REQUIRE(a == 1);
1 0 REQUIRE(a == 1);
0 0 REQUIRE(a == 1);
0 0 REQUIRE(a == 1);
316 1 0 function f = fptr;
317 1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
0 0 REQUIRE(!f);
0 0 REQUIRE(!f);
323 1 0 auto m = make_function(meth);
324 1 0 REQUIRE(!m);
1 0 REQUIRE(!m);
1 0 REQUIRE(!m);
1 0 REQUIRE(!m);
0 0 REQUIRE(!m);
0 0 REQUIRE(!m);
337 1 0 function f = s;
338 1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
1 0 REQUIRE(!f);
0 0 REQUIRE(!f);
0 0 REQUIRE(!f);
340 1 0 f = s;
1 0 f = s;
341 1 0 REQUIRE(f);
1 0 REQUIRE(f);
1 0 REQUIRE(f);
1 0 REQUIRE(f);
0 0 REQUIRE(f);
0 0 REQUIRE(f);
349 1 0 };
350 1 0 ff(val);
359 1 0 s.method(20);
360 1 0 REQUIRE(s.a == 20);
1 0 REQUIRE(s.a == 20);
1 0 REQUIRE(s.a == 20);
1 0 REQUIRE(s.a == 20);
1 0 REQUIRE(s.a == 20);
0 0 REQUIRE(s.a == 20);
0 0 REQUIRE(s.a == 20);
368 1 0 };
369 1 0 int b = f(42);
370 1 0 REQUIRE(a == 20);
1 0 REQUIRE(a == 20);
1 0 REQUIRE(a == 20);
1 0 REQUIRE(a == 20);
1 0 REQUIRE(a == 20);
0 0 REQUIRE(a == 20);
0 0 REQUIRE(a == 20);
371 1 0 REQUIRE(b == 21);
1 0 REQUIRE(b == 21);
1 0 REQUIRE(b == 21);
1 0 REQUIRE(b == 21);
1 0 REQUIRE(b == 21);
0 0 REQUIRE(b == 21);
0 0 REQUIRE(b == 21);
376 1 0 };
377 1 0 CHECK(f2(123) == 111);
1 0 CHECK(f2(123) == 111);
1 0 CHECK(f2(123) == 111);
1 0 CHECK(f2(123) == 111);
1 0 CHECK(f2(123) == 111);
1 0 CHECK(f2(123) == 111);
0 0 CHECK(f2(123) == 111);
0 0 CHECK(f2(123) == 111);
380 1 0 REQUIRE(sizeof...(args) == 1);
1 0 REQUIRE(sizeof...(args) == 1);
1 0 REQUIRE(sizeof...(args) == 1);
1 0 REQUIRE(sizeof...(args) == 1);
1 0 REQUIRE(sizeof...(args) == 1);
0 0 REQUIRE(sizeof...(args) == 1);
0 0 REQUIRE(sizeof...(args) == 1);
382 1 0 };
383 1 0 CHECK(f3(123) == 111);
1 0 CHECK(f3(123) == 111);
1 0 CHECK(f3(123) == 111);
1 0 CHECK(f3(123) == 111);
1 0 CHECK(f3(123) == 111);
1 0 CHECK(f3(123) == 111);
0 0 CHECK(f3(123) == 111);
0 0 CHECK(f3(123) == 111);
384 18 0 }
18 0 }