42 #include "Teuchos_UnitTestHarness.hpp" 43 #include "Teuchos_TestingHelpers.hpp" 44 #include "Teuchos_UnitTestRepository.hpp" 45 #include "Teuchos_GlobalMPISession.hpp" 51 constexpr
int ensemble_size = 8;
57 scalar a = (scalar) 1.;
60 scalar b = (scalar) 2.0;
63 std::cout << std::endl;
64 std::cout << a << std::endl;
65 std::cout << b << std::endl;
66 std::cout << m1 << std::endl;
67 TEST_EQUALITY( m1.getSize(), ensemble_size );
68 TEST_EQUALITY( m1[0],
true );
69 TEST_EQUALITY( m1[1],
false );
70 TEST_EQUALITY( m1[2],
true );
71 for (
auto i=3; i<ensemble_size; ++i)
72 TEST_EQUALITY( m1[i],
false );
74 TEST_EQUALITY( (
double) m1, 2./ensemble_size );
79 constexpr
int ensemble_size = 16;
85 scalar a = (scalar) 1.;
88 scalar b = (scalar) 2.0;
91 std::cout << std::endl;
92 std::cout << a << std::endl;
93 std::cout << b << std::endl;
94 std::cout << m1 << std::endl;
95 TEST_EQUALITY( m1.getSize(), ensemble_size );
96 TEST_EQUALITY( m1[0],
true );
97 TEST_EQUALITY( m1[1],
false );
98 TEST_EQUALITY( m1[2],
true );
99 for (
auto i=3; i<ensemble_size; ++i)
100 TEST_EQUALITY( m1[i],
false );
102 TEST_EQUALITY( (
double) m1, 2./ensemble_size );
107 constexpr
int ensemble_size = 8;
113 scalar a = (scalar) 1.;
116 scalar b = (scalar) 2.0;
120 std::cout << m1 << std::endl;
121 std::cout << m2 << std::endl;
122 for (
auto i=0; i<ensemble_size; ++i)
123 TEST_EQUALITY( m2[i], !m1[i] );
128 constexpr
int ensemble_size = 8;
134 scalar a = (scalar) 1.0;
137 scalar b = (scalar) 2.0;
145 std::cout << m1 << std::endl;
146 std::cout << mul << std::endl;
148 std::cout << mul2 << std::endl;
149 std::cout << mul3 << std::endl;
151 TEST_EQUALITY( mul[0], 2.5 );
152 TEST_EQUALITY( mul[1], 0.0 );
153 TEST_EQUALITY( mul[2], 2.5 );
154 for (
auto i=3; i<ensemble_size; ++i)
155 TEST_EQUALITY( mul[i], 0.0 );
157 TEST_EQUALITY( mul2, mul3 );
162 constexpr
int ensemble_size = 16;
168 scalar a = (scalar) 1.0;
171 scalar b = (scalar) 2.0;
175 std::cout << m1 << std::endl;
176 std::cout << mul << std::endl;
178 TEST_EQUALITY( mul[0], 2.5 );
179 TEST_EQUALITY( mul[1], 0.0 );
180 TEST_EQUALITY( mul[2], 2.5 );
181 for (
auto i=3; i<ensemble_size; ++i)
182 TEST_EQUALITY( mul[i], 0. );
187 constexpr
int ensemble_size = 8;
193 scalar a = (scalar) 1.0;
196 scalar b = (scalar) 2.0;
199 scalar mul = m1*a + !m1*b;
200 scalar mul2 = a*m1 + !m1*b;
201 std::cout << m1 << std::endl;
202 std::cout << mul << std::endl;
203 std::cout << mul2 << std::endl;
205 TEST_EQUALITY( mul[0], 2.5 );
206 TEST_EQUALITY( mul[1], 2.0 );
207 TEST_EQUALITY( mul[2], 2.5 );
208 for (
auto i=3; i<ensemble_size; ++i)
209 TEST_EQUALITY( mul[i], 2.0 );
211 TEST_EQUALITY( mul, mul2 );
216 constexpr
int ensemble_size = 8;
224 scalar a = (scalar) 1.0;
227 scalar b = (scalar) 2.0;
230 auto m2 = a>(scalar) 0.0;
233 std::cout << m1 << std::endl;
234 std::cout << m2 << std::endl;
235 std::cout << m3<< std::endl;
236 std::cout << m4<< std::endl;
239 {TEST_EQUALITY(
true,
false );}
241 {TEST_EQUALITY(
true,
true );}
243 TEST_EQUALITY((
bool) m1,
false );
244 TEST_EQUALITY((
bool) !m1,
true );
247 {TEST_EQUALITY(
true,
true );}
249 {TEST_EQUALITY(
true,
false );}
251 TEST_EQUALITY((
bool) m2,
true );
252 TEST_EQUALITY((
bool) !m2,
false );
254 TEST_EQUALITY( m2, m3 );
255 TEST_EQUALITY( m2, m4 );
260 constexpr
int ensemble_size = 8;
268 scalar a = (scalar) 1.0;
271 scalar b = (scalar) 2.0;
275 std::cout << m1 << std::endl;
276 std::cout << m2 << std::endl;
279 TEST_EQUALITY( (
AND)
true,
true );
280 TEST_EQUALITY( (
AND)
false,
false );
281 TEST_EQUALITY( (
AND) m1,
false );
282 TEST_EQUALITY( (
AND) !m1,
false );
283 TEST_EQUALITY( (
AND) m2,
true );
284 TEST_EQUALITY( (
AND) !m2,
false );
289 constexpr
int ensemble_size = 8;
297 scalar a = (scalar) 1.0;
300 scalar b = (scalar) 2.0;
304 std::cout << m1 << std::endl;
305 std::cout << m2 << std::endl;
308 TEST_EQUALITY( (
OR)
true,
true );
309 TEST_EQUALITY( (
OR)
false,
false );
310 TEST_EQUALITY( (
OR) m1,
true );
311 TEST_EQUALITY( (
OR) !m1,
true );
312 TEST_EQUALITY( (
OR) m2,
true );
313 TEST_EQUALITY( (
OR) !m2,
false );
318 constexpr
int ensemble_size = 8;
326 scalar a = (scalar) 1.0;
328 scalar b = (scalar) 2.0;
332 std::cout << m1 << std::endl;
333 std::cout << m2 << std::endl;
336 TEST_EQUALITY( (
XOR)
true,
true );
337 TEST_EQUALITY( (
XOR)
false,
false );
338 TEST_EQUALITY( (
XOR) m1,
true );
339 TEST_EQUALITY( (
XOR) !m1,
false );
340 TEST_EQUALITY( (
XOR) m2,
false );
341 TEST_EQUALITY( (
XOR) !m2,
false );
346 constexpr
int ensemble_size = 8;
352 scalar a = (scalar) 1.0;
354 scalar b = (scalar) 2.0;
359 std::cout << m1 << std::endl;
360 std::cout << m2 << std::endl;
362 TEST_EQUALITY((
double) m1,1./ensemble_size);
363 TEST_EQUALITY((
double) m2,1.);
365 TEST_EQUALITY(m1==1.,
false);
366 TEST_EQUALITY(m1!=1.,
true);
367 TEST_EQUALITY(m1==0.,
false);
368 TEST_EQUALITY(m1!=0.,
true);
370 TEST_EQUALITY(m1>=0.5,
false);
371 TEST_EQUALITY(m1<=0.5,
true);
372 TEST_EQUALITY(m1>0.5,
false);
373 TEST_EQUALITY(m1<0.5,
true);
375 TEST_EQUALITY(m2==1.,
true);
376 TEST_EQUALITY(m2!=1.,
false);
377 TEST_EQUALITY(m2==0.,
false);
378 TEST_EQUALITY(m2!=0.,
true);
380 TEST_EQUALITY(m2>=0.5,
true);
381 TEST_EQUALITY(m2<=0.5,
false);
382 TEST_EQUALITY(m2>0.5,
true);
383 TEST_EQUALITY(m2<0.5,
false);
388 constexpr
int ensemble_size = 8;
394 scalar a = (scalar) 1.0;
396 scalar b = (scalar) 2.0;
402 std::cout << m1 << std::endl;
403 std::cout << m2 << std::endl;
404 std::cout << m3 << std::endl;
405 TEST_EQUALITY(m3,m1);
410 constexpr
int ensemble_size = 8;
416 scalar a = (scalar) 1.0;
418 scalar b = (scalar) 2.0;
424 std::cout << m1 << std::endl;
425 std::cout << m2 << std::endl;
426 std::cout << m3 << std::endl;
427 TEST_EQUALITY(m3,m2);
432 constexpr
int ensemble_size = 8;
438 scalar a = (scalar) 1.;
440 scalar b = (scalar) 2.0;
442 std::cout << a << std::endl;
443 std::cout << b << std::endl;
451 std::cout << m3 << std::endl;
452 TEST_EQUALITY(m3,m2);
457 constexpr
int ensemble_size = 8;
463 scalar a = (scalar) 1.;
465 scalar b = (scalar) 2.0;
469 std::cout << m1 << std::endl;
470 std::cout << m2 << std::endl;
471 auto m3 = (a>0.) - (a>b);
472 std::cout << m3 << std::endl;
473 TEST_EQUALITY(m3,!m1);
478 constexpr
int ensemble_size = 8;
485 scalar a = (scalar) 1.;
491 TEST_EQUALITY(m1,m2);
496 constexpr
int ensemble_size = 8;
503 scalar a = (scalar) 1.;
506 scalar b = (scalar) 2.;
510 std::cout << std::endl;
511 std::cout << a << std::endl;
512 std::cout << b << std::endl;
514 std::cout << a << std::endl;
515 std::cout << b << std::endl;
516 TEST_EQUALITY(b[2],-2.);
521 Teuchos::GlobalMPISession mpiSession(&argc, &
argv);
523 Kokkos::initialize();
528 int res = Teuchos::UnitTestRepository::runUnitTestsFromMain(argc,
argv);
Vector< S > copysign(const Vector< S > &a1, const Vector< S > &a2)
Stokhos::StandardStorage< int, double > storage_type
Statically allocated storage class.
Kokkos::DefaultExecutionSpace execution_space
int main(int argc, char *argv[])
TEUCHOS_UNIT_TEST(MP_Vector_MaskTraits, Create_8)
Mask< Sacado::MP::Vector< S > > signbit_v(const Sacado::MP::Vector< S > &a1)