diff options
| author | Mingming Liu <mingmingl@google.com> | 2025-09-10 15:25:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-10 15:25:31 -0700 |
| commit | 1417dafa1db9cb1b2b09438aa9f53ea5ab6e36e2 (patch) | |
| tree | 57f4b1f313c8cf74eed8819870f39c36ea263c68 /libcxx/test/libcxx-03/numerics/numarray/class.slice.array | |
| parent | 898b813bc8a6d0276bf0f4769f5f2f64b34e632d (diff) | |
| parent | b8cefcb601ddaa18482555c4ff363c01a270c2fe (diff) | |
Merge branch 'main' into users/mingmingl-llvm/samplefdo-profile-formatusers/mingmingl-llvm/samplefdo-profile-format
Diffstat (limited to 'libcxx/test/libcxx-03/numerics/numarray/class.slice.array')
| -rw-r--r-- | libcxx/test/libcxx-03/numerics/numarray/class.slice.array/get.pass.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libcxx/test/libcxx-03/numerics/numarray/class.slice.array/get.pass.cpp b/libcxx/test/libcxx-03/numerics/numarray/class.slice.array/get.pass.cpp new file mode 100644 index 000000000000..26871f310bae --- /dev/null +++ b/libcxx/test/libcxx-03/numerics/numarray/class.slice.array/get.pass.cpp @@ -0,0 +1,46 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// <valarray> + +// template<class T> class slice_array; + +// T __get(size_t i); + +#include <valarray> +#include <cassert> + +#include "test_macros.h" + +int main(int, char**) { + unsigned input[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + const unsigned N = sizeof(input) / sizeof(input[0]); + + std::valarray<unsigned> array(input, N); + + { + std::slice_array<unsigned> result = array[std::slice(0, N, 1)]; + for (unsigned i = 0; i < N; ++i) + assert(result.__get(i) == i); + } + + { + std::slice_array<unsigned> result = array[std::slice(3, 2, 2)]; + assert(result.__get(0) == 3); + assert(result.__get(1) == 5); + } + + { + std::slice_array<unsigned> result = array[std::slice(1, 3, 4)]; + assert(result.__get(0) == 1); + assert(result.__get(1) == 5); + assert(result.__get(2) == 9); + } + + return 0; +} |
