// This file is generated by mkfile.py // Date: 2026-06-25 #include #include #include #include #include class MyAtoiTest : public ::testing::Test { protected: void AssertMyAtoi(const std::string &input, int expected) { std::vector 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); }