• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2024 The PDFium Authors
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 "core/fxcrt/stl_util.h"
6 
7 #include <stdint.h>
8 
9 #include <array>
10 #include <vector>
11 
12 #include "core/fxcrt/span.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14 
TEST(fxcrt,FillCArray)15 TEST(fxcrt, FillCArray) {
16   uint32_t buf[4];
17   fxcrt::Fill(buf, 0x01020304u);
18   for (const auto b : buf) {
19     EXPECT_EQ(b, 0x01020304u);
20   }
21 }
22 
TEST(fxcrt,FillStdArray)23 TEST(fxcrt, FillStdArray) {
24   std::array<uint16_t, 10> buf;
25   fxcrt::Fill(buf, 0x0102u);
26   for (const auto b : buf) {
27     EXPECT_EQ(b, 0x0102u);
28   }
29 }
30 
TEST(fxcrt,FillStdVector)31 TEST(fxcrt, FillStdVector) {
32   std::vector<uint8_t> buf(15);
33   fxcrt::Fill(buf, 0x32u);
34   for (const auto b : buf) {
35     EXPECT_EQ(b, 0x32u);
36   }
37 }
38 
TEST(fxcrt,FillSpan)39 TEST(fxcrt, FillSpan) {
40   float buf[12];
41   auto buf_span = pdfium::make_span(buf);
42   fxcrt::Fill(buf_span, 123.0f);
43   for (const auto b : buf) {
44     EXPECT_EQ(b, 123.0f);
45   }
46 }
47 
TEST(fxcrt,CopyCArray)48 TEST(fxcrt, CopyCArray) {
49   uint32_t dst[4];
50   {
51     uint32_t buf[4];
52     fxcrt::Fill(buf, 0x01020304u);
53     fxcrt::Copy(buf, dst);
54   }
55   for (const auto b : dst) {
56     EXPECT_EQ(b, 0x01020304u);
57   }
58 }
59 
TEST(fxcrt,CopyStdArray)60 TEST(fxcrt, CopyStdArray) {
61   uint16_t dst[10];
62   {
63     std::array<uint16_t, 10> buf;
64     fxcrt::Fill(buf, 0x0102u);
65     fxcrt::Copy(buf, dst);
66   }
67   for (const auto b : dst) {
68     EXPECT_EQ(b, 0x0102u);
69   }
70 }
71 
TEST(fxcrt,CopyStdVector)72 TEST(fxcrt, CopyStdVector) {
73   uint8_t dst[15];
74   {
75     std::vector<uint8_t> buf(15);
76     fxcrt::Fill(buf, 0x32u);
77     fxcrt::Copy(buf, dst);
78   }
79   for (const auto b : dst) {
80     EXPECT_EQ(b, 0x32u);
81   }
82 }
83 
TEST(fxcrt,CopySpan)84 TEST(fxcrt, CopySpan) {
85   float dst[12];
86   {
87     float buf[12];
88     auto buf_span = pdfium::make_span(buf);
89     fxcrt::Fill(buf_span, 123.0f);
90     fxcrt::Copy(buf_span, dst);
91   }
92   for (const auto b : dst) {
93     EXPECT_EQ(b, 123.0f);
94   }
95 }
96