diff options
Diffstat (limited to 'xfa/fxfa/parser/cxfa_localevalue_unittest.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_localevalue_unittest.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp b/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp new file mode 100644 index 0000000000..5b97eb3785 --- /dev/null +++ b/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp @@ -0,0 +1,37 @@ +// Copyright 2018 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "xfa/fxfa/parser/cxfa_localevalue.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" + +namespace { + +// We don't expect more precision than a float's worth from this code. +float MakeDoubleNumAsFloat(const wchar_t* str) { + return static_cast<float>( + CXFA_LocaleValue(XFA_VT_FLOAT, str, nullptr).GetDoubleNum()); +} + +} // namespace + +TEST(CXFALocaleValueTest, GetDoubleNum) { + EXPECT_EQ(0.0, MakeDoubleNumAsFloat(L"")); + EXPECT_EQ(0.0, MakeDoubleNumAsFloat(L"0")); + EXPECT_EQ(0.0, MakeDoubleNumAsFloat(L"0.")); + EXPECT_EQ(0.0, MakeDoubleNumAsFloat(L"0.0")); + EXPECT_EQ(0.0, MakeDoubleNumAsFloat(L"0.x")); + EXPECT_EQ(7.0, MakeDoubleNumAsFloat(L"7.x")); + EXPECT_FLOAT_EQ(0.54321f, MakeDoubleNumAsFloat(L".54321")); + EXPECT_FLOAT_EQ(0.54321f, MakeDoubleNumAsFloat(L"0.54321")); + EXPECT_FLOAT_EQ(0.54321f, MakeDoubleNumAsFloat(L"+0.54321")); + EXPECT_FLOAT_EQ(0.54321f, MakeDoubleNumAsFloat(L" +0.54321")); + EXPECT_FLOAT_EQ(-0.54321f, MakeDoubleNumAsFloat(L"-.54321")); + EXPECT_FLOAT_EQ(-0.54321f, MakeDoubleNumAsFloat(L"-0.54321")); + EXPECT_FLOAT_EQ(-0.54321f, MakeDoubleNumAsFloat(L" -0.54321")); + EXPECT_FLOAT_EQ(-0.054321f, MakeDoubleNumAsFloat(L"-0.54321e-1")); + EXPECT_FLOAT_EQ(-0.54321f, MakeDoubleNumAsFloat(L"-0.54321e0")); + EXPECT_FLOAT_EQ(-5.4321f, MakeDoubleNumAsFloat(L"-0.54321e1")); +} |