opensurgsim
Classes | Typedefs | Functions
VectorTests.cpp File Reference

Tests that exercise the functionality of our vector typedefs, which come straight from Eigen. More...

#include <gtest/gtest.h>
#include <math.h>
#include <vector>
#include "SurgSim/Math/MathConvert.h"
#include "SurgSim/Math/Vector.h"

Classes

class  VectorTestBase< T >
 
class  Vector2Tests< T >
 
class  Vector3Tests< T >
 
class  Vector4Tests< T >
 
class  Vector6Tests< T >
 
class  AllVectorTests< T >
 
class  AllDynamicVectorTests< T >
 
class  UnalignedVectorTests< T >
 
class  UnalignedDynamicVectorTests< T >
 

Typedefs

typedef ::testing::Types< SurgSim::Math::Vector2d, SurgSim::Math::Vector2fVector2Variants
 
typedef ::testing::Types< SurgSim::Math::Vector3d, SurgSim::Math::Vector3fVector3Variants
 
typedef ::testing::Types< SurgSim::Math::Vector4d, SurgSim::Math::Vector4fVector4Variants
 
typedef ::testing::Types< SurgSim::Math::Vector6d, SurgSim::Math::Vector6fVector6Variants
 
typedef ::testing::Types< SurgSim::Math::Vector2d, SurgSim::Math::Vector2f, SurgSim::Math::Vector3d, SurgSim::Math::Vector3f, SurgSim::Math::Vector4d, SurgSim::Math::Vector4f, SurgSim::Math::Vector6d, SurgSim::Math::Vector6fAllVectorVariants
 
typedef ::testing::Types< Eigen::VectorXd, Eigen::VectorXf, SurgSim::Math::VectorAllDynamicVectorVariants
 
typedef ::testing::Types< SurgSim::Math::Vector2d, SurgSim::Math::Vector2f, SurgSim::Math::Vector3d, SurgSim::Math::Vector3f, SurgSim::Math::Vector4d, SurgSim::Math::Vector4f, SurgSim::Math::Vector6d, SurgSim::Math::Vector6fUnalignedVectorVariants
 
typedef ::testing::Types< Eigen::VectorXd, Eigen::VectorXf, SurgSim::Math::VectorUnalignedDynamicVectorVariants
 

