3 #include "testing/testing.h"
11 TEST(math_vector, ClampVecWithFloats)
13 const float min = 0.0f;
14 const float max = 1.0f;
16 float a[2] = {-1.0f, -1.0f};
18 EXPECT_FLOAT_EQ(0.0f,
a[0]);
19 EXPECT_FLOAT_EQ(0.0f,
a[1]);
21 float b[2] = {0.5f, 0.5f};
23 EXPECT_FLOAT_EQ(0.5f,
b[0]);
24 EXPECT_FLOAT_EQ(0.5f,
b[1]);
26 float c[2] = {2.0f, 2.0f};
28 EXPECT_FLOAT_EQ(1.0f,
c[0]);
29 EXPECT_FLOAT_EQ(1.0f,
c[1]);
32 TEST(math_vector, ClampVecWithVecs)
34 const float min[2] = {0.0f, 2.0f};
35 const float max[2] = {1.0f, 3.0f};
37 float a[2] = {-1.0f, -1.0f};
39 EXPECT_FLOAT_EQ(0.0f,
a[0]);
40 EXPECT_FLOAT_EQ(2.0f,
a[1]);
42 float b[2] = {0.5f, 2.5f};
44 EXPECT_FLOAT_EQ(0.5f,
b[0]);
45 EXPECT_FLOAT_EQ(2.5f,
b[1]);
47 float c[2] = {2.0f, 4.0f};
49 EXPECT_FLOAT_EQ(1.0f,
c[0]);
50 EXPECT_FLOAT_EQ(3.0f,
c[1]);
53 TEST(math_vector, test_invert_v3_safe)
55 float v3_with_zeroes[3] = {0.0f, 2.0f, 3.0f};
57 EXPECT_FLOAT_EQ(0.0f, v3_with_zeroes[0]);
58 EXPECT_FLOAT_EQ(0.5f, v3_with_zeroes[1]);
59 EXPECT_FLOAT_EQ(0.33333333333f, v3_with_zeroes[2]);
61 float v3_without_zeroes[3] = {1.0f, 2.0f, 3.0f};
62 float inverted_unsafe[3] = {1.0f, 2.0f, 3.0f};
66 EXPECT_FLOAT_EQ(inverted_unsafe[0], v3_without_zeroes[0]);
67 EXPECT_FLOAT_EQ(inverted_unsafe[1], v3_without_zeroes[1]);
68 EXPECT_FLOAT_EQ(inverted_unsafe[2], v3_without_zeroes[2]);
73 const int3 value(0, 100, -100);
88 TEST(math_vector, InterpolateInt)
90 const int3 a(0, -100, 50);
91 const int3 b(0, 100, 100);
98 TEST(math_vector, InterpolateFloat)
100 const float3 a(40.0f, -100.0f, 50.0f);
101 const float3 b(20.0f, 100.0f, 100.0f);
103 EXPECT_FLOAT_EQ(
result.x, 30.0f);
104 EXPECT_FLOAT_EQ(
result.y, 0.0f);
105 EXPECT_FLOAT_EQ(
result.z, 75.0f);
108 TEST(math_vector, CeilToMultiple)
110 const int3 a(21, 16, 0);
111 const int3 b(8, 16, 15);
113 EXPECT_FLOAT_EQ(
result.x, 24);
114 EXPECT_FLOAT_EQ(
result.y, 16);
115 EXPECT_FLOAT_EQ(
result.z, 0);
120 const int3 a(21, 16, 0);
121 const int3 b(8, 16, 15);
123 EXPECT_FLOAT_EQ(
result.x, 3);
124 EXPECT_FLOAT_EQ(
result.y, 1);
125 EXPECT_FLOAT_EQ(
result.z, 0);
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
MINLINE void invert_v3_safe(float r[3])
MINLINE void clamp_v2(float vec[2], float min, float max)
MINLINE void clamp_v2_v2v2(float vec[2], const float min[2], const float max[2])
MINLINE void invert_v3(float r[3])
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp
T clamp(const T &a, const T &min, const T &max)
vec_base< T, Size > ceil_to_multiple(const vec_base< T, Size > &a, const vec_base< T, Size > &b)
vec_base< T, Size > divide_ceil(const vec_base< T, Size > &a, const vec_base< T, Size > &b)
T interpolate(const T &a, const T &b, const FactorT &t)
TEST(any, DefaultConstructor)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)