1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <random>
11
12// template<class UIntType, size_t w, size_t s, size_t r>
13// class subtract_with_carry_engine;
14
15// template<class Sseq> void seed(Sseq& q);
16
17#include <random>
18#include <cassert>
19
20void
21test1()
22{
23    unsigned a[] = {3, 5, 7};
24    std::seed_seq sseq(a, a+3);
25    std::ranlux24_base e1;
26    std::ranlux24_base e2(sseq);
27    assert(e1 != e2);
28    e1.seed(sseq);
29    assert(e1 == e2);
30}
31
32void
33test2()
34{
35    unsigned a[] = {3, 5, 7};
36    std::seed_seq sseq(a, a+3);
37    std::ranlux48_base e1;
38    std::ranlux48_base e2(sseq);
39    assert(e1 != e2);
40    e1.seed(sseq);
41    assert(e1 == e2);
42}
43
44int main()
45{
46    test1();
47    test2();
48}
49