#include <gtest/gtest.h>
#include <solution/1957.h>
#include <string>

class MakeFancyStringTest : public ::testing::Test
{
  protected:
    void AssertFancyString(const std::string &input, const std::string &expected)
    {
        char *c_input = strdup(input.c_str()); // 复制一份以防原始修改
        char *result = makeFancyString(c_input);

        ASSERT_STREQ(result, expected.c_str());

        // 如函数返回的是 malloc 分配的，则应释放
        // free(result);
        free(c_input);
    }
};

// 示例 1：leeetcode → leetcode
TEST_F(MakeFancyStringTest, Example1)
{
    AssertFancyString("leeetcode", "leetcode");
}

// 示例 2：aaabaaaa → aabaa
TEST_F(MakeFancyStringTest, Example2)
{
    AssertFancyString("aaabaaaa", "aabaa");
}

// 示例 3：aab → aab
TEST_F(MakeFancyStringTest, Example3)
{
    AssertFancyString("aab", "aab");
}