===================================================================
@@ -471,9 +471,9 @@
__os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left);
__os.fill(__space);
- for (size_t __i = 0; __i < __n - 1; ++__i)
+ for (size_t __i = 0; __i < __n; ++__i)
__os << __x._M_x[__i] << __space;
- __os << __x._M_x[__n - 1];
+ __os << __x._M_p;
__os.flags(__flags);
__os.fill(__fill);
@@ -498,6 +498,7 @@
for (size_t __i = 0; __i < __n; ++__i)
__is >> __x._M_x[__i];
+ __is >> __x._M_p;
__is.flags(__flags);
return __is;
@@ -627,7 +628,7 @@
for (size_t __i = 0; __i < __r; ++__i)
__os << __x._M_x[__i] << __space;
- __os << __x._M_carry;
+ __os << __x._M_carry << __space << __x._M_p;
__os.flags(__flags);
__os.fill(__fill);
@@ -649,6 +650,7 @@
for (size_t __i = 0; __i < __r; ++__i)
__is >> __x._M_x[__i];
__is >> __x._M_carry;
+ __is >> __x._M_p;
__is.flags(__flags);
return __is;
===================================================================
@@ -491,7 +491,8 @@
friend bool
operator==(const mersenne_twister_engine& __lhs,
const mersenne_twister_engine& __rhs)
- { return std::equal(__lhs._M_x, __lhs._M_x + state_size, __rhs._M_x); }
+ { return (std::equal(__lhs._M_x, __lhs._M_x + state_size, __rhs._M_x)
+ && __lhs._M_p == __rhs._M_p); }
/**
* @brief Inserts the current state of a % mersenne_twister_engine
@@ -705,7 +706,9 @@
friend bool
operator==(const subtract_with_carry_engine& __lhs,
const subtract_with_carry_engine& __rhs)
- { return std::equal(__lhs._M_x, __lhs._M_x + long_lag, __rhs._M_x); }
+ { return (std::equal(__lhs._M_x, __lhs._M_x + long_lag, __rhs._M_x)
+ && __lhs._M_carry == __rhs._M_carry
+ && __lhs._M_p == __rhs._M_p); }
/**
* @brief Inserts the current state of a % subtract_with_carry_engine
@@ -1370,7 +1373,9 @@
friend bool
operator==(const shuffle_order_engine& __lhs,
const shuffle_order_engine& __rhs)
- { return __lhs._M_b == __rhs._M_b; }
+ { return (__lhs._M_b == __rhs._M_b
+ && std::equal(__lhs._M_v, __lhs._M_v + __k, __rhs._M_v)
+ && __lhs._M_y == __rhs._M_y); }
/**
* @brief Inserts the current state of a %shuffle_order_engine random
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -44,6 +44,20 @@
str >> v;
VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -43,6 +43,20 @@
str >> v;
VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -46,6 +46,20 @@
str >> v;
VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -47,6 +47,20 @@
str >> v;
VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,15 +33,29 @@
bool test __attribute__((unused)) = true;
std::stringstream str;
- std::minstd_rand0 a;
- std::minstd_rand0 b;
+ std::minstd_rand0 u;
+ std::minstd_rand0 v;
- a(); // advance
- str << a;
- VERIFY( !(a == b) );
+ u(); // advance
+ str << u;
+ VERIFY( !(u == v) );
- str >> b;
- VERIFY( a == b );
+ str >> v;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()
===================================================================
@@ -3,7 +3,7 @@
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -46,6 +46,20 @@
str >> v;
VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
+
+ str.clear();
+ str << v;
+
+ u();
+ u();
+ u();
+
+ str >> u;
+ VERIFY( u == v );
+ for (unsigned i = 0; i < 1000; ++i)
+ VERIFY( u() == v() );
}
int main()