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

Side by Side Diff: chrome/common/string_ordinal_unittest.cc

Issue 8236002: Create StringOrdinal to allow placement of strings in sorted lists (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Changing StringIndex to StringOrdinal and making code review changes. Created 9 years, 2 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 "chrome/common/string_ordinal.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7
8 TEST(StringOrdinalTest, IsValid) {
tfarina 2011/10/18 17:10:54 please, could you wrap this into an unnamed namesp
9 StringOrdinal index_ = StringOrdinal("b");
tfarina 2011/10/18 17:10:54 index_ -> index Also can't you create the index o
10 EXPECT_TRUE(index_.IsValid());
akalin 2011/10/18 17:59:27 you can just do EXPECT_TRUE(StringOrdinal(...).IsV
11
12 index_ = StringOrdinal("ab");
13 EXPECT_TRUE(index_.IsValid());
14
15 index_ = StringOrdinal("aa");
16 EXPECT_FALSE(index_.IsValid());
17
18 index_ = StringOrdinal();
19 EXPECT_FALSE(index_.IsValid());
20 }
21
22 TEST(StringOrdinalTest, LessThan) {
23 StringOrdinal small = StringOrdinal("b");
akalin 2011/10/18 17:59:27 const StringOrdinal small(...); etc.
24 StringOrdinal middle = StringOrdinal("n");
25 StringOrdinal big = StringOrdinal("z");
26
27 EXPECT_TRUE(small.LessThan(middle));
28 EXPECT_TRUE(small.LessThan(big));
29 EXPECT_TRUE(middle.LessThan(big));
30
31 EXPECT_FALSE(big.LessThan(small));
32 EXPECT_FALSE(big.LessThan(middle));
33 EXPECT_FALSE(middle.LessThan(small));
34 }
35
36 TEST(StringOrdinalTest, CreateBetweenSingleDigit) {
37 StringOrdinal result = StringOrdinal("b").CreateBetween(StringOrdinal("d"));
38 EXPECT_EQ("c", result.ToString());
39
40 result = StringOrdinal("b").CreateBetween(StringOrdinal("e"));
41 EXPECT_EQ("c", result.ToString());
42
43 result = StringOrdinal("b").CreateBetween(StringOrdinal("f"));
44 EXPECT_EQ("d", result.ToString());
45
46 result = StringOrdinal("b").CreateBetween(StringOrdinal("c"));
47 EXPECT_EQ("bn", result.ToString());
48
akalin 2011/10/18 17:59:27 make sure to test the other direction, too
49 result = StringOrdinal("c").CreateBetween(StringOrdinal("d"));
50 EXPECT_EQ("cn", result.ToString());
51 }
52
53 TEST(StringOrdinalTest, CreateBetweenDifferentLengths) {
54 StringOrdinal result = StringOrdinal("b").CreateBetween(StringOrdinal("bb"));
55 EXPECT_EQ("ban", result.ToString());
56
57 result = StringOrdinal("bz").CreateBetween(StringOrdinal("c"));
58 EXPECT_EQ("bzn", result.ToString());
59 }
60
61 TEST(StringOrdinalTest, CreateBetweenOverflow) {
62 StringOrdinal result = StringOrdinal("ab").CreateBetween(StringOrdinal("bb"));
63 EXPECT_EQ("ao", result.ToString());
64
65 result = StringOrdinal("bb").CreateBetween(StringOrdinal("cb"));
66 EXPECT_EQ("bo", result.ToString());
67
68 result = StringOrdinal("bbb").CreateBetween(StringOrdinal("bcb"));
69 EXPECT_EQ("bbo", result.ToString());
70
71 result = StringOrdinal("aab").CreateBetween(StringOrdinal("zzz"));
72 EXPECT_EQ("n", result.ToString());
73
74 result = StringOrdinal("yyy").CreateBetween(StringOrdinal("zzz"));
75 EXPECT_EQ("zml", result.ToString());
76
77 result = StringOrdinal("yab").CreateBetween(StringOrdinal("zzz"));
78 EXPECT_EQ("z", result.ToString());
79
80 result = StringOrdinal("aaz").CreateBetween(StringOrdinal("zzz"));
81 EXPECT_EQ("nam", result.ToString());
82 }
83
84 TEST(StringOrdinalTest, CreateAfter) {
85 StringOrdinal result = StringOrdinal("y").CreateAfter();
86 EXPECT_EQ("yn", result.ToString());
87
88 result = StringOrdinal("zy").CreateAfter();
89 EXPECT_EQ("zyn", result.ToString());
90
91 result = StringOrdinal("zzzy").CreateAfter();
92 EXPECT_EQ("zzzyn", result.ToString());
93
94 result = StringOrdinal("yy").CreateAfter();
95 EXPECT_EQ("zl", result.ToString());
96
97 result = StringOrdinal("yz").CreateAfter();
98 EXPECT_EQ("zm", result.ToString());
99
100 result = StringOrdinal("z").CreateAfter();
101 EXPECT_EQ("zm", result.ToString());
102 }
103
104 TEST(StringOrdinalTest, CreateBefore) {
105 StringOrdinal result = StringOrdinal("b").CreateBefore();
106 EXPECT_EQ("an", result.ToString());
107
108 result = StringOrdinal("bb").CreateBefore();
109 EXPECT_EQ("ao", result.ToString());
110
111 result = StringOrdinal("bc").CreateBefore();
112 EXPECT_EQ("ao", result.ToString());
113
114 result = StringOrdinal("bd").CreateBefore();
115 EXPECT_EQ("ap", result.ToString());
116 }
117
118 TEST(StringOrdinalTest, ToString) {
119 StringOrdinal index = StringOrdinal("b");
120 EXPECT_EQ(index.ToString(), "b");
121
122 index = StringOrdinal("aab");
123 EXPECT_EQ(index.ToString(), "aab");
124
125 index = StringOrdinal("zzz");
126 EXPECT_EQ(index.ToString(), "zzz");
127 }
128
129 TEST(StringOrdinalTest, CrateBetweenLargeValueFirst) {
akalin 2011/10/18 17:59:27 Crate -> Create
130 StringOrdinal result = StringOrdinal("d").CreateBetween(StringOrdinal("b"));
131 EXPECT_EQ("c", result.ToString());
132
133 result = StringOrdinal("zzz").CreateBetween(StringOrdinal("aaz"));
akalin 2011/10/18 17:59:27 indent
134 EXPECT_EQ("nam", result.ToString());
135 }
OLDNEW
« chrome/common/string_ordinal.cc ('K') | « chrome/common/string_ordinal.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698