diff options
Diffstat (limited to 'third_party/immer/test/atom')
-rw-r--r-- | third_party/immer/test/atom/default.cpp | 12 | ||||
-rw-r--r-- | third_party/immer/test/atom/gc.cpp | 20 | ||||
-rw-r--r-- | third_party/immer/test/atom/generic.ipp | 53 |
3 files changed, 0 insertions, 85 deletions
diff --git a/third_party/immer/test/atom/default.cpp b/third_party/immer/test/atom/default.cpp deleted file mode 100644 index 7a382c70a85d..000000000000 --- a/third_party/immer/test/atom/default.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include <immer/atom.hpp> - -#define ATOM_T ::immer::atom -#include "generic.ipp" diff --git a/third_party/immer/test/atom/gc.cpp b/third_party/immer/test/atom/gc.cpp deleted file mode 100644 index f3219e81c601..000000000000 --- a/third_party/immer/test/atom/gc.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include <immer/atom.hpp> -#include <immer/heap/gc_heap.hpp> -#include <immer/refcount/no_refcount_policy.hpp> - -using gc_memory = immer::memory_policy<immer::heap_policy<immer::gc_heap>, - immer::no_refcount_policy>; - -template <typename T> -using test_atom_t = immer::atom<T, gc_memory>; - -#define ATOM_T test_atom_t -#include "generic.ipp" diff --git a/third_party/immer/test/atom/generic.ipp b/third_party/immer/test/atom/generic.ipp deleted file mode 100644 index 21ff74d7ef69..000000000000 --- a/third_party/immer/test/atom/generic.ipp +++ /dev/null @@ -1,53 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#ifndef ATOM_T -#error "define the box template to use in ATOM_T" -#endif - -#include <catch.hpp> - -template <typename T> -using BOX_T = typename ATOM_T<T>::box_type; - -TEST_CASE("construction") { ATOM_T<int> x; } - -TEST_CASE("store, load, exchange") -{ - ATOM_T<int> x; - CHECK(x.load() == BOX_T<int>{0}); - x.store(42); - CHECK(x.load() == BOX_T<int>{42}); - auto old = x.exchange(12); - CHECK(old == 42); - CHECK(x.load() == BOX_T<int>{12}); -} - -TEST_CASE("box conversion") -{ - ATOM_T<int> x; - auto v1 = BOX_T<int>{42}; - x = v1; - auto v2 = BOX_T<int>{x}; - CHECK(v1 == v2); -} - -TEST_CASE("value conversion") -{ - ATOM_T<int> x; - x = 42; - auto v = int{x}; - CHECK(v == 42); -} - -TEST_CASE("update") -{ - ATOM_T<int> x{42}; - x.update([](auto x) { return x + 2; }); - CHECK(x.load() == 44); -} |