libMesh
Loading...
Searching...
No Matches
Public Member Functions | Protected Types | Protected Attributes | Private Attributes | List of all members
TypeVectorTestBase< DerivedClass > Class Template Reference

#include <type_vector_test.h>

Inheritance diagram for TypeVectorTestBase< DerivedClass >:
[legend]

Public Member Functions

virtual void setUp ()
 
virtual void tearDown ()
 
void testValue ()
 
void testZero ()
 
void testNorm ()
 
void testNormSq ()
 
void testEquality ()
 
void testInEquality ()
 
void testAssignment ()
 
void testScalarInit ()
 
void testScalarMult ()
 
void testScalarDiv ()
 
void testScalarMultAssign ()
 
void testScalarDivAssign ()
 
void testVectorAdd ()
 
void testVectorAddScaled ()
 
void testVectorSub ()
 
void testVectorMult ()
 
void testVectorAddAssign ()
 
void testVectorSubAssign ()
 
void testValueBase ()
 
void testZeroBase ()
 
void testClassifiers ()
 
void testIsZero ()
 
void testSolidAngle ()
 
void testCircumcenter ()
 
void testNormBase ()
 
void testNormSqBase ()
 
void testEqualityBase ()
 
void testInEqualityBase ()
 
void testAssignmentBase ()
 
void testScalarMultBase ()
 
void testScalarDivBase ()
 
void testScalarMultAssignBase ()
 
void testScalarDivAssignBase ()
 
void testVectorAddBase ()
 
void testVectorAddScaledBase ()
 
void testVectorSubBase ()
 
void testVectorMultBase ()
 
void testVectorAddAssignBase ()
 
void testVectorSubAssignBase ()
 
void testReplaceAlgebraicType ()
 

Protected Types

typedef DerivedClass::value_type T
 

Protected Attributes

std::string libmesh_suite_name
 

Private Attributes

std::unique_ptr< DerivedClass > m_1_1_1
 
std::unique_ptr< DerivedClass > m_n1_1_n1
 
TypeVector< T > * basem_1_1_1
 
TypeVector< T > * basem_n1_1_n1
 

Detailed Description

template<class DerivedClass>
class TypeVectorTestBase< DerivedClass >

Definition at line 64 of file type_vector_test.h.

Member Typedef Documentation

◆ T

template<class DerivedClass >
typedef DerivedClass::value_type TypeVectorTestBase< DerivedClass >::T
protected

Definition at line 67 of file type_vector_test.h.

Member Function Documentation

◆ setUp()

template<class DerivedClass >
virtual void TypeVectorTestBase< DerivedClass >::setUp ( )
inlinevirtual

Reimplemented in NodeTest, PointTestBase< DerivedClass >, PointTestBase< Node >, and PointTestBase< Point >.

Definition at line 77 of file type_vector_test.h.

78 {
79 m_1_1_1 = std::make_unique<DerivedClass>(1);
80 m_n1_1_n1 = std::make_unique<DerivedClass>(-1);
81
82#if LIBMESH_DIM > 1
83 (*m_1_1_1)(1) = 1;
84 (*m_n1_1_n1)(1) = 1;
85#endif
86#if LIBMESH_DIM > 2
87 (*m_1_1_1)(2) = 1;
88 (*m_n1_1_n1)(2) = -1;
89#endif
90
91
92 basem_1_1_1 = m_1_1_1.get();
94 }
std::unique_ptr< DerivedClass > m_1_1_1
TypeVector< T > * basem_n1_1_n1
TypeVector< T > * basem_1_1_1
std::unique_ptr< DerivedClass > m_n1_1_n1

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, TypeVectorTestBase< DerivedClass >::m_1_1_1, and TypeVectorTestBase< DerivedClass >::m_n1_1_n1.

Referenced by PointTestBase< DerivedClass >::setUp().

◆ tearDown()

template<class DerivedClass >
virtual void TypeVectorTestBase< DerivedClass >::tearDown ( )
inlinevirtual

◆ testAssignment()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testAssignment ( )
inline

Definition at line 167 of file type_vector_test.h.

