1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // template <class UIntType, UIntType a, UIntType c, UIntType m>
12 // class linear_congruential_engine;
14 // linear_congruential_engine(const linear_congruential_engine&);
19 #include "test_macros.h"
21 template <class T
, T a
, T c
, T m
>
25 typedef std::linear_congruential_engine
<T
, a
, c
, m
> E
;
41 const T
M(static_cast<T
>(-1));
43 test1
<T
, 0, M
-2, M
>();
44 test1
<T
, 0, M
-1, M
>();
45 test1
<T
, M
-2, 0, M
>();
46 test1
<T
, M
-2, M
-2, M
>();
47 test1
<T
, M
-2, M
-1, M
>();
48 test1
<T
, M
-1, 0, M
>();
49 test1
<T
, M
-1, M
-2, M
>();
50 test1
<T
, M
-1, M
-1, M
>();
55 test
<unsigned short>();
57 test
<unsigned long>();
58 test
<unsigned long long>();