• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* test_uniform_real_distribution.cpp
2  *
3  * Copyright Steven Watanabe 2011
4  * Distributed under the Boost Software License, Version 1.0. (See
5  * accompanying file LICENSE_1_0.txt or copy at
6  * http://www.boost.org/LICENSE_1_0.txt)
7  *
8  * $Id$
9  *
10  */
11 
12 #include <boost/random/uniform_real_distribution.hpp>
13 #include <limits>
14 
15 #define BOOST_RANDOM_DISTRIBUTION boost::random::uniform_real_distribution<>
16 #define BOOST_RANDOM_ARG1 a
17 #define BOOST_RANDOM_ARG2 b
18 #define BOOST_RANDOM_ARG1_DEFAULT 0.0
19 #define BOOST_RANDOM_ARG2_DEFAULT 1.0
20 #define BOOST_RANDOM_ARG1_VALUE -0.5
21 #define BOOST_RANDOM_ARG2_VALUE 1.5
22 
23 #define BOOST_RANDOM_DIST0_MIN 0.0
24 #define BOOST_RANDOM_DIST0_MAX 1.0
25 #define BOOST_RANDOM_DIST1_MIN -0.5
26 #define BOOST_RANDOM_DIST1_MAX 1.0
27 #define BOOST_RANDOM_DIST2_MIN -0.5
28 #define BOOST_RANDOM_DIST2_MAX 1.5
29 
30 #define BOOST_RANDOM_TEST1_PARAMS (-1.0, 0.0)
31 #define BOOST_RANDOM_TEST1_MIN -1.0
32 #define BOOST_RANDOM_TEST1_MAX 0.0
33 
34 #define BOOST_RANDOM_TEST2_PARAMS
35 #define BOOST_RANDOM_TEST2_MIN 0.0
36 #define BOOST_RANDOM_TEST2_MAX 1.0
37 
38 #include "test_distribution.ipp"
39 
BOOST_AUTO_TEST_CASE(test_dbl_min_max)40 BOOST_AUTO_TEST_CASE(test_dbl_min_max) {
41     boost::random::minstd_rand rng;
42     double min = -(std::numeric_limits<double>::max)();
43     double max = (std::numeric_limits<double>::max)();
44     boost::random::uniform_real_distribution<double> dist(min, max);
45     double val = dist(rng);
46     BOOST_CHECK_GE(val, min);
47     BOOST_CHECK_LE(val, max);
48 }
49