168 {
169 LOG_UNIT_TEST;
170
171 DerivedClass avector {*basem_1_1_1};
172
173 for (int i = 0; i != LIBMESH_DIM; ++i)
174 CPPUNIT_ASSERT_EQUAL( T(1), (avector)(i) );
175 }
DerivedClass::value_type T

References TypeVectorTestBase< DerivedClass >::basem_1_1_1.

◆ testAssignmentBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testAssignmentBase ( )
inline

Definition at line 486 of file type_vector_test.h.

487 {
488 LOG_UNIT_TEST;
489
490 TypeVector<T> avector = (*basem_1_1_1);
491
492 for (int i = 0; i != LIBMESH_DIM; ++i)
493 CPPUNIT_ASSERT_EQUAL( T(1), (avector)(i) );
494 }
This class defines a vector in LIBMESH_DIM dimensional space of type T.
Definition type_vector.h:63

◆ testCircumcenter()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testCircumcenter ( )
inline

Definition at line 429 of file type_vector_test.h.

430 {
431 LOG_UNIT_TEST;
432
433 const DerivedClass origin(0), e_x(1);
434 DerivedClass twoone(2); twoone(1) = 1;
435
436 auto cc1 = circumcenter(origin, e_x, twoone);
437 LIBMESH_ASSERT_COMPLEX_EQUAL(cc1(0), 0.5, TOLERANCE*TOLERANCE);
438 LIBMESH_ASSERT_COMPLEX_EQUAL(cc1(1), 1.5, TOLERANCE*TOLERANCE);
439
440#if LIBMESH_DIM > 2
441 LIBMESH_ASSERT_COMPLEX_EQUAL(cc1(2), 0, TOLERANCE*TOLERANCE);
442 const DerivedClass twozeroone(2,0,1);
443 auto cc2 = circumcenter(origin, e_x, twozeroone);
444 LIBMESH_ASSERT_COMPLEX_EQUAL(cc2(0), 0.5, TOLERANCE*TOLERANCE);
445 LIBMESH_ASSERT_COMPLEX_EQUAL(cc2(1), 0, TOLERANCE*TOLERANCE);
446 LIBMESH_ASSERT_COMPLEX_EQUAL(cc2(2), 1.5, TOLERANCE*TOLERANCE);
447 auto cc3 = circumcenter(e_x, twoone, twozeroone);
448 LIBMESH_ASSERT_COMPLEX_EQUAL(cc3(0), Real(5)/3, TOLERANCE*TOLERANCE);
449 LIBMESH_ASSERT_COMPLEX_EQUAL(cc3(1), Real(1)/3, TOLERANCE*TOLERANCE);
450 LIBMESH_ASSERT_COMPLEX_EQUAL(cc3(2), Real(1)/3, TOLERANCE*TOLERANCE);
451#endif
452 }
static constexpr Real TOLERANCE
TypeVector< T > circumcenter(const TypeVector< T > &p0, const TypeVector< T > &p1, const TypeVector< T > &p2)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

References libMesh::circumcenter(), libMesh::Real, and libMesh::TOLERANCE.

◆ testClassifiers()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testClassifiers ( )
inline

Definition at line 326 of file type_vector_test.h.

327 {
328 LOG_UNIT_TEST;
329
330 {
331#if LIBMESH_DIM > 2
332 DerivedClass avector(0,0,0);
333#elif LIBMESH_DIM > 1
334 DerivedClass avector(0,0);
335#else
336 DerivedClass avector(0);
337#endif
338 CPPUNIT_ASSERT(isfinite(avector));
339 CPPUNIT_ASSERT(!isinf(avector));
340 CPPUNIT_ASSERT(!isnan(avector));
341
342 // numeric_limits isn't specialized for complex, but float
343 // values promote seamlessly to complex<double> etc.
344 avector(0) =
345 std::numeric_limits<float>::infinity();
346 CPPUNIT_ASSERT(!isfinite(avector));
347 CPPUNIT_ASSERT(isinf(avector));
348 CPPUNIT_ASSERT(!isnan(avector));
349
350 avector(0) =
351 std::numeric_limits<float>::quiet_NaN();
352 CPPUNIT_ASSERT(!isfinite(avector));
353 CPPUNIT_ASSERT(!isinf(avector));
354 CPPUNIT_ASSERT(isnan(avector));
355 }
356 }
bool isfinite(std::complex< T > a)
bool isnan(std::complex< T > a)
bool isinf(std::complex< T > a)

