Lines Matching refs:fn
437 void TestSingleWcsToInt(WcsToIntFn<T> fn, const wchar_t* str, int base,
440 ASSERT_EQ(expected_value, fn(str, &p, base));
445 void TestWcsToInt(WcsToIntFn<T> fn) {
446 TestSingleWcsToInt(fn, L"123", 10, static_cast<T>(123), 3);
447 TestSingleWcsToInt(fn, L"123", 0, static_cast<T>(123), 3);
448 TestSingleWcsToInt(fn, L"123#", 10, static_cast<T>(123), 3);
449 TestSingleWcsToInt(fn, L"01000", 8, static_cast<T>(512), 5);
450 TestSingleWcsToInt(fn, L"01000", 0, static_cast<T>(512), 5);
451 TestSingleWcsToInt(fn, L" 123 45", 0, static_cast<T>(123), 6);
452 TestSingleWcsToInt(fn, L" -123", 0, static_cast<T>(-123), 6);
453 TestSingleWcsToInt(fn, L"0x10000", 0, static_cast<T>(65536), 7);
457 void TestWcsToIntLimits(WcsToIntFn<T> fn, const wchar_t* min_str,
460 ASSERT_EQ(std::numeric_limits<T>::min(), fn(min_str, nullptr, 0)) << min_str;
465 ASSERT_EQ(std::numeric_limits<T>::max(), fn(min_str, nullptr, 0)) << min_str;
467 ASSERT_EQ(std::numeric_limits<T>::max(), fn(max_str, nullptr, 0)) << max_str;
801 void TestSingleWcsToFloat(WcsToFloatFn<T> fn, const wchar_t* str,
804 ASSERT_EQ(expected_value, fn(str, &p));
809 void TestWcsToFloat(WcsToFloatFn<T> fn) {
810 TestSingleWcsToFloat(fn, L"123", static_cast<T>(123.0L), 3);
811 TestSingleWcsToFloat(fn, L"123#", static_cast<T>(123.0L), 3);
812 TestSingleWcsToFloat(fn, L" 123 45", static_cast<T>(123.0L), 6);
813 TestSingleWcsToFloat(fn, L"9.0", static_cast<T>(9.0L), 3);
814 TestSingleWcsToFloat(fn, L"-9.0", static_cast<T>(-9.0L), 4);
815 TestSingleWcsToFloat(fn, L" \t\v\f\r\n9.0", static_cast<T>(9.0L), 9);
819 void TestWcsToFloatHexFloats(WcsToFloatFn<T> fn) {
820 TestSingleWcsToFloat(fn, L"0.9e1", static_cast<T>(9.0L), 5);
821 TestSingleWcsToFloat(fn, L"0x1.2p3", static_cast<T>(9.0L), 7);
822 TestSingleWcsToFloat(fn, L"+1e+100", static_cast<T>(1e100L), 7);
823 TestSingleWcsToFloat(fn, L"0x10000.80", static_cast<T>(65536.50L), 10);
827 void TestWcsToFloatInfNan(WcsToFloatFn<T> fn) {
828 ASSERT_TRUE(isnan(fn(L"+nan", nullptr)));
829 ASSERT_TRUE(isnan(fn(L"nan", nullptr)));
830 ASSERT_TRUE(isnan(fn(L"-nan", nullptr)));
832 ASSERT_TRUE(isnan(fn(L"+nan(0xff)", nullptr)));
833 ASSERT_TRUE(isnan(fn(L"nan(0xff)", nullptr)));
834 ASSERT_TRUE(isnan(fn(L"-nan(0xff)", nullptr)));
837 ASSERT_TRUE(isnan(fn(L"+nanny", &p)));
839 ASSERT_TRUE(isnan(fn(L"nanny", &p)));
841 ASSERT_TRUE(isnan(fn(L"-nanny", &p)));
844 ASSERT_EQ(0, fn(L"muppet", &p));
846 ASSERT_EQ(0, fn(L" muppet", &p));
849 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"+inf", nullptr));
850 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"inf", nullptr));
851 ASSERT_EQ(-std::numeric_limits<T>::infinity(), fn(L"-inf", nullptr));
853 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"+infinity", nullptr));
854 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"infinity", nullptr));
855 ASSERT_EQ(-std::numeric_limits<T>::infinity(), fn(L"-infinity", nullptr));
857 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"+infinitude", &p));
859 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"infinitude", &p));
861 ASSERT_EQ(-std::numeric_limits<T>::infinity(), fn(L"-infinitude", &p));
865 ASSERT_EQ(std::numeric_limits<T>::infinity(), fn(L"InFiNiTy", nullptr));
866 ASSERT_TRUE(isnan(fn(L"NaN", nullptr)));