1 #include <framework/gearbox/Unit.h>
3 #include <framework/utilities/TestHelpers.h>
5 #include <gtest/gtest.h>
13 TEST(UnitTest, MultiplyDivide)
16 double length = 10.0 * Unit::mm;
18 EXPECT_DOUBLE_EQ(1.0, length);
20 EXPECT_DOUBLE_EQ(10.0, length / Unit::mm);
21 EXPECT_DOUBLE_EQ(10000.0, length / Unit::um);
23 EXPECT_DOUBLE_EQ(1e9, 1 * Unit::s);
27 TEST(UnitTest, ConvertValue)
30 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"cm"));
31 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"ns"));
32 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"rad"));
33 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"GeV"));
34 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"K"));
35 EXPECT_DOUBLE_EQ(1e-4, Unit::convertValue(1.0,
"T"));
36 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"e"));
37 EXPECT_DOUBLE_EQ(1.0, Unit::convertValue(1.0,
"g/cm3"));
40 EXPECT_DOUBLE_EQ(1e2, Unit::convertValue(1.0,
"m"));
41 EXPECT_DOUBLE_EQ(1e5, Unit::convertValue(1.0,
"km"));
42 EXPECT_DOUBLE_EQ(1e-1, Unit::convertValue(1.0,
"mm"));
43 EXPECT_DOUBLE_EQ(1e-4, Unit::convertValue(1.0,
"um"));
44 EXPECT_DOUBLE_EQ(1e-7, Unit::convertValue(1.0,
"nm"));
47 EXPECT_DOUBLE_EQ(5e3 * 1e2, Unit::convertValue(5e3,
"m"));
48 EXPECT_DOUBLE_EQ(5e-3 * 1e2, Unit::convertValue(5e-3,
"m"));
49 EXPECT_DOUBLE_EQ(M_PI, Unit::convertValue(180.0,
"deg"));
52 EXPECT_B2ERROR(EXPECT_DOUBLE_EQ(5e3, Unit::convertValue(5e3,
"nonexistingunit")));
56 TEST(UnitTest, ConvertValueToUnit)
59 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"cm"));
60 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"ns"));
61 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"rad"));
62 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"GeV"));
63 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"K"));
64 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1e-4,
"T"));
65 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"e"));
66 EXPECT_DOUBLE_EQ(1.0, Unit::convertValueToUnit(1.0,
"g/cm3"));
69 EXPECT_DOUBLE_EQ(1e-2, Unit::convertValueToUnit(1.0,
"m"));
70 EXPECT_DOUBLE_EQ(1e-5, Unit::convertValueToUnit(1.0,
"km"));
71 EXPECT_DOUBLE_EQ(1e1, Unit::convertValueToUnit(1.0,
"mm"));
72 EXPECT_DOUBLE_EQ(1e4, Unit::convertValueToUnit(1.0,
"um"));
73 EXPECT_DOUBLE_EQ(1e7, Unit::convertValueToUnit(1.0,
"nm"));
76 EXPECT_DOUBLE_EQ(5e3 * 1e-2, Unit::convertValueToUnit(5e3,
"m"));
77 EXPECT_DOUBLE_EQ(5e-3 * 1e-2, Unit::convertValueToUnit(5e-3,
"m"));
78 EXPECT_DOUBLE_EQ(180.0, Unit::convertValueToUnit(M_PI,
"deg"));
81 EXPECT_B2ERROR(EXPECT_DOUBLE_EQ(5e3, Unit::convertValueToUnit(5e3,
"nonexistingunit")));