fix FixVector(size_t m, ...), which also has dangerous behavior

release/4.3a0
jing 2014-01-23 19:02:24 -05:00
parent 8c4aa2b9a6
commit 376892f67f
2 changed files with 11 additions and 9 deletions

View File

@ -52,6 +52,7 @@ public:
* NOTE: this will throw warnings/explode if there is no argument * NOTE: this will throw warnings/explode if there is no argument
* before the variadic section, so there is a meaningless size argument. * before the variadic section, so there is a meaningless size argument.
*/ */
/*
FixedVector(size_t n, ...) { FixedVector(size_t n, ...) {
va_list ap; va_list ap;
va_start(ap, n); va_start(ap, n);
@ -61,7 +62,7 @@ public:
} }
va_end(ap); va_end(ap);
} }
*/
/** /**
* Create vector initialized to a constant value * Create vector initialized to a constant value
* @param value constant value * @param value constant value

View File

@ -37,7 +37,7 @@ TEST( testFixedVector, conversions ) {
/* ************************************************************************* */ /* ************************************************************************* */
TEST( testFixedVector, variable_constructor ) { TEST( testFixedVector, variable_constructor ) {
TestVector3 act(3, 1.0, 2.0, 3.0); TestVector3 act((Vector(3) << 1.0, 2.0, 3.0));
EXPECT_DOUBLES_EQUAL(1.0, act(0), tol); EXPECT_DOUBLES_EQUAL(1.0, act(0), tol);
EXPECT_DOUBLES_EQUAL(2.0, act(1), tol); EXPECT_DOUBLES_EQUAL(2.0, act(1), tol);
EXPECT_DOUBLES_EQUAL(3.0, act(2), tol); EXPECT_DOUBLES_EQUAL(3.0, act(2), tol);
@ -45,8 +45,9 @@ TEST( testFixedVector, variable_constructor ) {
/* ************************************************************************* */ /* ************************************************************************* */
TEST( testFixedVector, equals ) { TEST( testFixedVector, equals ) {
TestVector3 vec1(3, 1.0, 2.0, 3.0), vec2(3, 1.0, 2.0, 3.0), vec3(3, 2.0, 3.0, 4.0); TestVector3 vec1((Vector(3) << 1.0, 2.0, 3.0)), vec2((Vector(3) << 1.0, 2.0, 3.0)),
TestVector5 vec4(5, 1.0, 2.0, 3.0, 4.0, 5.0); vec3((Vector(3) << 2.0, 3.0, 4.0));
TestVector5 vec4((Vector(5) << 1.0, 2.0, 3.0, 4.0, 5.0));
EXPECT(assert_equal(vec1, vec1, tol)); EXPECT(assert_equal(vec1, vec1, tol));
EXPECT(assert_equal(vec1, vec2, tol)); EXPECT(assert_equal(vec1, vec2, tol));
@ -60,23 +61,23 @@ TEST( testFixedVector, equals ) {
/* ************************************************************************* */ /* ************************************************************************* */
TEST( testFixedVector, static_constructors ) { TEST( testFixedVector, static_constructors ) {
TestVector3 actZero = TestVector3::zero(); TestVector3 actZero = TestVector3::zero();
TestVector3 expZero(3, 0.0, 0.0, 0.0); TestVector3 expZero((Vector(3) << 0.0, 0.0, 0.0));
EXPECT(assert_equal(expZero, actZero, tol)); EXPECT(assert_equal(expZero, actZero, tol));
TestVector3 actOnes = TestVector3::ones(); TestVector3 actOnes = TestVector3::ones();
TestVector3 expOnes(3, 1.0, 1.0, 1.0); TestVector3 expOnes((Vector(3) << 1.0, 1.0, 1.0));
EXPECT(assert_equal(expOnes, actOnes, tol)); EXPECT(assert_equal(expOnes, actOnes, tol));
TestVector3 actRepeat = TestVector3::repeat(2.3); TestVector3 actRepeat = TestVector3::repeat(2.3);
TestVector3 expRepeat(3, 2.3, 2.3, 2.3); TestVector3 expRepeat((Vector(3) << 2.3, 2.3, 2.3));
EXPECT(assert_equal(expRepeat, actRepeat, tol)); EXPECT(assert_equal(expRepeat, actRepeat, tol));
TestVector3 actBasis = TestVector3::basis(1); TestVector3 actBasis = TestVector3::basis(1);
TestVector3 expBasis(3, 0.0, 1.0, 0.0); TestVector3 expBasis((Vector(3) << 0.0, 1.0, 0.0));
EXPECT(assert_equal(expBasis, actBasis, tol)); EXPECT(assert_equal(expBasis, actBasis, tol));
TestVector3 actDelta = TestVector3::delta(1, 2.3); TestVector3 actDelta = TestVector3::delta(1, 2.3);
TestVector3 expDelta(3, 0.0, 2.3, 0.0); TestVector3 expDelta((Vector(3) << 0.0, 2.3, 0.0));
EXPECT(assert_equal(expDelta, actDelta, tol)); EXPECT(assert_equal(expDelta, actDelta, tol));
} }