References libMesh::isfinite(), libMesh::isinf(), and libMesh::isnan().

◆ testEquality()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testEquality ( )
inline

Definition at line 147 of file type_vector_test.h.

148 {
149 LOG_UNIT_TEST;
150
151 CPPUNIT_ASSERT( (*m_1_1_1) == (*m_1_1_1) );
152#if LIBMESH_DIM > 1
153 CPPUNIT_ASSERT( !((*m_1_1_1) == (*m_n1_1_n1)) );
154#endif
155 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and TypeVectorTestBase< DerivedClass >::m_n1_1_n1.

◆ testEqualityBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testEqualityBase ( )
inline

Definition at line 468 of file type_vector_test.h.

469 {
470 LOG_UNIT_TEST;
471
472 CPPUNIT_ASSERT( (*basem_1_1_1) == (*basem_1_1_1) );
473 CPPUNIT_ASSERT( !((*basem_1_1_1) == (*basem_n1_1_n1)) );
474 CPPUNIT_ASSERT( relative_fuzzy_equals(*basem_1_1_1, *basem_1_1_1) );
475 }
bool relative_fuzzy_equals(const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)
Function to check whether two variables are equal within a relative tolerance.

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, and libMesh::relative_fuzzy_equals().

◆ testInEquality()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testInEquality ( )
inline

Definition at line 157 of file type_vector_test.h.

158 {
159 LOG_UNIT_TEST;
160
161 CPPUNIT_ASSERT( !((*m_1_1_1) != (*m_1_1_1)) );
162#if LIBMESH_DIM > 1
163 CPPUNIT_ASSERT( (*m_1_1_1) != (*m_n1_1_n1) );
164#endif
165 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and TypeVectorTestBase< DerivedClass >::m_n1_1_n1.

◆ testInEqualityBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testInEqualityBase ( )
inline

Definition at line 477 of file type_vector_test.h.

478 {
479 LOG_UNIT_TEST;
480
481 CPPUNIT_ASSERT( !((*basem_1_1_1) != (*basem_1_1_1)) );
482 CPPUNIT_ASSERT( (*basem_1_1_1) != (*basem_n1_1_n1) );
483 CPPUNIT_ASSERT( !relative_fuzzy_equals(*basem_1_1_1, *basem_n1_1_n1) );
484 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, and libMesh::relative_fuzzy_equals().

◆ testIsZero()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testIsZero ( )
inline

Definition at line 359 of file type_vector_test.h.

360 {
361 LOG_UNIT_TEST;
362
363 {
364#if LIBMESH_DIM > 2
365 DerivedClass avector(0,0,0);
366#elif LIBMESH_DIM > 1
367 DerivedClass avector(0,0);
368#else
369 DerivedClass avector(0);
370#endif
371 CPPUNIT_ASSERT(avector.is_zero());
372 }
373 {
374#if LIBMESH_DIM > 2
375 DerivedClass avector(1,1,1);
376#elif LIBMESH_DIM > 1
377 DerivedClass avector(1,1);
378#else
379 DerivedClass avector(1);
380#endif
381 CPPUNIT_ASSERT(!avector.is_zero());
382 }
383 }

◆ testNorm()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testNorm ( )
inline

Definition at line 133 of file type_vector_test.h.

134 {
135 LOG_UNIT_TEST;
136
137 LIBMESH_ASSERT_FP_EQUAL(m_1_1_1->norm() , std::sqrt(Real(LIBMESH_DIM)) , TOLERANCE*TOLERANCE );
138 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testNormBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testNormBase ( )
inline

Definition at line 454 of file type_vector_test.h.

455 {
456 LOG_UNIT_TEST;
457
458 LIBMESH_ASSERT_FP_EQUAL( std::sqrt(Real(LIBMESH_DIM)) , basem_1_1_1->norm() , TOLERANCE*TOLERANCE );
459 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testNormSq()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testNormSq ( )
inline

Definition at line 140 of file type_vector_test.h.

141 {
142 LOG_UNIT_TEST;
143
144 LIBMESH_ASSERT_FP_EQUAL(m_1_1_1->norm_sq() , Real(LIBMESH_DIM) , TOLERANCE*TOLERANCE );
145 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testNormSqBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testNormSqBase ( )
inline

Definition at line 461 of file type_vector_test.h.

462 {
463 LOG_UNIT_TEST;
464
465 LIBMESH_ASSERT_FP_EQUAL( Real(LIBMESH_DIM) , basem_1_1_1->norm_sq() , TOLERANCE*TOLERANCE );
466 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testReplaceAlgebraicType()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testReplaceAlgebraicType ( )
inline

Definition at line 602 of file type_vector_test.h.

603 {
604#ifdef LIBMESH_HAVE_METAPHYSICL
605 typedef typename MetaPhysicL::ReplaceAlgebraicType<
606 std::vector<TypeVector<double>>,
608 typename MetaPhysicL::ValueType<std::vector<TypeVector<double>>>::type>::type>::type
609 ReplacedType;
610 constexpr bool assertion =
611 std::is_same<ReplacedType, std::vector<TensorValue<double>>>::value;
612 CPPUNIT_ASSERT(assertion);
613#endif
614 }
static const bool value
Definition xdr_io.C:55

References value.

◆ testScalarDiv()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarDiv ( )
inline

Definition at line 203 of file type_vector_test.h.

204 {
205 LOG_UNIT_TEST;
206
207 for (int i = 0; i != LIBMESH_DIM; ++i)
208 LIBMESH_ASSERT_COMPLEX_EQUAL( 1/Real(5) , ((*m_1_1_1)/5.0)(i) , TOLERANCE*TOLERANCE );
209 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testScalarDivAssign()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarDivAssign ( )
inline

Definition at line 222 of file type_vector_test.h.

223 {
224 LOG_UNIT_TEST;
225
226 DerivedClass avector {*basem_1_1_1};
227 avector/=5.0;
228
229 for (int i = 0; i != LIBMESH_DIM; ++i)
230 LIBMESH_ASSERT_COMPLEX_EQUAL( 1/Real(5) , avector(i) , TOLERANCE*TOLERANCE );
231 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testScalarDivAssignBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarDivAssignBase ( )
inline

Definition at line 523 of file type_vector_test.h.

524 {
525 LOG_UNIT_TEST;
526
527 TypeVector<T> avector(*m_1_1_1);
528 avector/=5.0;
529
530 for (int i = 0; i != LIBMESH_DIM; ++i)
531 LIBMESH_ASSERT_COMPLEX_EQUAL( 1/Real(5) , avector(i) , TOLERANCE*TOLERANCE );
532 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testScalarDivBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarDivBase ( )
inline

Definition at line 504 of file type_vector_test.h.

505 {
506 LOG_UNIT_TEST;
507
508 for (int i = 0; i != LIBMESH_DIM; ++i)
509 LIBMESH_ASSERT_COMPLEX_EQUAL( 1/Real(5) , ((*basem_1_1_1)/5.0)(i) , TOLERANCE*TOLERANCE );
510 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, libMesh::Real, and libMesh::TOLERANCE.

◆ testScalarInit()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarInit ( )
inline

Definition at line 177 of file type_vector_test.h.

178 {
179 LOG_UNIT_TEST;
180
181 DerivedClass avector = 0;
182 for (int i = 0; i != LIBMESH_DIM; ++i)
183 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , avector(i) , TOLERANCE*TOLERANCE );
184
185 DerivedClass bvector = 2.0;
186 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , bvector(0) , TOLERANCE*TOLERANCE );
187 for (int i = 1; i != LIBMESH_DIM; ++i)
188 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , bvector(i) , TOLERANCE*TOLERANCE );
189 }

References libMesh::TOLERANCE.

◆ testScalarMult()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarMult ( )
inline

Definition at line 191 of file type_vector_test.h.

192 {
193 LOG_UNIT_TEST;
194
195 for (int i = 0; i != LIBMESH_DIM; ++i)
196 {
197 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , ((*m_1_1_1)*5.0)(i) , TOLERANCE*TOLERANCE );
198 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , outer_product(*m_1_1_1,5.0)(i) , TOLERANCE*TOLERANCE );
199 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , outer_product(5.0,*m_1_1_1)(i) , TOLERANCE*TOLERANCE );
200 }
201 }
TypeTensor< typename CompareTypes< T, T2 >::supertype > outer_product(const TypeVector< T > &a, const TypeVector< T2 > &b)

References TypeVectorTestBase< DerivedClass >::m_1_1_1, libMesh::outer_product(), and libMesh::TOLERANCE.

◆ testScalarMultAssign()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarMultAssign ( )
inline

Definition at line 211 of file type_vector_test.h.

212 {
213 LOG_UNIT_TEST;
214
215 DerivedClass avector {*basem_1_1_1};
216 avector*=5.0;
217
218 for (int i = 0; i != LIBMESH_DIM; ++i)
219 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , avector(i) , TOLERANCE*TOLERANCE );
220 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and libMesh::TOLERANCE.

◆ testScalarMultAssignBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarMultAssignBase ( )
inline

Definition at line 512 of file type_vector_test.h.

513 {
514 LOG_UNIT_TEST;
515
516 TypeVector<T> avector(*m_1_1_1);
517 avector*=5.0;
518
519 for (int i = 0; i != LIBMESH_DIM; ++i)
520 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , avector(i) , TOLERANCE*TOLERANCE );
521 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and libMesh::TOLERANCE.

◆ testScalarMultBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testScalarMultBase ( )
inline

Definition at line 496 of file type_vector_test.h.

497 {
498 LOG_UNIT_TEST;
499
500 for (int i = 0; i != LIBMESH_DIM; ++i)
501 LIBMESH_ASSERT_COMPLEX_EQUAL( 5.0 , ((*basem_1_1_1)*5.0)(i) , TOLERANCE*TOLERANCE );
502 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and libMesh::TOLERANCE.

◆ testSolidAngle()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testSolidAngle ( )
inline

Definition at line 385 of file type_vector_test.h.

386 {
387 LOG_UNIT_TEST;
388
389 const DerivedClass xvec(1.3);
390 LIBMESH_ASSERT_COMPLEX_EQUAL( solid_angle(xvec, xvec, xvec), 0, TOLERANCE*TOLERANCE );
391
392#if LIBMESH_DIM > 1
393 // This is ambiguous with --enable-complex builds? We really need
394 // to make the vector-from-scalar constructor explicit.
395 // const DerivedClass yvec(0.,2.7),
396 // xydiag(3.1,3.1),
397 // xypdiag(.8,-.8);
398
399 DerivedClass yvec, xydiag, xypdiag;
400 yvec(1) = 2.7;
401 xydiag(0) = 3.1; xydiag(1) = 3.1;
402 xypdiag(0) = 0.8; xypdiag(1) = -.8;
403
404 // Yeah, nothing subtends a non-zero solid angle in 2D either.
405 LIBMESH_ASSERT_COMPLEX_EQUAL( solid_angle(xvec, xvec, yvec), 0, TOLERANCE*TOLERANCE );
406 LIBMESH_ASSERT_COMPLEX_EQUAL( solid_angle(xvec, yvec, xydiag), 0, TOLERANCE*TOLERANCE );
407#endif
408
409#if LIBMESH_DIM > 2
410 const DerivedClass zvec(0.,0.,1.1),
411 xzdiag(0.,.7,.7);
412 LIBMESH_ASSERT_COMPLEX_EQUAL(solid_angle(xydiag, yvec, zvec),
414 LIBMESH_ASSERT_COMPLEX_EQUAL(solid_angle(xvec, yvec, xzdiag),
416 LIBMESH_ASSERT_COMPLEX_EQUAL(solid_angle(xypdiag, xydiag, zvec),
418
419 // Icosahedron coordinates are a nice analytic test
420 const Real golden = (1 + std::sqrt(Real(5)))/2;
421 const DerivedClass icosa1(1., golden, 0.),
422 icosa2(-1., golden, 0.),
423 icosa3(0., 1., golden);
424 LIBMESH_ASSERT_COMPLEX_EQUAL(solid_angle(icosa1, icosa2, icosa3),
426#endif
427 }
const Real pi
.
Definition libmesh.h:292
T solid_angle(const TypeVector< T > &v01, const TypeVector< T > &v02, const TypeVector< T > &v03)

References libMesh::pi, libMesh::Real, libMesh::solid_angle(), and libMesh::TOLERANCE.

◆ testValue()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testValue ( )
inline

Definition at line 98 of file type_vector_test.h.

99 {
100 LOG_UNIT_TEST;
101
102 CPPUNIT_ASSERT_EQUAL( T(1), (*m_1_1_1)(0));
103 CPPUNIT_ASSERT_EQUAL( T(-1), (*m_n1_1_n1)(0));
104
105#if LIBMESH_DIM > 1
106 CPPUNIT_ASSERT_EQUAL( T(1), (*m_1_1_1)(1));
107 CPPUNIT_ASSERT_EQUAL( T(1) , (*m_n1_1_n1)(1));
108#endif
109
110#if LIBMESH_DIM > 2
111 CPPUNIT_ASSERT_EQUAL( T(1), (*m_1_1_1)(2));
112 CPPUNIT_ASSERT_EQUAL( T(-1), (*m_n1_1_n1)(2));
113#endif
114 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and TypeVectorTestBase< DerivedClass >::m_n1_1_n1.

◆ testValueBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testValueBase ( )
inline

Definition at line 301 of file type_vector_test.h.

302 {
303 LOG_UNIT_TEST;
304
305 for (int i = 0; i != LIBMESH_DIM; ++i)
306 CPPUNIT_ASSERT_EQUAL( T(1), (*basem_1_1_1)(i));
307
308 CPPUNIT_ASSERT_EQUAL( T(-1), (*basem_n1_1_n1)(0));
309 if (LIBMESH_DIM > 1)
310 CPPUNIT_ASSERT_EQUAL( T(1 ), (*basem_n1_1_n1)(1));
311 if (LIBMESH_DIM > 2)
312 CPPUNIT_ASSERT_EQUAL( T(-1), (*basem_n1_1_n1)(2));
313 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and TypeVectorTestBase< DerivedClass >::basem_n1_1_n1.

◆ testVectorAdd()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAdd ( )
inline

Definition at line 233 of file type_vector_test.h.

234 {
235 LOG_UNIT_TEST;
236
237 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*m_1_1_1)+(*m_n1_1_n1))(0) , TOLERANCE*TOLERANCE );
238 if (LIBMESH_DIM > 1)
239 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*m_1_1_1)+(*m_n1_1_n1))(1) , TOLERANCE*TOLERANCE );
240 if (LIBMESH_DIM > 2)
241 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*m_1_1_1)+(*m_n1_1_n1))(2) , TOLERANCE*TOLERANCE );
242 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, TypeVectorTestBase< DerivedClass >::m_n1_1_n1, and libMesh::TOLERANCE.

◆ testVectorAddAssign()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAddAssign ( )
inline

Definition at line 276 of file type_vector_test.h.

277 {
278 LOG_UNIT_TEST;
279
280 DerivedClass avector {*basem_1_1_1};
281 avector+=(*m_1_1_1);
282
283 for (int i = 0; i != LIBMESH_DIM; ++i)
284 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(i) , TOLERANCE*TOLERANCE );
285 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and libMesh::TOLERANCE.

◆ testVectorAddAssignBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAddAssignBase ( )
inline

Definition at line 577 of file type_vector_test.h.

578 {
579 LOG_UNIT_TEST;
580
581 TypeVector<T> avector(*m_1_1_1);
582 avector+=(*basem_1_1_1);
583
584 for (int i = 0; i != LIBMESH_DIM; ++i)
585 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(i) , TOLERANCE*TOLERANCE );
586 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and libMesh::TOLERANCE.

◆ testVectorAddBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAddBase ( )
inline

Definition at line 534 of file type_vector_test.h.

535 {
536 LOG_UNIT_TEST;
537
538 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*basem_1_1_1)+(*basem_n1_1_n1))(0) , TOLERANCE*TOLERANCE );
539 if (LIBMESH_DIM > 1)
540 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*basem_1_1_1)+(*basem_n1_1_n1))(1) , TOLERANCE*TOLERANCE );
541 if (LIBMESH_DIM > 2)
542 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*basem_1_1_1)+(*basem_n1_1_n1))(2) , TOLERANCE*TOLERANCE );
543 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, and libMesh::TOLERANCE.

