File: test_random.cpp

package info (click to toggle)
rkcommon 1.14.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,304 kB
  • sloc: cpp: 33,504; sh: 31; makefile: 13
file content (31 lines) | stat: -rw-r--r-- 842 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright 2009 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#include <random>
#include "../catch.hpp"
#include "rkcommon/utility/random.h"

using rkcommon::utility::pcg32_biased_float_distribution;

TEST_CASE("random", "[random]")
{
  std::random_device rd;
  std::default_random_engine e1(rd());
  std::uniform_real_distribution<float> dist(-1000, 1000);

  for (int iter = 0; iter < 1000; iter++) {
    float lower = dist(e1);
    float upper = dist(e1);
    pcg32_biased_float_distribution osp_dist(iter, iter, lower, upper);

    INFO("seed = " << iter << " lower = " << lower << " upper = " << upper);
    if (lower > upper)
      std::swap(lower, upper);
    for (int i = 0; i < 1000; i++) {
      float val = osp_dist();
      INFO("val = " << val);
      REQUIRE(val >= lower);
      REQUIRE(val <= upper);
    }
  }
}