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 21 test1() 22 { 23 typedef std::ranlux24 E; 24 E e1(2); 25 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 37 test2() 38 { 39 typedef std::ranlux48 E; 40 E e1(3); 41 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 52 int main() 53 { 54 test1(); 55 test2(); 56 } 57