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// result_type operator()();
16
17#include <random>
18#include <cassert>
19
20void
21test1()
22{
23    std::ranlux24_base e;
24    assert(e() == 15039276u);
25    assert(e() == 16323925u);
26    assert(e() == 14283486u);
27}
28
29void
30test2()
31{
32    std::ranlux48_base e;
33    assert(e() == 23459059301164ull);
34    assert(e() == 28639057539807ull);
35    assert(e() == 276846226770426ull);
36}
37
38int main()
39{
40    test1();
41    test2();
42}
43