• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "gpu/config/gpu_util.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7 
8 namespace gpu {
9 
TEST(GpuUtilTest,MergeFeatureSets)10 TEST(GpuUtilTest, MergeFeatureSets) {
11   {
12     // Merge two empty sets.
13     std::set<int> src;
14     std::set<int> dst;
15     EXPECT_TRUE(dst.empty());
16     MergeFeatureSets(&dst, src);
17     EXPECT_TRUE(dst.empty());
18   }
19   {
20     // Merge an empty set into a set with elements.
21     std::set<int> src;
22     std::set<int> dst;
23     dst.insert(1);
24     EXPECT_EQ(1u, dst.size());
25     MergeFeatureSets(&dst, src);
26     EXPECT_EQ(1u, dst.size());
27   }
28   {
29     // Merge two sets where the source elements are already in the target set.
30     std::set<int> src;
31     std::set<int> dst;
32     src.insert(1);
33     dst.insert(1);
34     EXPECT_EQ(1u, dst.size());
35     MergeFeatureSets(&dst, src);
36     EXPECT_EQ(1u, dst.size());
37   }
38   {
39     // Merge two sets with different elements.
40     std::set<int> src;
41     std::set<int> dst;
42     src.insert(1);
43     dst.insert(2);
44     EXPECT_EQ(1u, dst.size());
45     MergeFeatureSets(&dst, src);
46     EXPECT_EQ(2u, dst.size());
47   }
48 }
49 
TEST(GpuUtilTest,StringToFeatureSet)50 TEST(GpuUtilTest, StringToFeatureSet) {
51   {
52     // zero feature.
53     std::set<int> features;
54     StringToFeatureSet("", &features);
55     EXPECT_EQ(0u, features.size());
56   }
57   {
58     // One features.
59     std::set<int> features;
60     StringToFeatureSet("4", &features);
61     EXPECT_EQ(1u, features.size());
62   }
63   {
64     // Multiple features.
65     std::set<int> features;
66     StringToFeatureSet("1,9", &features);
67     EXPECT_EQ(2u, features.size());
68   }
69 }
70 
71 }  // namespace gpu
72