//===----------------------------------------------------------------------===//
//
// 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 valarray;

// valarray& operator=(const indirect_array<value_type>& ia);

#include <valarray>
#include <cassert>

#include "test_macros.h"

int main(int, char**)
{
    int a[] = { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11,
               12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
               24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
               36, 37, 38, 39, 40};
    const std::size_t N1 = sizeof(a)/sizeof(a[0]);
    std::size_t s[] = { 3,  4,  5,  7,  8,  9, 11, 12, 13, 15, 16, 17,
                       22, 23, 24, 26, 27, 28, 30, 31, 32, 34, 35, 36};
    const std::size_t S = sizeof(s)/sizeof(s[0]);
    std::valarray<int> v1(a, N1);
    std::valarray<std::size_t> ia(s, S);
    std::valarray<int> v(24);
    v = v1[ia];
    assert(v.size() == 24);
    assert(v[ 0] ==  3);
    assert(v[ 1] ==  4);
    assert(v[ 2] ==  5);
    assert(v[ 3] ==  7);
    assert(v[ 4] ==  8);
    assert(v[ 5] ==  9);
    assert(v[ 6] == 11);
    assert(v[ 7] == 12);
    assert(v[ 8] == 13);
    assert(v[ 9] == 15);
    assert(v[10] == 16);
    assert(v[11] == 17);
    assert(v[12] == 22);
    assert(v[13] == 23);
    assert(v[14] == 24);
    assert(v[15] == 26);
    assert(v[16] == 27);
    assert(v[17] == 28);
    assert(v[18] == 30);
    assert(v[19] == 31);
    assert(v[20] == 32);
    assert(v[21] == 34);
    assert(v[22] == 35);
    assert(v[23] == 36);

  return 0;
}
