15 #include <gtest/gtest.h>
27 TEST(NormalizeAction, DefaultExecutionPolicy) {
30 ASSERT_EQ(input.front(), std::make_tuple(5, 2.0));
33 TEST(NormalizeAction, SequencedExecutionPolicy) {
36 ASSERT_EQ(input.front(), std::make_tuple(5, 2.0));
39 TEST(NormalizeAction, ParallelExecutionPolicy) {
42 ASSERT_EQ(input.front(), std::make_tuple(5, 2.0));
45 TEST(NormalizeAction, DefaultFactor) {
48 ASSERT_EQ(input.front(), std::make_tuple(5, 1.0));
51 TEST(NormalizeAction, DefaultFactorAndExecutionPolicy) {
54 ASSERT_EQ(input.front(), std::make_tuple(5, 1.0));
57 TEST(NormalizeAction, EmptyInputRange) {
58 auto input = std::vector<std::tuple<int, beluga::Weight>>{};
60 ASSERT_TRUE(input.empty());
63 TEST(NormalizeAction, MultipleParticles) {
64 auto input = std::vector{
69 ASSERT_EQ(input.size(), 3);
70 ASSERT_EQ(input[0], std::make_tuple(5, 2.0));
71 ASSERT_EQ(input[1], std::make_tuple(8, 1.0));
72 ASSERT_EQ(input[2], std::make_tuple(3, 3.0));
75 TEST(NormalizeAction, MultipleElements) {
76 auto input = std::vector{4.0, 2.0, 6.0};
78 ASSERT_EQ(input.size(), 3);
79 ASSERT_EQ(input[0], 2.0);
80 ASSERT_EQ(input[1], 1.0);
81 ASSERT_EQ(input[2], 3.0);
84 TEST(NormalizeAction, ZeroFactor) {
90 TEST(NormalizeAction, NegativeFactor) {
93 ASSERT_EQ(input.front(), std::make_tuple(5,
beluga::Weight(-2.0)));