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// subtract_with_carry_engine& operator=(const subtract_with_carry_engine&); 16 17#include <random> 18#include <cassert> 19 20void 21test1() 22{ 23 typedef std::ranlux24_base 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 36void 37test2() 38{ 39 typedef std::ranlux48_base 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 52int main() 53{ 54 test1(); 55 test2(); 56} 57