8
Gitea CTest Workflow / test (push) Waiting to run

This commit is contained in:
2026-06-25 14:21:11 +08:00
parent 7d45cb5978
commit 5f803ed09f
3 changed files with 159 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
// This file is generated by mkfile.py
// Date: 2026-06-25
#include <gtest/gtest.h>
#include <solution/8.h>
#include <climits>
#include <string>
#include <vector>
class MyAtoiTest : public ::testing::Test
{
protected:
void AssertMyAtoi(const std::string &input, int expected)
{
std::vector<char> buffer(input.begin(), input.end());
buffer.push_back('\0');
EXPECT_EQ(myAtoi(buffer.data()), expected);
}
};
TEST_F(MyAtoiTest, Example1)
{
AssertMyAtoi("42", 42);
}
TEST_F(MyAtoiTest, Example2)
{
AssertMyAtoi(" -42", -42);
}
TEST_F(MyAtoiTest, Example3)
{
AssertMyAtoi("4193 with words", 4193);
}
TEST_F(MyAtoiTest, ReturnsZeroWhenStringStartsWithNonDigit)
{
AssertMyAtoi("words and 987", 0);
}
TEST_F(MyAtoiTest, ReadsOptionalPlusSign)
{
AssertMyAtoi("+1", 1);
}
TEST_F(MyAtoiTest, RejectsMultipleOrSeparatedSigns)
{
AssertMyAtoi("+-12", 0);
AssertMyAtoi("-+12", 0);
AssertMyAtoi(" + 413", 0);
}
TEST_F(MyAtoiTest, StopsAtFirstNonDigitAfterReadingDigits)
{
AssertMyAtoi("3.14159", 3);
AssertMyAtoi("00000-42a1234", 0);
AssertMyAtoi(" +0 123", 0);
}
TEST_F(MyAtoiTest, HandlesEmptyAndSignOnlyStrings)
{
AssertMyAtoi("", 0);
AssertMyAtoi(" ", 0);
AssertMyAtoi("+", 0);
AssertMyAtoi("-", 0);
}
TEST_F(MyAtoiTest, ClampsPositiveOverflow)
{
AssertMyAtoi("2147483647", INT_MAX);
AssertMyAtoi("2147483648", INT_MAX);
AssertMyAtoi("91283472332", INT_MAX);
}
TEST_F(MyAtoiTest, ClampsNegativeOverflow)
{
AssertMyAtoi("-2147483648", INT_MIN);
AssertMyAtoi("-2147483649", INT_MIN);
AssertMyAtoi("-91283472332", INT_MIN);
}
TEST_F(MyAtoiTest, IgnoresLeadingZerosBeforeValidDigits)
{
AssertMyAtoi(" 0000000000012345678", 12345678);
}