◆ testVectorAddScaled()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAddScaled ( )
inline

Definition at line 244 of file type_vector_test.h.

245 {
246 LOG_UNIT_TEST;
247
248 DerivedClass avector {*basem_1_1_1};
249 avector.add_scaled((*m_1_1_1),0.5);
250
251 for (int i = 0; i != LIBMESH_DIM; ++i)
252 LIBMESH_ASSERT_COMPLEX_EQUAL( 1.5 , avector(i) , TOLERANCE*TOLERANCE );
253 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::m_1_1_1, and libMesh::TOLERANCE.

◆ testVectorAddScaledBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorAddScaledBase ( )
inline

Definition at line 545 of file type_vector_test.h.

546 {
547 LOG_UNIT_TEST;
548
549 TypeVector<T> avector(*m_1_1_1);
550 avector.add_scaled((*basem_1_1_1),0.5);
551
552 for (int i = 0; i != LIBMESH_DIM; ++i)
553 LIBMESH_ASSERT_COMPLEX_EQUAL( 1.5 , avector(i) , TOLERANCE*TOLERANCE );
554 }

References libMesh::TypeVector< T >::add_scaled(), TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::m_1_1_1, and libMesh::TOLERANCE.

◆ testVectorMult()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorMult ( )
inline

Definition at line 266 of file type_vector_test.h.

267 {
268 LOG_UNIT_TEST;
269
270 if (LIBMESH_DIM == 2)
271 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , (*m_1_1_1)*(*m_n1_1_n1) , TOLERANCE*TOLERANCE );
272 else
273 LIBMESH_ASSERT_COMPLEX_EQUAL( -1.0 , (*m_1_1_1)*(*m_n1_1_n1) , TOLERANCE*TOLERANCE );
274 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, TypeVectorTestBase< DerivedClass >::m_n1_1_n1, and libMesh::TOLERANCE.

◆ testVectorMultBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorMultBase ( )
inline

Definition at line 567 of file type_vector_test.h.

568 {
569 LOG_UNIT_TEST;
570
571 if (LIBMESH_DIM == 2)
572 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , (*basem_1_1_1)*(*basem_n1_1_n1) , TOLERANCE*TOLERANCE );
573 else
574 LIBMESH_ASSERT_COMPLEX_EQUAL( -1.0 , (*basem_1_1_1)*(*basem_n1_1_n1) , TOLERANCE*TOLERANCE );
575 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, and libMesh::TOLERANCE.

◆ testVectorSub()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorSub ( )
inline

Definition at line 255 of file type_vector_test.h.

256 {
257 LOG_UNIT_TEST;
258
259 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*m_1_1_1)-(*m_n1_1_n1))(0) , TOLERANCE*TOLERANCE );
260 if (LIBMESH_DIM > 1)
261 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*m_1_1_1)-(*m_n1_1_n1))(1) , TOLERANCE*TOLERANCE );
262 if (LIBMESH_DIM > 2)
263 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*m_1_1_1)-(*m_n1_1_n1))(2) , TOLERANCE*TOLERANCE );
264 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, TypeVectorTestBase< DerivedClass >::m_n1_1_n1, and libMesh::TOLERANCE.

