]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / ext / random / simd_fast_mersenne_twister_engine / operators / serialize.cc
CommitLineData
6112b14e 1// { dg-options "-std=gnu++11" }
dcfbfb22 2// { dg-require-cstdint "" }
011ea24c 3// { dg-require-little-endian "" }
dcfbfb22 4//
5// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
6// 2012-08-28 Ulrich Drepper <drepper@gmail.com>, adapted for SFMT
7//
f1717362 8// Copyright (C) 2008-2016 Free Software Foundation, Inc.
dcfbfb22 9//
10// This file is part of the GNU ISO C++ Library. This library is free
11// software; you can redistribute it and/or modify it under the
12// terms of the GNU General Public License as published by the
13// Free Software Foundation; either version 3, or (at your option)
14// any later version.
15//
16// This library is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License along
22// with this library; see the file COPYING3. If not see
23// <http://www.gnu.org/licenses/>.
24
25// 26.4.3.2 Class template mersenne_twister_engine [rand.eng.mers]
26// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
27
28#include <sstream>
29#include <ext/random>
30#include <testsuite_hooks.h>
31
32void
33test01()
34{
35 bool test __attribute__((unused)) = true;
36
37 std::stringstream str;
38 __gnu_cxx::sfmt19937 u, v;
39
40 u(); // advance
41 str << u;
42
43 VERIFY( !(u == v) );
44
45 str >> v;
46 VERIFY( u == v );
47 for (unsigned i = 0; i < 1000; ++i)
48 VERIFY( u() == v() );
49
50 str.clear();
51 str << v;
52
53 u();
54 u();
55 u();
56
57 str >> u;
58 VERIFY( u == v );
59 for (unsigned i = 0; i < 1000; ++i)
60 VERIFY( u() == v() );
61}
62
63int main()
64{
65 test01();
66 return 0;
67}