-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathintegers.cpp
71 lines (61 loc) · 1.87 KB
/
integers.cpp
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <catch.hpp>
#include <randomcpp.hpp>
TEST_CASE( "Test for random integers", "[integers]" ) {
randomcpp::seed(1);
SECTION ( "random integer inside positive range" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randint(0, 5);
REQUIRE(rand_i <= 5);
REQUIRE(rand_i >= 0);
}
}
SECTION ( "random integer inside negative range" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randint(-10, -5);
REQUIRE(rand_i <= -5);
REQUIRE(rand_i >= -10);
}
}
SECTION ( "random range stop" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randrange(5);
REQUIRE(rand_i < 5);
REQUIRE(rand_i >= 0);
}
}
SECTION ( "random range start, stop" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randrange(1, 6);
REQUIRE(rand_i < 6);
REQUIRE(rand_i >= 1);
}
}
SECTION ( "random range start, stop, step (odd)" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randrange(1, 6, 2);
REQUIRE(rand_i < 6);
REQUIRE(rand_i >= 1);
REQUIRE(rand_i % 2 == 1);
}
}
SECTION ( "random range start, stop, step (even)" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_i = randomcpp::randrange(0, 7, 2);
REQUIRE(rand_i <= 6);
REQUIRE(rand_i >= 0);
REQUIRE(rand_i % 2 == 0);
}
}
SECTION ( "random integer range with both" ) {
for (unsigned i=0; i < 100; ++i) {
int rand_neg = randomcpp::randint(-5, 5);
REQUIRE(rand_neg <= 5);
REQUIRE(rand_neg >= -5);
}
}
SECTION ( "repeat random integers not equal" ) {
for (unsigned i=0; i < 100; ++i) {
REQUIRE(randomcpp::randint(0, 1000) != randomcpp::randint(0, 1000));
}
}
}