◆ testVectorSubAssign()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorSubAssign ( )
inline

Definition at line 287 of file type_vector_test.h.

288 {
289 LOG_UNIT_TEST;
290
291 DerivedClass avector {*basem_1_1_1};
292 avector-=(*m_n1_1_n1);
293
294 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(0) , TOLERANCE*TOLERANCE );
295 if (LIBMESH_DIM > 1)
296 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , avector(1) , TOLERANCE*TOLERANCE );
297 if (LIBMESH_DIM > 2)
298 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(2) , TOLERANCE*TOLERANCE );
299 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and libMesh::TOLERANCE.

◆ testVectorSubAssignBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorSubAssignBase ( )
inline

Definition at line 588 of file type_vector_test.h.

589 {
590 LOG_UNIT_TEST;
591
592 TypeVector<T> avector(*m_1_1_1);
593 avector-=(*basem_n1_1_n1);
594
595 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(0) , TOLERANCE*TOLERANCE );
596 if (LIBMESH_DIM > 1)
597 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , avector(1) , TOLERANCE*TOLERANCE );
598 if (LIBMESH_DIM > 2)
599 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , avector(2) , TOLERANCE*TOLERANCE );
600 }

References TypeVectorTestBase< DerivedClass >::m_1_1_1, and libMesh::TOLERANCE.

