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