| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 
|   3  * |   3  * | 
|   4  *  Use of this source code is governed by a BSD-style license |   4  *  Use of this source code is governed by a BSD-style license | 
|   5  *  that can be found in the LICENSE file in the root of the source |   5  *  that can be found in the LICENSE file in the root of the source | 
|   6  *  tree. An additional intellectual property rights grant can be found |   6  *  tree. An additional intellectual property rights grant can be found | 
|   7  *  in the file PATENTS.  All contributing project authors may |   7  *  in the file PATENTS.  All contributing project authors may | 
|   8  *  be found in the AUTHORS file in the root of the source tree. |   8  *  be found in the AUTHORS file in the root of the source tree. | 
|   9  */ |   9  */ | 
|  10 #include "webrtc/common.h" |  10 #include "webrtc/common.h" | 
|  11  |  11  | 
|  12 #include "testing/gtest/include/gtest/gtest.h" |  12 #include "testing/gtest/include/gtest/gtest.h" | 
|  13  |  13  | 
|  14 namespace webrtc { |  14 namespace webrtc { | 
|  15 namespace { |  15 namespace { | 
|  16  |  16  | 
|  17 struct MyExperiment { |  17 struct MyExperiment { | 
 |  18   static const ConfigOptionID identifier = ConfigOptionID::kMyExperimentForTest; | 
|  18   static const int kDefaultFactor; |  19   static const int kDefaultFactor; | 
|  19   static const int kDefaultOffset; |  20   static const int kDefaultOffset; | 
|  20  |  21  | 
|  21   MyExperiment() |  22   MyExperiment() | 
|  22     : factor(kDefaultFactor), offset(kDefaultOffset) {} |  23     : factor(kDefaultFactor), offset(kDefaultOffset) {} | 
|  23  |  24  | 
|  24   MyExperiment(int factor, int offset) |  25   MyExperiment(int factor, int offset) | 
|  25     : factor(factor), offset(offset) {} |  26     : factor(factor), offset(offset) {} | 
|  26  |  27  | 
|  27   int factor; |  28   int factor; | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|  49 TEST(Config, SetNullSetsTheOptionBackToDefault) { |  50 TEST(Config, SetNullSetsTheOptionBackToDefault) { | 
|  50   Config config; |  51   Config config; | 
|  51   config.Set<MyExperiment>(new MyExperiment(5, 1)); |  52   config.Set<MyExperiment>(new MyExperiment(5, 1)); | 
|  52   config.Set<MyExperiment>(NULL); |  53   config.Set<MyExperiment>(NULL); | 
|  53   const MyExperiment& my_exp = config.Get<MyExperiment>(); |  54   const MyExperiment& my_exp = config.Get<MyExperiment>(); | 
|  54   EXPECT_EQ(MyExperiment::kDefaultFactor, my_exp.factor); |  55   EXPECT_EQ(MyExperiment::kDefaultFactor, my_exp.factor); | 
|  55   EXPECT_EQ(MyExperiment::kDefaultOffset, my_exp.offset); |  56   EXPECT_EQ(MyExperiment::kDefaultOffset, my_exp.offset); | 
|  56 } |  57 } | 
|  57  |  58  | 
|  58 struct Algo1_CostFunction { |  59 struct Algo1_CostFunction { | 
 |  60   static const ConfigOptionID identifier = | 
 |  61       ConfigOptionID::kAlgo1CostFunctionForTest; | 
|  59   Algo1_CostFunction() {} |  62   Algo1_CostFunction() {} | 
|  60  |  63  | 
|  61   virtual int cost(int x) const { |  64   virtual int cost(int x) const { | 
|  62     return x; |  65     return x; | 
|  63   } |  66   } | 
|  64  |  67  | 
|  65   virtual ~Algo1_CostFunction() {} |  68   virtual ~Algo1_CostFunction() {} | 
|  66 }; |  69 }; | 
|  67  |  70  | 
|  68 struct SqrCost : Algo1_CostFunction { |  71 struct SqrCost : Algo1_CostFunction { | 
|  69   virtual int cost(int x) const { |  72   virtual int cost(int x) const { | 
|  70     return x*x; |  73     return x*x; | 
|  71   } |  74   } | 
|  72 }; |  75 }; | 
|  73  |  76  | 
|  74 TEST(Config, SupportsPolymorphism) { |  77 TEST(Config, SupportsPolymorphism) { | 
|  75   Config config; |  78   Config config; | 
|  76   config.Set<Algo1_CostFunction>(new SqrCost()); |  79   config.Set<Algo1_CostFunction>(new SqrCost()); | 
|  77   EXPECT_EQ(25, config.Get<Algo1_CostFunction>().cost(5)); |  80   EXPECT_EQ(25, config.Get<Algo1_CostFunction>().cost(5)); | 
|  78 } |  81 } | 
|  79 }  // namespace |  82 }  // namespace | 
|  80 }  // namespace webrtc |  83 }  // namespace webrtc | 
| OLD | NEW |