78 BOOST_CHECK_EQUAL( vint,
VECTOR2I( vdouble ) );
79 BOOST_CHECK_EQUAL( vint,
VECTOR2I( vlong ) );
80 BOOST_CHECK_EQUAL( vint,
VECTOR2I( vfloat ) );
81 BOOST_CHECK_EQUAL( vint,
VECTOR2I( vunsigned ) );
83 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( vint ) );
84 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( vlong ) );
85 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( vfloat ) );
86 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( vunsigned ) );
88 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( vint ) );
89 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( vdouble ) );
90 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( vfloat ) );
91 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( vunsigned ) );
105 vdouble = vdouble - 1;
108 vunsigned = vunsigned - 1;
110 BOOST_CHECK_EQUAL( vint,
VECTOR2I( 3, 2 ) );
111 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( 3.0, 2.0 ) );
112 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( 3, 2 ) );
117 vint = vint - (unsigned)1;
118 vdouble = vdouble - (unsigned)1;
119 vlong = vlong - (unsigned)1;
120 vfloat = vfloat - (unsigned)1;
121 vunsigned = vunsigned - (unsigned)1;
123 BOOST_CHECK_EQUAL( vint,
VECTOR2I( 2, 1 ) );
124 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( 2.0, 1.0 ) );
125 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( 2, 1 ) );
130 vdouble = vdouble - 5.0;
132 vfloat = vfloat - 5.0;
133 vunsigned = vunsigned - 5.0;
135 BOOST_CHECK_EQUAL( vint,
VECTOR2I( -3, -4 ) );
136 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( -3.0, -4.0 ) );
137 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( -3, -4 ) );
149 vdouble = vdouble - 1;
152 vunsigned = vunsigned - 1;
154 BOOST_CHECK_EQUAL( vint,
VECTOR2I( -5, -4 ) );
155 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( -5.0, -4.0 ) );
156 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( -5, -4 ) );
161 vdouble = vdouble - 1u;
163 vfloat = vfloat - 1u;
165 BOOST_CHECK_EQUAL( vint,
VECTOR2I( -6, -5 ) );
166 BOOST_CHECK_EQUAL( vdouble,
VECTOR2D( -6.0, -5.0 ) );
167 BOOST_CHECK_EQUAL( vlong,
VECTOR2L( -6, -5 ) );
170 auto add = vint + vdouble;
171 BOOST_CHECK_EQUAL( add,
VECTOR2D( -12.0, -10.0 ) );
173 auto sub = vint - 2 * vlong;
174 BOOST_CHECK_EQUAL( sub.x, 6 );
175 BOOST_CHECK_EQUAL( sub.y, 5 );
177 vunsigned =
VECTOR2<unsigned>( std::numeric_limits<unsigned>::max(), std::numeric_limits<unsigned>::max() );
179 BOOST_CHECK_EQUAL( vint.
x, std::numeric_limits<int>::max() );
182 BOOST_CHECK_EQUAL( vunsigned.
x, 0 );
185BOOST_AUTO_TEST_SUITE_END()
extended_type Cross(const VECTOR2< T > &aVector) const
Compute cross product of self with aVector.
extended_type Dot(const VECTOR2< T > &aVector) const
Compute dot product of self with aVector.
VECTOR2< T > Resize(T aNewLength) const
Return a vector of the same direction, but length specified in aNewLength.
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
VECTOR2I v2(1, 0)
Test suite for KiCad math code.
BOOST_AUTO_TEST_CASE(test_casting)
BOOST_CHECK(v2.Cross(v1)==1)
VECTOR2< int32_t > VECTOR2I
VECTOR2< double > VECTOR2D
VECTOR2< int64_t > VECTOR2L