• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 Engine, size_t p, size_t r>
13  // class discard_block_engine
14  
15  // discard_block_engine& operator=(const discard_block_engine&);
16  
17  #include <random>
18  #include <cassert>
19  
20  void
test1()21  test1()
22  {
23      typedef std::ranlux24 E;
24      E e1(2);
25      (void)e1();
26      E e2(5);
27      e2 = e1;
28      assert(e1 == e2);
29      assert(e1() == e2());
30      E::result_type k = e1();
31      assert(e1 != e2);
32      assert(e2() == k);
33      assert(e1 == e2);
34  }
35  
36  void
test2()37  test2()
38  {
39      typedef std::ranlux48 E;
40      E e1(3);
41      (void)e1();
42      E e2(5);
43      e2 = e1;
44      assert(e1 == e2);
45      assert(e1() == e2());
46      E::result_type k = e1();
47      assert(e1 != e2);
48      assert(e2() == k);
49      assert(e1 == e2);
50  }
51  
main()52  int main()
53  {
54      test1();
55      test2();
56  }
57