1 #include <mdst/dbobjects/BeamSpot.h>
2 #include <gtest/gtest.h>
25 std::function<float (
int,
int)> sizeElement = [ & sizeElement](
int i,
int j) {
26 return j >= i ? (i + 1) + 10 * (j + 1) : sizeElement(j, i) ;
29 std::function<float (
int,
int)> errorElement = [& errorElement](
int i,
int j) {
30 return j >= i ? 100 + (i + 1) + 10 * (j + 1) : errorElement(j, i);
33 TMatrixDSym size(3), positionError(3);
34 for (
int i = 0; i < 3; i++)
35 for (
int j = i; j < 3; j++) {
36 size(i, j) = size(j, i) = sizeElement(i, j);
37 positionError(i, j) = positionError(j, i) = errorElement(i, j);
41 position.SetXYZ(1., 2., 3.);
44 bs.
setIP(position, positionError);
47 EXPECT_EQ(testPosition.X() , 1.);
48 EXPECT_EQ(testPosition.Y() , 2.);
49 EXPECT_EQ(testPosition.Z() , 3.);
52 for (
int i = 0; i < 3; i++)
53 for (
int j = 0; j < 3; j++)
54 EXPECT_EQ(testError(i, j) , errorElement(i, j));
57 for (
int i = 0; i < 3; i++)
58 for (
int j = 0; j < 3; j++)
59 EXPECT_EQ(testSize(i, j) , sizeElement(i, j));
63 for (
int i = 0; i < 3; i++)
64 for (
int j = 0; j < 3; j++)
65 EXPECT_EQ(testCovVertex(i, j) , (sizeElement(i, j) + errorElement(i, j)));
69 EXPECT_EQ(bs == bs2,
true);
73 EXPECT_EQ(bs == bs3,
true);
80 size(2, 2) = std::numeric_limits<double>::min();
83 EXPECT_EQ(bs4 == bs3,
false);