Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: third_party/WebKit/Source/wtf/text/StringToNumberTest.cpp

Issue 2771783003: Move wtf_unittests to platform/wtf/. (Closed)
Patch Set: Rebase. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "wtf/text/StringToNumber.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include <cstring>
9
10 namespace WTF {
11
12 TEST(StringToNumberTest, TestCharactersToIntStrict) {
13 #define EXPECT_VALID(string, expectedValue, base) \
14 do { \
15 bool ok; \
16 int value = charactersToIntStrict(reinterpret_cast<const LChar*>(string), \
17 std::strlen(string), &ok, base); \
18 EXPECT_TRUE(ok); \
19 EXPECT_EQ(value, expectedValue); \
20 } while (false)
21
22 #define EXPECT_INVALID(string, base) \
23 do { \
24 bool ok; \
25 charactersToIntStrict(reinterpret_cast<const LChar*>(string), \
26 std::strlen(string), &ok, base); \
27 EXPECT_FALSE(ok); \
28 } while (false)
29
30 #define EXPECT_VALID_DECIMAL(string, expectedValue) \
31 EXPECT_VALID(string, expectedValue, 10)
32 #define EXPECT_INVALID_DECIMAL(string) EXPECT_INVALID(string, 10)
33 #define EXPECT_VALID_HEXADECIMAL(string, expectedValue) \
34 EXPECT_VALID(string, expectedValue, 16)
35 #define EXPECT_INVALID_HEXADECIMAL(string) EXPECT_INVALID(string, 16)
36
37 EXPECT_VALID_DECIMAL("1", 1);
38 EXPECT_VALID_DECIMAL("2", 2);
39 EXPECT_VALID_DECIMAL("9", 9);
40 EXPECT_VALID_DECIMAL("10", 10);
41 EXPECT_VALID_DECIMAL("0", 0);
42 EXPECT_VALID_DECIMAL("-0", 0);
43 EXPECT_VALID_DECIMAL("-1", -1);
44 EXPECT_VALID_DECIMAL("-2", -2);
45 EXPECT_VALID_DECIMAL("-9", -9);
46 EXPECT_VALID_DECIMAL("-10", -10);
47 EXPECT_VALID_DECIMAL("+0", 0);
48 EXPECT_VALID_DECIMAL("+1", 1);
49 EXPECT_VALID_DECIMAL("+2", 2);
50 EXPECT_VALID_DECIMAL("+9", 9);
51 EXPECT_VALID_DECIMAL("+10", 10);
52 EXPECT_VALID_DECIMAL("00", 0);
53 EXPECT_VALID_DECIMAL("+00", 0);
54 EXPECT_VALID_DECIMAL("-00", 0);
55 EXPECT_VALID_DECIMAL("01", 1);
56 EXPECT_VALID_DECIMAL("-01", -1);
57 EXPECT_VALID_DECIMAL("00000000000000000000", 0);
58 EXPECT_INVALID_DECIMAL("a");
59 EXPECT_INVALID_DECIMAL("1a");
60 EXPECT_INVALID_DECIMAL("a1");
61 EXPECT_INVALID_DECIMAL("-a");
62 EXPECT_INVALID_DECIMAL("");
63 EXPECT_INVALID_DECIMAL("-");
64 EXPECT_INVALID_DECIMAL("--1");
65 EXPECT_INVALID_DECIMAL("++1");
66 EXPECT_INVALID_DECIMAL("+-1");
67 EXPECT_INVALID_DECIMAL("-+1");
68 EXPECT_INVALID_DECIMAL("0-");
69 EXPECT_INVALID_DECIMAL("0+");
70
71 EXPECT_VALID_DECIMAL("2147483647", 2147483647);
72 EXPECT_VALID_DECIMAL("02147483647", 2147483647);
73 EXPECT_INVALID_DECIMAL("2147483648");
74 EXPECT_INVALID_DECIMAL("2147483649");
75 EXPECT_INVALID_DECIMAL("2147483650");
76 EXPECT_INVALID_DECIMAL("2147483700");
77 EXPECT_INVALID_DECIMAL("2147484000");
78 EXPECT_INVALID_DECIMAL("2200000000");
79 EXPECT_INVALID_DECIMAL("3000000000");
80 EXPECT_INVALID_DECIMAL("10000000000");
81 EXPECT_VALID_DECIMAL("-2147483647", -2147483647);
82 EXPECT_VALID_DECIMAL("-2147483648", -2147483647 - 1);
83 EXPECT_INVALID_DECIMAL("-2147483649");
84 EXPECT_INVALID_DECIMAL("-2147483650");
85 EXPECT_INVALID_DECIMAL("-2147483700");
86 EXPECT_INVALID_DECIMAL("-2147484000");
87 EXPECT_INVALID_DECIMAL("-2200000000");
88 EXPECT_INVALID_DECIMAL("-3000000000");
89 EXPECT_INVALID_DECIMAL("-10000000000");
90
91 EXPECT_VALID_HEXADECIMAL("1", 1);
92 EXPECT_VALID_HEXADECIMAL("a", 0xA);
93 EXPECT_VALID_HEXADECIMAL("A", 0xA);
94 EXPECT_VALID_HEXADECIMAL("+a", 0xA);
95 EXPECT_VALID_HEXADECIMAL("+A", 0xA);
96 EXPECT_VALID_HEXADECIMAL("-a", -0xA);
97 EXPECT_VALID_HEXADECIMAL("-A", -0xA);
98
99 EXPECT_VALID_HEXADECIMAL("7fffffff", 0x7FFFFFFF);
100 EXPECT_INVALID_HEXADECIMAL("80000000");
101 EXPECT_INVALID_HEXADECIMAL("8000000a");
102 EXPECT_INVALID_HEXADECIMAL("8000000f");
103 EXPECT_INVALID_HEXADECIMAL("90000000");
104 EXPECT_INVALID_HEXADECIMAL("fffffff0");
105 EXPECT_INVALID_HEXADECIMAL("ffffffff");
106 EXPECT_INVALID_HEXADECIMAL("100000000");
107 EXPECT_INVALID_HEXADECIMAL("7fffffff0");
108 EXPECT_VALID_HEXADECIMAL("-7fffffff", -0x7FFFFFFF);
109 EXPECT_VALID_HEXADECIMAL("-80000000", -0x7FFFFFFF - 1);
110 EXPECT_INVALID_HEXADECIMAL("-80000001");
111 EXPECT_INVALID_HEXADECIMAL("-8000000a");
112 EXPECT_INVALID_HEXADECIMAL("-8000000f");
113 EXPECT_INVALID_HEXADECIMAL("-80000010");
114 EXPECT_INVALID_HEXADECIMAL("-90000000");
115 EXPECT_INVALID_HEXADECIMAL("-f0000000");
116 EXPECT_INVALID_HEXADECIMAL("-fffffff0");
117 EXPECT_INVALID_HEXADECIMAL("-ffffffff");
118
119 #undef EXPECT_VALID_DECIMAL
120 #undef EXPECT_INVALID_DECIMAL
121 #undef EXPECT_VALID_HEXADECIMAL
122 #undef EXPECT_INVALID_HEXADECIMAL
123 #undef EXPECT_VALID
124 #undef EXPECT_INVALID
125 }
126 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/text/StringOperatorsTest.cpp ('k') | third_party/WebKit/Source/wtf/text/StringViewTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698