xref: /aosp_15_r20/frameworks/minikin/tests/unittest/SortedPackedVectorTest.cpp (revision 834a2baab5fdfc28e9a428ee87c7ea8f6a06a53d)
1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include <gtest/gtest.h>
18 
19 #include "minikin/SortedPackedVector.h"
20 
21 namespace minikin {
22 
TEST(SortedPackedVector,construct)23 TEST(SortedPackedVector, construct) {
24     {
25         auto sorted = SortedPackedVector({1, 2, 3, 4, 5});
26         EXPECT_EQ(5u, sorted.size());
27         EXPECT_EQ(1, sorted[0]);
28         EXPECT_EQ(2, sorted[1]);
29         EXPECT_EQ(3, sorted[2]);
30         EXPECT_EQ(4, sorted[3]);
31         EXPECT_EQ(5, sorted[4]);
32     }
33     {
34         auto sorted = SortedPackedVector({1, 2, 3, 4, 5}, true);
35         EXPECT_EQ(5u, sorted.size());
36         EXPECT_EQ(1, sorted[0]);
37         EXPECT_EQ(2, sorted[1]);
38         EXPECT_EQ(3, sorted[2]);
39         EXPECT_EQ(4, sorted[3]);
40         EXPECT_EQ(5, sorted[4]);
41     }
42     {
43         auto sorted = SortedPackedVector({2, 1, 4, 3, 5});
44         EXPECT_EQ(5u, sorted.size());
45         EXPECT_EQ(1, sorted[0]);
46         EXPECT_EQ(2, sorted[1]);
47         EXPECT_EQ(3, sorted[2]);
48         EXPECT_EQ(4, sorted[3]);
49         EXPECT_EQ(5, sorted[4]);
50     }
51     {
52         std::vector<int> vec = {2, 1, 4, 3, 5};
53         auto sorted = SortedPackedVector(vec);
54         EXPECT_EQ(5u, sorted.size());
55         EXPECT_EQ(1, sorted[0]);
56         EXPECT_EQ(2, sorted[1]);
57         EXPECT_EQ(3, sorted[2]);
58         EXPECT_EQ(4, sorted[3]);
59         EXPECT_EQ(5, sorted[4]);
60     }
61     {
62         auto sorted = SortedPackedVector({1, 2, 3, 4, 5});
63         auto copied = SortedPackedVector(sorted);
64         EXPECT_EQ(5u, copied.size());
65         EXPECT_EQ(1, copied[0]);
66         EXPECT_EQ(2, copied[1]);
67         EXPECT_EQ(3, copied[2]);
68         EXPECT_EQ(4, copied[3]);
69         EXPECT_EQ(5, copied[4]);
70     }
71     {
72         auto sorted = SortedPackedVector({1, 2, 3, 4, 5});
73         auto moved = SortedPackedVector(std::move(sorted));
74         EXPECT_EQ(5u, moved.size());
75         EXPECT_EQ(1, moved[0]);
76         EXPECT_EQ(2, moved[1]);
77         EXPECT_EQ(3, moved[2]);
78         EXPECT_EQ(4, moved[3]);
79         EXPECT_EQ(5, moved[4]);
80     }
81 }
82 
83 }  // namespace minikin
84