#include <gtest/gtest.h>
#include <solution/1717.h>

class MaximumGainTest : public ::testing::Test
{
  protected:
    void AssertMaximumGain(const std::string &input, int x, int y, int expected)
    {
        char *s = strdup(input.c_str()); // 复制字符串，防止修改原始数据
        int result = maximumGain(s, x, y);
        ASSERT_EQ(result, expected);
        free(s);
    }
};

// 示例 1
TEST_F(MaximumGainTest, Example1)
{
    // 输入：s = "cdbcbbaaabab", x = 4, y = 5
    // 输出：19
    AssertMaximumGain("cdbcbbaaabab", 4, 5, 19);
}

// 示例 2
TEST_F(MaximumGainTest, Example2)
{
    // 输入：s = "aabbaaxybbaabb", x = 5, y = 4
    // 输出：20
    AssertMaximumGain("aabbaaxybbaabb", 5, 4, 20);
}