◆ testVectorSubBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testVectorSubBase ( )
inline

Definition at line 556 of file type_vector_test.h.

557 {
558 LOG_UNIT_TEST;
559
560 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*basem_1_1_1)-(*basem_n1_1_n1))(0) , TOLERANCE*TOLERANCE );
561 if (LIBMESH_DIM > 1)
562 LIBMESH_ASSERT_COMPLEX_EQUAL( 0.0 , ((*basem_1_1_1)-(*basem_n1_1_n1))(1) , TOLERANCE*TOLERANCE );
563 if (LIBMESH_DIM > 2)
564 LIBMESH_ASSERT_COMPLEX_EQUAL( 2.0 , ((*basem_1_1_1)-(*basem_n1_1_n1))(2) , TOLERANCE*TOLERANCE );
565 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, TypeVectorTestBase< DerivedClass >::basem_n1_1_n1, and libMesh::TOLERANCE.

◆ testZero()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testZero ( )
inline

Definition at line 116 of file type_vector_test.h.

117 {
118 LOG_UNIT_TEST;
119
120#if LIBMESH_DIM > 2
121 DerivedClass avector(1,1,1);
122#elif LIBMESH_DIM > 1
123 DerivedClass avector(1,1);
124#else
125 DerivedClass avector(1);
126#endif
127 avector.zero();
128
129 for (int i = 0; i != LIBMESH_DIM; ++i)
130 CPPUNIT_ASSERT_EQUAL( T(0), avector(i));
131 }

