blob: 3f467cf8b14b546e60d7267ed4ec451a557b2dd2 [file] [log] [blame]
#include <stdint.h>
#include <string>
#include "gtest/gtest.h"
#include "aos/util/string_to_num.h"
namespace aos {
namespace util {
namespace testing {
TEST(StringToNumTest, CorrectNumber) {
int result;
ASSERT_TRUE(StringToNumber<int>(::std::string("42"), &result));
EXPECT_EQ(result, 42);
}
TEST(StringToNumTest, NegativeTest) {
int result;
ASSERT_TRUE(StringToNumber<int>(::std::string("-42"), &result));
EXPECT_EQ(result, -42);
}
TEST(StringToNumTest, NonNumber) {
int result;
ASSERT_FALSE(StringToNumber<int>(::std::string("Daniel"), &result));
}
TEST(StringToNumTest, NumberWithText) {
int result;
ASSERT_FALSE(StringToNumber<int>(::std::string("42Daniel"), &result));
}
TEST(StringToNumTest, OverflowTest) {
uint32_t result;
// 2 << 32 should overflow.
ASSERT_FALSE(StringToNumber<uint32_t>(::std::string("4294967296"), &result));
}
TEST(StringToNumTest, FloatingPointTest) {
double result;
ASSERT_TRUE(StringToNumber<double>(::std::string("3.1415927"), &result));
EXPECT_EQ(result, 3.1415927);
}
} // testing
} // util
} // aos