| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //
- // cast_test.cxx
- // string_utils-test
- //
- // Created by Sam Jaffe on 2/14/21.
- // Copyright © 2021 Sam Jaffe. All rights reserved.
- //
- #include "string_utils/cast.h"
- #include "xcode_gtest_helper.h"
- using testing::Pair;
- using namespace string_utils;
- TEST(CastIntegerTest, CastsWithBase10) {
- auto [value, success] = cast<int>("10");
- EXPECT_TRUE(success);
- EXPECT_THAT(value, 10);
- }
- TEST(CastIntegerTest, DoesNotCastBase8) {
- auto [value, success] = cast<int>("010");
- EXPECT_TRUE(success);
- EXPECT_THAT(value, 10);
- }
- TEST(CastIntegerTest, DoesNotCastHex) {
- auto [value, success] = cast<int>("0x10");
- EXPECT_FALSE(success);
- EXPECT_THAT(value, 0);
- }
- TEST(CastIntegerTest, FailsOnBadData) {
- auto [value, success] = cast<int>("x");
- EXPECT_FALSE(success);
- EXPECT_THAT(value, 0);
- }
- TEST(CastIntegerTest, FailsOnBadSuffix) {
- auto [value, success] = cast<int>("10x");
- EXPECT_FALSE(success);
- EXPECT_THAT(value, 10);
- }
- TEST(CastIntegerTest, FailsOnOutOfBounds) {
- auto [_, success] = cast<int>("2147483648");
- EXPECT_FALSE(success);
- }
- TEST(CastBooleanTest, CastsVariousTrueValues) {
- EXPECT_THAT(cast<bool>("true"), Pair(true, true));
- EXPECT_THAT(cast<bool>("TRUE"), Pair(true, true));
- EXPECT_THAT(cast<bool>("YES"), Pair(true, true));
- EXPECT_THAT(cast<bool>("1"), Pair(true, true));
- }
- TEST(CastBooleanTest, CastsVariousFalseValues) {
- EXPECT_THAT(cast<bool>("false"), Pair(false, true));
- EXPECT_THAT(cast<bool>("FALSE"), Pair(false, true));
- EXPECT_THAT(cast<bool>("NO"), Pair(false, true));
- EXPECT_THAT(cast<bool>("0"), Pair(false, true));
- }
- TEST(CastBooleanTest, DoesNotCastAllIntegers) {
- auto [_, success] = cast<bool>("2");
- EXPECT_FALSE(success);
- }
|