xref: /llvm-project/libcxx/test/std/numerics/numarray/class.slice/slice.ops/slice.ops.pass.cpp (revision f877e88c354eacba1db81b82270ff8c27f000ea6)
1*f877e88cSHristo Hristov //===----------------------------------------------------------------------===//
2*f877e88cSHristo Hristov //
3*f877e88cSHristo Hristov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*f877e88cSHristo Hristov // See https://llvm.org/LICENSE.txt for license information.
5*f877e88cSHristo Hristov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*f877e88cSHristo Hristov //
7*f877e88cSHristo Hristov //===----------------------------------------------------------------------===//
8*f877e88cSHristo Hristov 
9*f877e88cSHristo Hristov // UNSUPPORTED: c++03, c++11, c++14, c++17
10*f877e88cSHristo Hristov 
11*f877e88cSHristo Hristov // <valarray>
12*f877e88cSHristo Hristov 
13*f877e88cSHristo Hristov // class slice;
14*f877e88cSHristo Hristov 
15*f877e88cSHristo Hristov // friend bool operator==(const slice& x, const slice& y);
16*f877e88cSHristo Hristov 
17*f877e88cSHristo Hristov #include <cassert>
18*f877e88cSHristo Hristov #include <valarray>
19*f877e88cSHristo Hristov 
20*f877e88cSHristo Hristov #include "test_comparisons.h"
21*f877e88cSHristo Hristov 
test()22*f877e88cSHristo Hristov void test() {
23*f877e88cSHristo Hristov   {
24*f877e88cSHristo Hristov     std::slice s1;
25*f877e88cSHristo Hristov     std::slice s2;
26*f877e88cSHristo Hristov 
27*f877e88cSHristo Hristov     assert(testEquality(s1, s2, true));
28*f877e88cSHristo Hristov   }
29*f877e88cSHristo Hristov   {
30*f877e88cSHristo Hristov     std::slice s1{1, 2, 3};
31*f877e88cSHristo Hristov     std::slice s2{1, 2, 3};
32*f877e88cSHristo Hristov 
33*f877e88cSHristo Hristov     assert(testEquality(s1, s2, true));
34*f877e88cSHristo Hristov   }
35*f877e88cSHristo Hristov   {
36*f877e88cSHristo Hristov     std::slice s1;
37*f877e88cSHristo Hristov     std::slice s2{1, 2, 3};
38*f877e88cSHristo Hristov 
39*f877e88cSHristo Hristov     assert(testEquality(s1, s2, false));
40*f877e88cSHristo Hristov   }
41*f877e88cSHristo Hristov   {
42*f877e88cSHristo Hristov     std::slice s1{0, 2, 3};
43*f877e88cSHristo Hristov     std::slice s2{1, 2, 3};
44*f877e88cSHristo Hristov 
45*f877e88cSHristo Hristov     assert(testEquality(s1, s2, false));
46*f877e88cSHristo Hristov   }
47*f877e88cSHristo Hristov   {
48*f877e88cSHristo Hristov     std::slice s1{1, 0, 3};
49*f877e88cSHristo Hristov     std::slice s2{1, 2, 3};
50*f877e88cSHristo Hristov 
51*f877e88cSHristo Hristov     assert(testEquality(s1, s2, false));
52*f877e88cSHristo Hristov   }
53*f877e88cSHristo Hristov   {
54*f877e88cSHristo Hristov     std::slice s1{1, 2, 0};
55*f877e88cSHristo Hristov     std::slice s2{1, 2, 3};
56*f877e88cSHristo Hristov 
57*f877e88cSHristo Hristov     assert(testEquality(s1, s2, false));
58*f877e88cSHristo Hristov   }
59*f877e88cSHristo Hristov }
60*f877e88cSHristo Hristov 
main(int,char **)61*f877e88cSHristo Hristov int main(int, char**) {
62*f877e88cSHristo Hristov   test();
63*f877e88cSHristo Hristov 
64*f877e88cSHristo Hristov   return 0;
65*f877e88cSHristo Hristov }
66