mirror of
https://github.com/facebook/zstd.git
synced 2025-05-02 22:25:13 +03:00
``` for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora -o -path ./tests/regression/data-cache -o -path ./tests/regression/cache \) -prune -o -type f); do sed -i '/Copyright .* \(Yann Collet\)\|\(Meta Platforms\)/ s/Copyright .*/Copyright (c) Meta Platforms, Inc. and affiliates./' $f; done git checkout HEAD -- build/VS2010/libzstd-dll/libzstd-dll.rc build/VS2010/zstd/zstd.rc tests/test-license.py contrib/linux-kernel/test/include/linux/xxhash.h examples/streaming_compression_thread_pool.c lib/legacy/zstd_v0*.c lib/legacy/zstd_v0*.h nano ./programs/windres/zstd.rc nano ./build/VS2010/zstd/zstd.rc nano ./build/VS2010/libzstd-dll/libzstd-dll.rc ```
83 lines
2.0 KiB
C++
83 lines
2.0 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under both the BSD-style license (found in the
|
|
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
* in the COPYING file in the root directory of this source tree).
|
|
*/
|
|
#include "utils/Range.h"
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <string>
|
|
|
|
using namespace pzstd;
|
|
|
|
// Range is directly copied from folly.
|
|
// Just some sanity tests to make sure everything seems to work.
|
|
|
|
TEST(Range, Constructors) {
|
|
StringPiece empty;
|
|
EXPECT_TRUE(empty.empty());
|
|
EXPECT_EQ(0, empty.size());
|
|
|
|
std::string str = "hello";
|
|
{
|
|
Range<std::string::const_iterator> piece(str.begin(), str.end());
|
|
EXPECT_EQ(5, piece.size());
|
|
EXPECT_EQ('h', *piece.data());
|
|
EXPECT_EQ('o', *(piece.end() - 1));
|
|
}
|
|
|
|
{
|
|
StringPiece piece(str.data(), str.size());
|
|
EXPECT_EQ(5, piece.size());
|
|
EXPECT_EQ('h', *piece.data());
|
|
EXPECT_EQ('o', *(piece.end() - 1));
|
|
}
|
|
|
|
{
|
|
StringPiece piece(str);
|
|
EXPECT_EQ(5, piece.size());
|
|
EXPECT_EQ('h', *piece.data());
|
|
EXPECT_EQ('o', *(piece.end() - 1));
|
|
}
|
|
|
|
{
|
|
StringPiece piece(str.c_str());
|
|
EXPECT_EQ(5, piece.size());
|
|
EXPECT_EQ('h', *piece.data());
|
|
EXPECT_EQ('o', *(piece.end() - 1));
|
|
}
|
|
}
|
|
|
|
TEST(Range, Modifiers) {
|
|
StringPiece range("hello world");
|
|
ASSERT_EQ(11, range.size());
|
|
|
|
{
|
|
auto hello = range.subpiece(0, 5);
|
|
EXPECT_EQ(5, hello.size());
|
|
EXPECT_EQ('h', *hello.data());
|
|
EXPECT_EQ('o', *(hello.end() - 1));
|
|
}
|
|
{
|
|
auto hello = range;
|
|
hello.subtract(6);
|
|
EXPECT_EQ(5, hello.size());
|
|
EXPECT_EQ('h', *hello.data());
|
|
EXPECT_EQ('o', *(hello.end() - 1));
|
|
}
|
|
{
|
|
auto world = range;
|
|
world.advance(6);
|
|
EXPECT_EQ(5, world.size());
|
|
EXPECT_EQ('w', *world.data());
|
|
EXPECT_EQ('d', *(world.end() - 1));
|
|
}
|
|
|
|
std::string expected = "hello world";
|
|
EXPECT_EQ(expected, std::string(range.begin(), range.end()));
|
|
EXPECT_EQ(expected, std::string(range.data(), range.size()));
|
|
}
|