/* * Copyright (c) 2024 - 2025 Ember * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include #include #include using namespace ember::spark::io::detail; TEST(BufferUtility, SrcDestOverlap_Start) { std::array buffer{}; ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), buffer.data(), buffer.size())); } TEST(BufferUtility, SrcDestOverlap_End) { std::array buffer{}; const auto end = buffer.data() + buffer.size(); ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), end - 1, 1)); } TEST(BufferUtility, SrcDestOverlap_BeyondEnd) { std::array buffer{}; const auto end = buffer.data() + buffer.size(); ASSERT_FALSE(region_overlap(buffer.data(), buffer.size(), end, 1)); } TEST(BufferUtility, SrcDestOverlap_Between) { std::array buffer{}; ASSERT_TRUE(region_overlap(buffer.data(), buffer.size(), buffer.data() + (buffer.size() - 5), 1)); } TEST(BufferUtility, SrcDestOverlap_NoOverlap) { std::array buffer{}, buffer2{}; ASSERT_FALSE(region_overlap(buffer.data(), buffer.size(), buffer2.data(), buffer2.size())); }