Functions

 TYPED_TEST_CASE (Vector2Tests, Vector2Variants)
 
 TYPED_TEST_CASE (Vector3Tests, Vector3Variants)
 
 TYPED_TEST_CASE (Vector4Tests, Vector4Variants)
 
 TYPED_TEST_CASE (Vector6Tests, Vector6Variants)
 
 TYPED_TEST_CASE (AllVectorTests, AllVectorVariants)
 
 TYPED_TEST_CASE (AllDynamicVectorTests, AllDynamicVectorVariants)
 
 TYPED_TEST_CASE (UnalignedVectorTests, UnalignedVectorVariants)
 
 TYPED_TEST_CASE (UnalignedDynamicVectorTests, UnalignedDynamicVectorVariants)
 
 TYPED_TEST (Vector2Tests, CanConstruct)
 Test that vectors can be constructed.
 
 TYPED_TEST (Vector3Tests, CanConstruct)
 Test that vectors can be constructed.
 
 TYPED_TEST (Vector4Tests, CanConstruct)
 Test that vectors can be constructed.
 
 TYPED_TEST (Vector2Tests, NArgumentConstructorInitialization)
 Test that the N-argument constructor properly initializes vectors.
 
 TYPED_TEST (Vector3Tests, NArgumentConstructorInitialization)
 Test that the N-argument constructor properly initializes vectors.
 
 TYPED_TEST (Vector4Tests, NArgumentConstructorInitialization)
 Test that the N-argument constructor properly initializes vectors.
 
 TYPED_TEST (UnalignedVectorTests, DefaultConstructorInitialization)
 Test that the default constructor DOESN'T initialize vectors.
 
 TYPED_TEST (Vector2Tests, ShiftCommaInitialization)
 Test setting the vector using the << syntax.
 
 TYPED_TEST (Vector3Tests, ShiftCommaInitialization)
 Test setting the vector using the << syntax.
 
 TYPED_TEST (Vector4Tests, ShiftCommaInitialization)
 Test setting the vector using the << syntax.
 
 TYPED_TEST (Vector6Tests, ShiftCommaInitialization)
 Test setting the vector using the << syntax.
 
 TYPED_TEST (AllVectorTests, ZeroValue)
 Test getting a zero value usable in expressions.
 
 TYPED_TEST (AllVectorTests, SetToZero)
 Test setting vectors to 0.
 
 TYPED_TEST (AllVectorTests, ConstantValue)
 Test getting a constant value usable in expressions.
 
 TYPED_TEST (AllVectorTests, SetToConstant)
 Test setting vectors to a constant.
 
 TYPED_TEST (AllVectorTests, SetFromArray)
 Test initializing from a float array.
 
 TYPED_TEST (AllVectorTests, YamlConvert)
 
 TYPED_TEST (AllVectorTests, Assign)
 Test assignment.
 
 TYPED_TEST (AllVectorTests, Negate)
 Negation (unary minus).
 
 TYPED_TEST (AllVectorTests, Add)
 Addition.
 
 TYPED_TEST (AllVectorTests, Subtract)
 Subtraction.
 
 TYPED_TEST (AllVectorTests, AddTo)
 Incrementing by a value.
 
 TYPED_TEST (AllVectorTests, SubtractFrom)
 Decrementing by a value.
 
 TYPED_TEST (AllVectorTests, MultiplyVectorScalar)
 Vector-scalar multiplication.
 
 TYPED_TEST (AllVectorTests, MultiplyScalarVector)
 Scalar-vector multiplication.
 
 TYPED_TEST (AllVectorTests, DivideScalar)
 Division by scalar.
 
 TYPED_TEST (AllVectorTests, ComponentwiseMultiply)
 Component-wise multiplication.
 
 TYPED_TEST (AllVectorTests, ComponentwiseDivide)
 Component-wise division.
 
 TYPED_TEST (AllVectorTests, DotProduct)
 Dot product.
 
 TYPED_TEST (Vector3Tests, CrossProduct)
 Cross product.
 
 TYPED_TEST (AllVectorTests, OuterProduct)
 Outer product.
 
 TYPED_TEST (AllVectorTests, NormAndSquared)
 Euclidean norm and its square.
 
 TYPED_TEST (AllVectorTests, L1NormAndLInfNorm)
 L1 (Manhattan) norm and L_Infinity (largest absolute value) norm.
 
 TYPED_TEST (AllVectorTests, Normalize)
 Normalization of vectors.
 
 TYPED_TEST (AllVectorTests, MinAndMax)
 Minimum and maximum elements.
 
 TYPED_TEST (Vector2Tests, Extend2to3)
 Extending vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector2Tests, DynamicExtend2to3)
 Extending vectors using the head(r) syntax.
 
 TYPED_TEST (Vector2Tests, BlockExtend2to3)
 Extending vectors using the block<r,c>() syntax.
 
 TYPED_TEST (Vector2Tests, DynamicBlockExtend2to3)
 Extending vectors using the block(i,j,r,c) syntax.
 
 TYPED_TEST (Vector2Tests, Shrink3to2)
 Shrinking vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector3Tests, Extend2to3)
 Extending vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector3Tests, Shrink3to2)
 Shrinking vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector3Tests, Extend3to4)
 Extending vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector3Tests, Shrink4to3)
 Shrinking vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector4Tests, Extend3to4)
 Extending vectors using the head<r>() syntax.
 
 TYPED_TEST (Vector4Tests, Shrink4to3)
 Shrinking vectors using the head<r>() syntax.
 
 TYPED_TEST (AllVectorTests, HomogeneousExtend)
 Extend Euclidean N-vector [a_i] to homogeneous (N+1)-vector [a_i 1].
 
 TYPED_TEST (AllVectorTests, HomogeneousShrink)
 Shrink a homogeneous (N+1)-vector [a_i 1] to Euclidean N-vector [a_i]. More...
 
 TYPED_TEST (AllVectorTests, TypeCasting)
 Typecasting vectors (double <-> float conversions).
 
 TYPED_TEST (AllVectorTests, ArrayReadWrite)
 Reading from and writing to arrays or blocks of double/float in memory.
 
 TYPED_TEST (AllVectorTests, Interpolate)
 
 TYPED_TEST (AllDynamicVectorTests, CanResize)
 
 TYPED_TEST (AllDynamicVectorTests, addSubVector)
 
 TYPED_TEST (AllDynamicVectorTests, addSubVectorBlocks)
 
 TYPED_TEST (AllDynamicVectorTests, setSubVector)
 
 TYPED_TEST (AllDynamicVectorTests, getSubVector)
 
 TYPED_TEST (AllDynamicVectorTests, getSubVectorBlocks)
 
template<class Vector >
void testOrthonormalBasis (const Vector &i, const Vector &j, const Vector &k)
 
 TYPED_TEST (Vector3Tests, buildOrthonormalBasis)
 
 TYPED_TEST (Vector3Tests, robustCrossProduct)
 

Detailed Description

Tests that exercise the functionality of our vector typedefs, which come straight from Eigen.

Function Documentation

§ TYPED_TEST()

TYPED_TEST ( AllVectorTests  ,
HomogeneousShrink   
)

Shrink a homogeneous (N+1)-vector [a_i 1] to Euclidean N-vector [a_i].

Note that if the last element is not 1, the result will be divided by it, which is helpful in projective geometry but may not be what you wanted!