15 #include <gmock/gmock.h>
16 #include <gtest/gtest.h>
23 #include <range/v3/range/conversion.hpp>
24 #include <range/v3/view/intersperse.hpp>
33 TEST(ReweightAction, DefaultExecutionPolicy) {
36 ASSERT_EQ(input.front(), std::make_tuple(5, 10.0));
39 TEST(ReweightAction, SequencedExecutionPolicy) {
42 ASSERT_EQ(input.front(), std::make_tuple(5, 10.0));
45 TEST(ReweightAction, ParallelExecutionPolicy) {
48 ASSERT_EQ(input.front(), std::make_tuple(5, 10.0));
51 TEST(ReweightAction, Composition) {
54 ranges::views::intersperse(std::make_tuple(5,
beluga::Weight(1.0))) |
57 ASSERT_THAT(
weights, testing::ElementsAre(2, 1, 4));
60 TEST(ReweightAction, StatefulModel) {
62 auto model = [value = 0](int)
mutable {
return value++; };
63 input |= ranges::views::intersperse(std::make_tuple(5,
beluga::Weight(1.0))) |
67 ASSERT_THAT(
weights, testing::ElementsAre(0, 1, 2));
68 ASSERT_EQ(model(0), 3);