// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40284755): Remove this and spanify to fix the errors. #pragma allow_unsafe_buffers #endif #include "base/containers/flat_tree.h" // Following tests are ported and extended tests from libcpp for std::set. // They can be found here: // https://github.com/llvm/llvm-project/tree/main/libcxx/test/std/containers/associative/set // // Not ported tests: // * No tests with PrivateConstructor and std::less<> changed to std::less<T> // These tests have to do with C++14 std::less<> // http://en.cppreference.com/w/cpp/utility/functional/less_void // and add support for templated versions of lookup functions. // Because we use same implementation, we figured that it's OK just to check // compilation and this is what we do in flat_set_unittest/flat_map_unittest. // * No tests for max_size() // Has to do with allocator support. // * No tests with DefaultOnly. // Standard containers allocate each element in the separate node on the heap // and then manipulate these nodes. Flat containers store their elements in // contiguous memory and move them around, type is required to be movable. // * No tests for N3644. // This proposal suggests that all default constructed iterators compare // equal. Currently we use std::vector iterators and they don't implement // this. // * No tests with min_allocator and no tests counting allocations. // Flat sets currently don't support allocators. #include <deque> #include <forward_list> #include <functional> #include <iterator> #include <list> #include <string> #include <vector> #include "base/ranges/algorithm.h" #include "base/test/gtest_util.h" #include "base/test/move_only_int.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace base { internal // namespace internal } // namespace base