◆ testZeroBase()

template<class DerivedClass >
void TypeVectorTestBase< DerivedClass >::testZeroBase ( )
inline

Definition at line 315 of file type_vector_test.h.

316 {
317 LOG_UNIT_TEST;
318
319 TypeVector<T> avector((*basem_1_1_1));
320 avector.zero();
321
322 for (int i = 0; i != LIBMESH_DIM; ++i)
323 CPPUNIT_ASSERT_EQUAL( T(0), avector(i));
324 }

References TypeVectorTestBase< DerivedClass >::basem_1_1_1, and libMesh::TypeVector< T >::zero().

Member Data Documentation

◆ basem_1_1_1

template<class DerivedClass >
TypeVector<T>* TypeVectorTestBase< DerivedClass >::basem_1_1_1
private

◆ basem_n1_1_n1

template<class DerivedClass >
TypeVector<T> * TypeVectorTestBase< DerivedClass >::basem_n1_1_n1
private

◆ libmesh_suite_name

template<class DerivedClass >
std::string TypeVectorTestBase< DerivedClass >::libmesh_suite_name
protected

Definition at line 69 of file type_vector_test.h.

Referenced by PointTest::PointTest().

◆ m_1_1_1

template<class DerivedClass >
std::unique_ptr<DerivedClass> TypeVectorTestBase< DerivedClass >::m_1_1_1
private

◆ m_n1_1_n1

template<class DerivedClass >
std::unique_ptr<DerivedClass> TypeVectorTestBase< DerivedClass >::m_n1_1_n1
private

The documentation for this class was generated from the following file: