diff options
Diffstat (limited to 'libcxx/test/numerics/numarray/valarray.range')
4 files changed, 124 insertions, 0 deletions
diff --git a/libcxx/test/numerics/numarray/valarray.range/begin_const.pass.cpp b/libcxx/test/numerics/numarray/valarray.range/begin_const.pass.cpp new file mode 100644 index 00000000000..5d52624f65a --- /dev/null +++ b/libcxx/test/numerics/numarray/valarray.range/begin_const.pass.cpp @@ -0,0 +1,30 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <valarray> + +// template<class T> class valarray; + +// template <class T> +// unspecified1 +// begin(const valarray<T>& v); + +#include <valarray> +#include <cassert> + +int main() +{ + { + typedef int T; + T a[] = {1, 2, 3, 4, 5}; + const unsigned N = sizeof(a)/sizeof(a[0]); + const std::valarray<T> v(a, N); + assert(v[0] == 1); + } +} diff --git a/libcxx/test/numerics/numarray/valarray.range/begin_non_const.pass.cpp b/libcxx/test/numerics/numarray/valarray.range/begin_non_const.pass.cpp new file mode 100644 index 00000000000..aa68fc57b39 --- /dev/null +++ b/libcxx/test/numerics/numarray/valarray.range/begin_non_const.pass.cpp @@ -0,0 +1,31 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <valarray> + +// template<class T> class valarray; + +// template <class T> +// unspecified1 +// begin(valarray<T>& v); + +#include <valarray> +#include <cassert> + +int main() +{ + { + typedef int T; + T a[] = {1, 2, 3, 4, 5}; + const unsigned N = sizeof(a)/sizeof(a[0]); + std::valarray<T> v(a, N); + *begin(v) = 10; + assert(v[0] == 10); + } +} diff --git a/libcxx/test/numerics/numarray/valarray.range/end_const.pass.cpp b/libcxx/test/numerics/numarray/valarray.range/end_const.pass.cpp new file mode 100644 index 00000000000..f7062f701f6 --- /dev/null +++ b/libcxx/test/numerics/numarray/valarray.range/end_const.pass.cpp @@ -0,0 +1,31 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <valarray> + +// template<class T> class valarray; + +// template <class T> +// unspecified1 +// end(const valarray<T>& v); + +#include <valarray> +#include <cassert> + +int main() +{ + { + typedef int T; + T a[] = {1, 2, 3, 4, 5}; + const unsigned N = sizeof(a)/sizeof(a[0]); + const std::valarray<T> v(a, N); + assert(v[v.size()-1] == 5); + assert(end(v) - begin(v) == v.size()); + } +} diff --git a/libcxx/test/numerics/numarray/valarray.range/end_non_const.pass.cpp b/libcxx/test/numerics/numarray/valarray.range/end_non_const.pass.cpp new file mode 100644 index 00000000000..38597d7396e --- /dev/null +++ b/libcxx/test/numerics/numarray/valarray.range/end_non_const.pass.cpp @@ -0,0 +1,32 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <valarray> + +// template<class T> class valarray; + +// template <class T> +// unspecified1 +// end(valarray<T>& v); + +#include <valarray> +#include <cassert> + +int main() +{ + { + typedef int T; + T a[] = {1, 2, 3, 4, 5}; + const unsigned N = sizeof(a)/sizeof(a[0]); + std::valarray<T> v(a, N); + *(end(v) - 1) = 10; + assert(v[v.size()-1] == 10); + assert(end(v) - begin(v) == v.size()); + } +} |