OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/metrics/field_trial.h" | 5 #include "base/metrics/field_trial.h" |
6 | 6 |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 EXPECT_EQ(trial1.get(), FieldTrialList::Find(name1)); | 105 EXPECT_EQ(trial1.get(), FieldTrialList::Find(name1)); |
106 EXPECT_EQ(trial2.get(), FieldTrialList::Find(name2)); | 106 EXPECT_EQ(trial2.get(), FieldTrialList::Find(name2)); |
107 // Note: FieldTrialList should delete the objects at shutdown. | 107 // Note: FieldTrialList should delete the objects at shutdown. |
108 } | 108 } |
109 | 109 |
110 TEST_F(FieldTrialTest, AbsoluteProbabilities) { | 110 TEST_F(FieldTrialTest, AbsoluteProbabilities) { |
111 char always_true[] = " always true"; | 111 char always_true[] = " always true"; |
112 char default_always_true[] = " default always true"; | 112 char default_always_true[] = " default always true"; |
113 char always_false[] = " always false"; | 113 char always_false[] = " always false"; |
114 char default_always_false[] = " default always false"; | 114 char default_always_false[] = " default always false"; |
115 for (int i = 1; i < 250; ++i) { | 115 for (char i = 1; i < 250; ++i) { |
116 // Try lots of names, by changing the first character of the name. | 116 // Try lots of names, by changing the first character of the name. |
117 always_true[0] = i; | 117 always_true[0] = i; |
118 default_always_true[0] = i; | 118 default_always_true[0] = i; |
119 always_false[0] = i; | 119 always_false[0] = i; |
120 default_always_false[0] = i; | 120 default_always_false[0] = i; |
121 | 121 |
122 scoped_refptr<FieldTrial> trial_true = | 122 scoped_refptr<FieldTrial> trial_true = |
123 CreateFieldTrial(always_true, 10, default_always_true, NULL); | 123 CreateFieldTrial(always_true, 10, default_always_true, NULL); |
124 const std::string winner = "TheWinner"; | 124 const std::string winner = "TheWinner"; |
125 int winner_group = trial_true->AppendGroup(winner, 10); | 125 int winner_group = trial_true->AppendGroup(winner, 10); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 } while ((!second_winner || !first_winner) && counter < 100); | 182 } while ((!second_winner || !first_winner) && counter < 100); |
183 EXPECT_TRUE(second_winner); | 183 EXPECT_TRUE(second_winner); |
184 EXPECT_TRUE(first_winner); | 184 EXPECT_TRUE(first_winner); |
185 } | 185 } |
186 | 186 |
187 TEST_F(FieldTrialTest, MiddleProbabilities) { | 187 TEST_F(FieldTrialTest, MiddleProbabilities) { |
188 char name[] = " same name"; | 188 char name[] = " same name"; |
189 char default_group_name[] = " default same name"; | 189 char default_group_name[] = " default same name"; |
190 bool false_event_seen = false; | 190 bool false_event_seen = false; |
191 bool true_event_seen = false; | 191 bool true_event_seen = false; |
192 for (int i = 1; i < 250; ++i) { | 192 for (char i = 1; i < 250; ++i) { |
193 name[0] = i; | 193 name[0] = i; |
194 default_group_name[0] = i; | 194 default_group_name[0] = i; |
195 scoped_refptr<FieldTrial> trial = | 195 scoped_refptr<FieldTrial> trial = |
196 CreateFieldTrial(name, 10, default_group_name, NULL); | 196 CreateFieldTrial(name, 10, default_group_name, NULL); |
197 int might_win = trial->AppendGroup("MightWin", 5); | 197 int might_win = trial->AppendGroup("MightWin", 5); |
198 | 198 |
199 if (trial->group() == might_win) { | 199 if (trial->group() == might_win) { |
200 true_event_seen = true; | 200 true_event_seen = true; |
201 } else { | 201 } else { |
202 false_event_seen = true; | 202 false_event_seen = true; |
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 EXPECT_TRUE(active_groups.empty()); | 984 EXPECT_TRUE(active_groups.empty()); |
985 | 985 |
986 // The trial shouldn't be listed in the |StatesToString()| result. | 986 // The trial shouldn't be listed in the |StatesToString()| result. |
987 std::string states; | 987 std::string states; |
988 FieldTrialList::StatesToString(&states); | 988 FieldTrialList::StatesToString(&states); |
989 EXPECT_TRUE(states.empty()); | 989 EXPECT_TRUE(states.empty()); |
990 } | 990 } |
991 } | 991 } |
992 | 992 |
993 } // namespace base | 993 } // namespace base |
OLD | NEW |