/
MatrixUtils.h
34 lines (26 loc) · 1021 Bytes
/
MatrixUtils.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include "gtest/gtest.h"
namespace test
{
// EXPECT that two matrices are close to each other (using GTest's EXPECT_NEAR)
inline void expectNear(const Matrix4& m1, const Matrix4& m2)
{
constexpr double TestEpsilon = 0.0001;
EXPECT_NEAR(m1.xx(), m2.xx(), TestEpsilon);
EXPECT_NEAR(m1.xy(), m2.xy(), TestEpsilon);
EXPECT_NEAR(m1.xz(), m2.xz(), TestEpsilon);
EXPECT_NEAR(m1.xw(), m2.xw(), TestEpsilon);
EXPECT_NEAR(m1.yx(), m2.yx(), TestEpsilon);
EXPECT_NEAR(m1.yy(), m2.yy(), TestEpsilon);
EXPECT_NEAR(m1.yz(), m2.yz(), TestEpsilon);
EXPECT_NEAR(m1.yw(), m2.yw(), TestEpsilon);
EXPECT_NEAR(m1.zx(), m2.zx(), TestEpsilon);
EXPECT_NEAR(m1.zy(), m2.zy(), TestEpsilon);
EXPECT_NEAR(m1.zz(), m2.zz(), TestEpsilon);
EXPECT_NEAR(m1.zw(), m2.zw(), TestEpsilon);
EXPECT_NEAR(m1.tx(), m2.tx(), TestEpsilon);
EXPECT_NEAR(m1.ty(), m2.ty(), TestEpsilon);
EXPECT_NEAR(m1.tz(), m2.tz(), TestEpsilon);
EXPECT_NEAR(m1.tw(), m2.tw(), TestEpsilon);
}
}