git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / contrib / pzstd / utils / test / RangeTest.cpp
CommitLineData
648db22b 1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 * All rights reserved.
4 *
5 * This source code is licensed under both the BSD-style license (found in the
6 * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7 * in the COPYING file in the root directory of this source tree).
8 */
9#include "utils/Range.h"
10
11#include <gtest/gtest.h>
12#include <string>
13
14using namespace pzstd;
15
16// Range is directly copied from folly.
17// Just some sanity tests to make sure everything seems to work.
18
19TEST(Range, Constructors) {
20 StringPiece empty;
21 EXPECT_TRUE(empty.empty());
22 EXPECT_EQ(0, empty.size());
23
24 std::string str = "hello";
25 {
26 Range<std::string::const_iterator> piece(str.begin(), str.end());
27 EXPECT_EQ(5, piece.size());
28 EXPECT_EQ('h', *piece.data());
29 EXPECT_EQ('o', *(piece.end() - 1));
30 }
31
32 {
33 StringPiece piece(str.data(), str.size());
34 EXPECT_EQ(5, piece.size());
35 EXPECT_EQ('h', *piece.data());
36 EXPECT_EQ('o', *(piece.end() - 1));
37 }
38
39 {
40 StringPiece piece(str);
41 EXPECT_EQ(5, piece.size());
42 EXPECT_EQ('h', *piece.data());
43 EXPECT_EQ('o', *(piece.end() - 1));
44 }
45
46 {
47 StringPiece piece(str.c_str());
48 EXPECT_EQ(5, piece.size());
49 EXPECT_EQ('h', *piece.data());
50 EXPECT_EQ('o', *(piece.end() - 1));
51 }
52}
53
54TEST(Range, Modifiers) {
55 StringPiece range("hello world");
56 ASSERT_EQ(11, range.size());
57
58 {
59 auto hello = range.subpiece(0, 5);
60 EXPECT_EQ(5, hello.size());
61 EXPECT_EQ('h', *hello.data());
62 EXPECT_EQ('o', *(hello.end() - 1));
63 }
64 {
65 auto hello = range;
66 hello.subtract(6);
67 EXPECT_EQ(5, hello.size());
68 EXPECT_EQ('h', *hello.data());
69 EXPECT_EQ('o', *(hello.end() - 1));
70 }
71 {
72 auto world = range;
73 world.advance(6);
74 EXPECT_EQ(5, world.size());
75 EXPECT_EQ('w', *world.data());
76 EXPECT_EQ('d', *(world.end() - 1));
77 }
78
79 std::string expected = "hello world";
80 EXPECT_EQ(expected, std::string(range.begin(), range.end()));
81 EXPECT_EQ(expected, std::string(range.data(), range.size()));
82}