// This file is generated by mkfile.py
// Date: 2025-12-05

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

// Tests for tribonacci (LeetCode 1137)
class TribonacciTest : public ::testing::Test
{
  protected:
    void AssertTribo(int n, int expected)
    {
        ASSERT_EQ(tribonacci(n), expected);
    }
};

TEST_F(TribonacciTest, BaseCases)
{
    AssertTribo(0, 0);
    AssertTribo(1, 1);
    AssertTribo(2, 1);
}

TEST_F(TribonacciTest, SmallNumbers)
{
    AssertTribo(3, 2);
    AssertTribo(4, 4);
    AssertTribo(5, 7);
}

TEST_F(TribonacciTest, MediumNumbers)
{
    AssertTribo(10, 149);
    AssertTribo(15, 3136);
}

TEST_F(TribonacciTest, UpperBound)
{
    AssertTribo(25, 1389537);
    AssertTribo(37, 2082876103);
}
