5#include "testing/testing.h"
13TEST(math_vec_types, ScalarConstructorUnsigned)
20TEST(math_vec_types, ScalarConstructorInt)
27TEST(math_vec_types, ScalarConstructorFloat)
30 EXPECT_FLOAT_EQ(f[0], 5.2f);
31 EXPECT_FLOAT_EQ(f[1], 5.2f);
34TEST(math_vec_types, ScalarConstructorDouble)
37 EXPECT_FLOAT_EQ(d[0], 5.2f);
38 EXPECT_FLOAT_EQ(d[1], 5.2f);
41TEST(math_vec_types, MultiScalarConstructorVec2)
48TEST(math_vec_types, MultiScalarConstructorVec3)
56TEST(math_vec_types, MultiScalarConstructorVec4)
65TEST(math_vec_types, MixedScalarVectorConstructorVec3)
68 EXPECT_FLOAT_EQ(fl_v2[0], 5.5f);
69 EXPECT_FLOAT_EQ(fl_v2[1], 5.5f);
70 EXPECT_FLOAT_EQ(fl_v2[2], 1.8f);
73 EXPECT_FLOAT_EQ(v2_fl[0], 1.8f);
74 EXPECT_FLOAT_EQ(v2_fl[1], 5.5f);
75 EXPECT_FLOAT_EQ(v2_fl[2], 5.5f);
78TEST(math_vec_types, MixedScalarVectorConstructorVec4)
117TEST(math_vec_types, ComponentMasking)
125TEST(math_vec_types, PointerConversion)
127 float array[3] = {1.0f, 2.0f, 3.0f};
134TEST(math_vec_types, PointerArrayConversion)
136 float array[1][3] = {{1.0f, 2.0f, 3.0f}};
144TEST(math_vec_types, VectorTypeConversion)
154 EXPECT_FLOAT_EQ(result.x, 1.5f);
155 EXPECT_FLOAT_EQ(result.y, 4.0f);
158 result2 +=
float2(0.5f, 2.0f);
159 EXPECT_FLOAT_EQ(result2.x, 1.5f);
160 EXPECT_FLOAT_EQ(result2.y, 4.0f);
163TEST(math_vec_types, AddFloatByVector)
166 EXPECT_FLOAT_EQ(result.x, 2.5f);
167 EXPECT_FLOAT_EQ(result.y, 4.0f);
170 EXPECT_FLOAT_EQ(result2.x, 2.5f);
171 EXPECT_FLOAT_EQ(result2.y, 4.0f);
175 EXPECT_FLOAT_EQ(result3.x, 2.5f);
176 EXPECT_FLOAT_EQ(result3.y, 4.0f);
182 EXPECT_FLOAT_EQ(result.x, 0.5f);
183 EXPECT_FLOAT_EQ(result.y, 0.0f);
186 result2 -=
float2(0.5f, 2.0f);
187 EXPECT_FLOAT_EQ(result2.x, 0.5f);
188 EXPECT_FLOAT_EQ(result2.y, 0.0f);
191 EXPECT_FLOAT_EQ(result3.x, -1.0f);
192 EXPECT_FLOAT_EQ(result3.y, -2.0f);
195TEST(math_vec_types, SubFloatByVector)
198 EXPECT_FLOAT_EQ(result.x, -1.5f);
199 EXPECT_FLOAT_EQ(result.y, 0.0f);
202 EXPECT_FLOAT_EQ(result2.x, 1.5f);
203 EXPECT_FLOAT_EQ(result2.y, 0.0f);
207 EXPECT_FLOAT_EQ(result3.x, -1.5f);
208 EXPECT_FLOAT_EQ(result3.y, 0.0f);
214 EXPECT_FLOAT_EQ(result.x, 0.5f);
215 EXPECT_FLOAT_EQ(result.y, 4.0f);
218 result2 *=
float2(0.5f, 2.0f);
219 EXPECT_FLOAT_EQ(result2.x, 0.5f);
220 EXPECT_FLOAT_EQ(result2.y, 4.0f);
223TEST(math_vec_types, MulFloatByVector)
226 EXPECT_FLOAT_EQ(result.x, 1.0f);
227 EXPECT_FLOAT_EQ(result.y, 4.0f);
230 EXPECT_FLOAT_EQ(result2.x, 1.0f);
231 EXPECT_FLOAT_EQ(result2.y, 4.0f);
235 EXPECT_FLOAT_EQ(result3.x, 1.0f);
236 EXPECT_FLOAT_EQ(result3.y, 4.0f);
244 EXPECT_FLOAT_EQ(result.x, 2.0f);
245 EXPECT_FLOAT_EQ(result.y, 1.0f);
248TEST(math_vec_types, DivideFloatByVector)
253 EXPECT_FLOAT_EQ(result.x, 4.0f);
254 EXPECT_FLOAT_EQ(result.y, 1.0f);
257TEST(math_vec_types, DivideFloatByVectorSmall)
260 EXPECT_FLOAT_EQ(result.x, 1.0f);
261 EXPECT_FLOAT_EQ(result.y, 1.0f);
264TEST(math_vec_types, SwizzleReinterpret)
269 const float3 v012(0, 1, 2);
270 const float3 v123(1, 2, 3);
271 const float4 v0123(0, 1, 2, 3);
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
static btMatrix3x3 Mul(const btMatrix3x3 &a, btScalar b)
static btMatrix3x3 Sub(const btMatrix3x3 &a, const btMatrix3x3 &b)
local_group_size(16, 16) .push_constant(Type b
draw_view in_light_buf[] float
TEST(any, DefaultConstructor)
VecBase< uint32_t, 2 > uint2
VecBase< double, 2 > double2
VecBase< uint32_t, 3 > uint3
VecBase< int32_t, 2 > int2
VecBase< float, 2 > float2
VecBase< float, 3 > float3
VecBase< T, 4 > xyzw() const
VecBase< T, 2 > zw() const
VecBase< T, 3 > yzw() const
VecBase< T, 2 > xy() const
VecBase< T, 3 > xyz() const
VecBase< T, 2 > yz() const